Здравствуйте, sergii.p, Вы писали:
SP>ну мне выглядит ок. Чего сложного? Интерфейс явно выделен. Реализация максимально отделена. Дело привычки. Всё реализуемо.
Ну честно скажи — проще на C++ или на Rust этот прием? Кроме того в C++ есть заголовки, которые как бы кратко описывают контакт — и это правило. А Rust придется смотреть всю простыню кода.
S>Верите?
1) всё начнёт дико тормозить, жрать память и глючить
2) окажется на уровне ядра неработоспособно без онлайна с серверами в недружественных странах (и банить будет тоже ИИ, см. недавний случай про заблокированного яблом проповедника ябла)
Данное сообщение является художественным произведением и освещает вымышленные события в вымышленном мире. Все совпадения с реальностью являются случайными. Не является инвестиционной рекомендацией.
Здравствуйте, ononim, Вы писали:
O>Очень отличается громоздкостью кода. Практически всегда можно написать раз в 10 лаконичнее и понятнее. Но — не спорю что это займет у мясных заметно больше времени. Про доводы что код должен быть в первую очередь читабелен все както и забыли как будто.
Лаконично не всегда получается, если хочется добиться того, чтобы абстракции не текли в corner cases.
Понятный код писать очень сложно — гораздо сложнее, чем непонятный. И потом еще мучаешься, когда к слишком понятному коду приходит патч от понятливого читателя, который выводит какой-нибудь приватный символ в public, решая проблему этого самого понятливого читателя, но в то же время ломая сложный инвариант, которого он не заметил, и который не ломался, пока символ был приватным — потому что изнутри-то с ним обращались, как положено.
O>Вобщем, индустрию накрывает большой макаронный монстр пипец.
Люди уже привыкли к тому, что принтер может не печатать а сайт может не открываться. Это воспринимается в порядке вещей.
Я всё жду, привыкнут ли люди к тому, что из-за кривого софта могут падать механически исправные самолёты и взрываться атомные электростанции. Или когда это станет достаточно массовым, подходы к написанию софта всё жа начнут меняться.
Здравствуйте, Артём, Вы писали:
Pzz>>Ну так взял бы что-нибудь безопасное. Типа, рефакторинг говнокода с помощью ИИ. А не "взять — переписать". Ясно же, что не перепишет. А при этом взялся. Аё>Насчёт что прямо кодовая база у MS это говнокод — очень сомневаюсь. Скорее наоборот, AI там накодит перлов.
А если не говнокод, зачем её переписывать?
Аё>Счас помимо моды на AI также мода на вытеснение C/C++ из системного кода, замену на Rust. Пока ещё Бидон был при власти — какой-то даже закон протолкнули, что нужно уже, пора.
Я думаю, что я читал эту бумагу. Но это был не закон, а что-то вроде ежегодного отчёта АНБ по актуальным вопросам информационной безопасности. По каким-то их внутренним бюрократическим правилам президент США подписывает эту бумагу. Полагаю, не приходя в сознание.
Pzz>>Как их отличить-то, коммиты с ИИ от коммитов, написанных руками? Аё>Ментальный высер, не имеющий смысла, обильно покрытый комментариями. Я с этим столкнулся, да. Но я же не умею готовить. И кстати, в противовес AI генераторам также и продают AI-детекторы чтоб ловить студентов, так что даже и инструменты есть.
Я свой рукописный код обильно покрываю комментариями и бью по рукам джунов, которые этого не делают.
Здравствуйте, Pzz, Вы писали:
Pzz>Лаконично не всегда получается, если хочется добиться того, чтобы абстракции не текли в corner cases.
Pzz>Понятный код писать очень сложно — гораздо сложнее, чем непонятный.
В приведенных примерах именно ЧИТАТЬ сложно код на Rust. C++ получается более лаконично.
Данное сообщение является художественным произведением и освещает вымышленные события в вымышленном мире. Все совпадения с реальностью являются случайными. Не является инвестиционной рекомендацией.
Здравствуйте, Pzz, Вы писали:
Pzz>А если не говнокод, зачем её переписывать?
Потому, что это процесс, это было всегда, всё время существования профессии программиста. Конкретно на C/C++ нападки за их небезопасность, что ошибки, которые приводят к катастрофам, находят в коде, написанном 40 лет назад и куча людей смотрело, и не видело, как вот эта невинная строчка может вызвать перезаписть стека и "удачный" jump на адрес, помеченный как безопасный к исполнению.
Pzz>Я думаю, что я читал эту бумагу. Но это был не закон, а что-то вроде ежегодного отчёта АНБ по актуальным вопросам информационной безопасности. По каким-то их внутренним бюрократическим правилам президент США подписывает эту бумагу. Полагаю, не приходя в сознание.
Да, Бидон подписал бумагу. Но Трамп эту бумагу не отменил.
Pzz>Я свой рукописный код обильно покрываю комментариями и бью по рукам джунов, которые этого не делают.
А я нет. Если у меня возникает желание написать комментарий- это red flag, что код воняет. А дальше по ситуации — оставить ужас-ужас с комментарием, как оно работает и почему так, а не иначе, либо переписать правильно. Иногда бывало, что идея, как лучше сделать- приходила позже, и возвращался, чистил, необходимость в комментарии отпадала.
Это не отменяет правила хорошего тона комментировать сигнатуры интерфейсов / протоколов.
Здравствуйте, Артём, Вы писали:
Pzz>>А если не говнокод, зачем её переписывать? Аё>Потому, что это процесс, это было всегда, всё время существования профессии программиста. Конкретно на C/C++ нападки за их небезопасность, что ошибки, которые приводят к катастрофам, находят в коде, написанном 40 лет назад и куча людей смотрело, и не видело, как вот эта невинная строчка может вызвать перезаписть стека и "удачный" jump на адрес, помеченный как безопасный к исполнению.
Давно бы уже перестали выпендриваться, и сделали бы в C++-ном коде run time проверки выхода за границы/обращения по невалидному адресу обязательными...
Pzz>>Я думаю, что я читал эту бумагу. Но это был не закон, а что-то вроде ежегодного отчёта АНБ по актуальным вопросам информационной безопасности. По каким-то их внутренним бюрократическим правилам президент США подписывает эту бумагу. Полагаю, не приходя в сознание. Аё>Да, Бидон подписал бумагу. Но Трамп эту бумагу не отменил.
Так эта бумага — она типа ежегодного отчёта. Как можно отменить ежегодный отчёт?
Pzz>>Я свой рукописный код обильно покрываю комментариями и бью по рукам джунов, которые этого не делают. Аё>А я нет. Если у меня возникает желание написать комментарий- это red flag, что код воняет. А дальше по ситуации — оставить ужас-ужас с комментарием, как оно работает и почему так, а не иначе, либо переписать правильно. Иногда бывало, что идея, как лучше сделать- приходила позже, и возвращался, чистил, необходимость в комментарии отпадала.
Комментарий должен отвечать на вопрос "что?". На вопрос "как?" отвечает сам код.
Редко-редко приходится в комментарии таки объяснять "как?", если код алгоритмически нетривиален, или "почему?", если нетривиальна та хрень во внешнем мире, с которой этот код взаимодействует.
Здравствуйте, Shmj, Вы писали:
S>Здравствуйте, dsorokin, Вы писали:
D>>Только Rust нацелен на многопоточные серверы (как особенно стало ясно после добавления async/await). А вот с многопоточкой ООП, знаешь, не очень-то и дружит из-за мутабельности...
S>То есть браузеры, графические движки — лучше на нем не писать? Там лучше C++?
Зачем ООП в графическом движке?
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Здравствуйте, Pzz, Вы писали:
Pzz>Я всё жду, привыкнут ли люди к тому, что из-за кривого софта могут падать механически исправные самолёты и взрываться атомные электростанции. Или когда это станет достаточно массовым, подходы к написанию софта всё жа начнут меняться.
А в самолётах и АЭС и так другие подходы к написанию программ
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Здравствуйте, T4r4sB, Вы писали:
Pzz>>Я всё жду, привыкнут ли люди к тому, что из-за кривого софта могут падать механически исправные самолёты и взрываться атомные электростанции. Или когда это станет достаточно массовым, подходы к написанию софта всё жа начнут меняться.
TB>А в самолётах и АЭС и так другие подходы к написанию программ
Ну туда тоже постепенно просочится. Мимо внимания эффективных менеджеров не пройдёт тот факт, что стоимость разработки софта для сайтиков и для самолётов различается на порядки величины.
Здравствуйте, Pzz, Вы писали:
Pzz>Давно бы уже перестали выпендриваться, и сделали бы в C++-ном коде run time проверки выхода за границы/обращения по невалидному адресу обязательными...
Если вектор, то через at() так и делается, через [] — в отладочной версии вроде обычно тоже.
Если что-то ещё, например самостоятельно выделенная память — то как ты представляешь это должно работать?
Здравствуйте, T4r4sB, Вы писали:
Pzz>>Я всё жду, привыкнут ли люди к тому, что из-за кривого софта могут падать механически исправные самолёты и взрываться атомные электростанции. Или когда это станет достаточно массовым, подходы к написанию софта всё жа начнут меняться.
TB>А в самолётах и АЭС и так другие подходы к написанию программ
Хз насчет самолётов и АЭС, но автомобильном коде ппц полный, говорят
Здравствуйте, Marty, Вы писали:
M>Хз насчет самолётов и АЭС, но автомобильном коде ппц полный, говорят
Кто говорит? Я помню ту историю с Тоётой у которой заклинило педаль газа, и там какая-то метрика показала что код очень очень сложный типа. Но мы не знаем, насколько эта метрика вообще адекватна
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Здравствуйте, T4r4sB, Вы писали:
M>>Хз насчет самолётов и АЭС, но автомобильном коде ппц полный, говорят
TB>Кто говорит? Я помню ту историю с Тоётой у которой заклинило педаль газа, и там какая-то метрика показала что код очень очень сложный типа. Но мы не знаем, насколько эта метрика вообще адекватна
Да вообще почти любой эмбед код, который я видел, обычно это лютый пипец, потому что очень часто его пишут нихрена не программисты, а те же электронщики, которые задизайнили и развели схемоту.
На одном из последних мест работы, там был упоровшийся чел, и он сделал фреймворк для STMок на плюсах. Если бы он ограничился только периферией, то было бы даже неплохо, хотя, конечно, код там довольно списифисский
Но там и строки и вектора, которые при недостатке памяти просто нахер данные молча отбрасывают, да и вообще там такие кучи граблей поразложены были. Но это было таки одно из самых качественных из виденного мной.
Хотя, сейчас вот проект на чистой сишечке, и тут уже вполне годно делается. Пожалуй, первый раз в эмбеде подобное вижу