Re[9]: Пара задач из жизни
От: cppguard  
Дата: 09.12.21 16:40
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Как раз никак нельзя. Ты не контролируешь выделение и освобождение памяти, что критично. Ты не можешь провести статический анализ кода, что так же критично.


Речь о Python или о CPython? Это раз. Отключается сборка мусора, остаётся только подсчёт ссылок. malloc/free пишутся свои. Кроме того, питон позволяет перехватывать вызов аллокатора через переопределение __new__ и переиспользовать память. Я таким образом реализовал FSM в неявном виде: переход в новое состояние определялся возвратом нового объекта, но объект реально не создавался, а переинициализировался. Я не хочу спорить, что Питон это не самый луший выбор для робота, но я не люблю, когда говорят "X — слишком медленный/прожорливый/старый/негибкий для этой задачи", я вместо этого думаю, что программисты бывают недостаточно квалифицированы для задачи.

C>> Но в случае с тем роботом, действительно "купите стартап" =) Кстати, С++ во всяких автопилотах это тоже уровень "пыщь-пыщь, у нас автопилот не хуже теслы!", потому что по-нормальному mission critical пишется на Си или Ада, потом формально верефицируется. Может, конечно, научились делать верификацию С++, но я пока не слышал об этом.


KP>Mission critical (ASIL D) пишется на C++14, смотри AUTOSAR C++14. Так же есть MISRA C++, но там совсем всё дремучее. Статические анализаторы тоже есть, причем сертифицированные по ISO 26262. Так же стоит учитывать что к mission critical относится очень небольшая часть компонент в машине, основная масса обычный QM, остальная на обычном C++. В теории остальное можно и на Python написать, конечно, но оно ж тырндец падучее и тормознутое будет.


MISRA это стандарт, а не метод. Ну ок, проверили, что соответствует MISRA, а дальше что? Я не говорю, что на С++ невозможно писать mission critical, просто возни больше, а плюсов меньше.

KP> В теории остальное можно и на Python написать, конечно, но оно ж тырндец падучее и тормознутое будет.


Если программист нормальный то не будет. Вопрос в другом — где взять сертифицированный интерпретатор?

P.S. Не совсем в тему. На текущем проекте (никак не связанном с роботами или automotive) полным ходом идёт миграция пользователей на новый движок обработки потоковых данных (real-time stream processing). Предыдущий был написан на Java и лишь немного подъедал память (код там не самый лучший), но был объявлен медленным (да-да, та самая медленная ява). Новый движок на С++, и я то и дело слышу, что что-то там упало. Видимо, те крохи времени, которые выигрываются при переходе с JVM на native стоят постоянной головной боли. При этом у меня есть личный сторонний проект на Java, тоже связанный с потоковой обработкой данных, в нём все летает, ничего не падает, аптайм исчисляется месяцами
Re[10]: Пара задач из жизни
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 10.12.21 02:31
Оценка:
Здравствуйте, cppguard, Вы писали:

C>Речь о Python или о CPython? Это раз. Отключается сборка мусора, остаётся только подсчёт ссылок. malloc/free пишутся свои. Кроме того, питон позволяет перехватывать вызов аллокатора через переопределение __new__ и переиспользовать память. Я таким образом реализовал FSM в неявном виде: переход в новое состояние определялся возвратом нового объекта, но объект реально не создавался, а переинициализировался.


А с динамической типизацией ты что сделать предлагаешь? Код который верфицируется только во время выполнения, это, ну, "такое" для робота.

C>Я не хочу спорить, что Питон это не самый луший выбор для робота, но я не люблю, когда говорят "X — слишком медленный/прожорливый/старый/негибкий для этой задачи", я вместо этого думаю, что программисты бывают недостаточно квалифицированы для задачи.


Есть альтернативный вариант на это взглянуть — есть программисты которые не посмотрели на предметную область достаточно глубоко и тянут туда привычные, но не подходящие инструменты.

C>MISRA это стандарт, а не метод. Ну ок, проверили, что соответствует MISRA, а дальше что? Я не говорю, что на С++ невозможно писать mission critical, просто возни больше, а плюсов меньше.


Плюсов больше — есть куча библиотек и готовых специалистов, писать опять таки проще чем на Си.

C>Если программист нормальный то не будет. Вопрос в другом — где взять сертифицированный интерпретатор?


Нигде, его тебе не сертифицируют, т.к. весь код должен быть проверен на этапе верификации, но это не возможно сделать для динамической типизации.

C>P.S. Не совсем в тему. На текущем проекте (никак не связанном с роботами или automotive) полным ходом идёт миграция пользователей на новый движок обработки потоковых данных (real-time stream processing). Предыдущий был написан на Java и лишь немного подъедал память (код там не самый лучший), но был объявлен медленным (да-да, та самая медленная ява). Новый движок на С++, и я то и дело слышу, что что-то там упало.


Java не медленная ни разу, только стартует долго. То что в плюсах что-то падает — так руки из жопы, у нас, почему-то, я за полтора года вообще не видел падений C++ кода. Магия?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.