А не попробовать ли на нам С++?

Про байтики и логику ЭБУ
Post Reply
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

А не попробовать ли на нам С++?

Post by AndreyB »

Мы тут немного уже страдаем от бедности нашего языка С. С учётом того, что мы качество кода ставим одним из важнейших приоритетов - возникла мысль посмотреть в сторону С++.

Нужно понимать, что если С++ условно говоря 10 различий от С - мы не обязаны обязательно бросаться и использовать ВСЕ фичи С++. Я пока вижу С++ просто как бесплатное (на уровне откомпилированного кода разницы нет) улучшение синтаксиса. Например, как у нас не было кучи/heap/менеджера памяти - так у нас этого и не будет пока. Однако связать структуры и функции в объекты например хотелось бы.

С++ как минимум стоит изучить, кому-то однажды.
https://sourceforge.net/p/rusefi/tickets/33/

Есть мнение, что С++ мы можем получить не особо напрягаясь. ChibiOS точно готов к C++. Поэтому чем обсуждать как именно ходить по полю граблей С, можно и правда соскочить на С++.

Если кто-то попробует озвучить 'гениальное' мнение, что мы на этом потеряем три такта - я буду громко ругаться.

Мне идея С++ нравится всё больше и больше, но у меня список задач на месяц программинга :( Мне с этим нужна помощь.
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
mpro
contributor
contributor
Posts: 64
Joined: Sun Nov 10, 2013 8:31 pm
Location: Moscow

Re: А не попробовать ли на нам С++?

Post by mpro »

Я являюсь фанатом ООП но нам оно нужно как собаке пятая нога.
Почему? Наверное потому что ООП без наследования и полиморфизма не имеет смысла.
Его элементарно заменить на "соглашение о вызовах" и/или хранение нужную информации в одной глобальной структуре.
Зачем на виртуальные методы? Зачем наследование? Оно было бы полезым в чиби с его конструкцией vmt, но не на нашем уровне.
Я прошу прощения конечно, но пока я даже банального мэнеджера памяти не вижу (угу, С++, без работы с кучей?). Точнее вижу его в каком то виде в исходниках чиби и почти полное отсутствие использования в прошивке.
User avatar
Sergey89
contributor
contributor
Posts: 839
Joined: Wed Sep 25, 2013 5:30 pm
Location: Russia, Velikiy Novgorod

Re: А не попробовать ли на нам С++?

Post by Sergey89 »

Кстати, к слову. Cтандарт языка C для критических систем запрещает динамическое распределение памяти.
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: А не попробовать ли на нам С++?

Post by AndreyB »

Sergey89 wrote:Кстати, к слову. Cтандарт языка C для критических систем запрещает динамическое распределение памяти.
Куча это очень рискованно, так что кучи у нас не будет точно.
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: А не попробовать ли на нам С++?

Post by AndreyB »

В полном дистрибутиве ChibiOS есть демка ChibiOS_2.6.1\demos\ARMCM4-STM32F407-DISCOVERY-G++ - там как раз main.cpp
Как-то вроде ничего страшного.
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: А не попробовать ли на нам С++?

Post by AndreyB »

Итого: https://sourceforge.net/p/rusefi/tickets/33/ сделан, у нас появился первый объект - так что технических проблем нет, С++ без динамической памяти скомпилировался и работает.
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
User avatar
Maxi
Sr Consultant
Sr Consultant
Posts: 786
Joined: Wed Oct 23, 2013 4:25 pm

Re: А не попробовать ли на нам С++?

Post by Maxi »

Я вот не понимаю - в чем цель таких переходов?
Cейчас С без + чем то ограничивает разработку?
puff
contributor
contributor
Posts: 2961
Joined: Mon Nov 11, 2013 11:28 am
Location: Moskau

Re: А не попробовать ли на нам С++?

Post by puff »

у человека красота - критерий истины :D
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: А не попробовать ли на нам С++?

Post by AndreyB »

Maxi wrote:Я вот не понимаю - в чем цель таких переходов?
Cейчас С без + чем то ограничивает разработку?
Да и ассемблер не ограничивает разработку, можно и на ассемблере.

С с плюсом чуть-чуть элегантнее, а есть он при этом особо не просит - так что почему нет?
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
User avatar
rus084
contributor
contributor
Posts: 678
Joined: Sun Dec 01, 2013 1:40 pm
Location: Russia , Stavropol

Re: А не попробовать ли на нам С++?

Post by rus084 »

ну хотя да :

Code: Select all

<c++ code>
extern "C" {
<C code>
}
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: А не попробовать ли на нам С++?

Post by AndreyB »

Дима, ты не прав - твой пример не про код, а про заголовки. А заголовки это в любом случай ужас :)

И от этого можно уйти, если переименовать все файлы в .cpp :) Однажды до этого дойтут руки, и этого шайтана не будет - но сейчас избавляться от этого мы времени тратить не будем.
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
User avatar
rus084
contributor
contributor
Posts: 678
Joined: Sun Dec 01, 2013 1:40 pm
Location: Russia , Stavropol

Re: А не попробовать ли на нам С++?

Post by rus084 »

а зачем торопиться? никуда ничего не денется
Post Reply