Здравствуйте, CreatorCray, Вы писали:
DI>>Чуть менее, чем вся STL аллоцирует неявно, например std::function внезапно, или выброс исключения. CC>Весь std:: — так себе библиотека, я это уже много раз говорил. Годная для прототипирования а дальше надо уже смотреть.
Не весь С++ одинаково полезен?
DI>>Как понимание того, что происходит внутри контейнеров поможет написать рилтайм критикал код? CC>Примерно так же как понимание разницы между O(n) и O(log n)
Так как-же?
CC>А кто забыл сказать что этот поток должен выполняться на IRQL DISPATCH_LEVEL?
realtime critical на винде? Однако.
DI>>Ну и вообще использовать многозадачные ОС для realtime critical кода? CC>Это как раз решаемо.
Как?
CC>А вот SMM куда больше неприятностей может внезапно доставить, которые ещё и хрен продиагностируешь на уровне ОС, если не знать про него.
Это еще каким образом? При запуске realtime critical из под гипервизора? Мсье определенно в извращениях понимает.
DI>>Внезапно оказалось, что сам по себе С++ панацеей не является и после всех приседаний для таких нишевых вещей как рил тайм, про который любит вещать среднестатистический кодер на С++, никогда и близко к рил тайм ничего не видевшего, похож он будет на С чуть менее, чем полностью. CC>Рази что только если думать что C++ это stl, std и прочая "стандартная" шелуха. CC>С++ это то, что встроено в язык, всё остальное библиотеки и они как раз могут быть написаны под разные assumptions и requirements.
Ну вот исключения, например, вполне себе часть ядра языка. Тоже негодная фича? Я собственно к тому и веду, что когда мы выберем подмножество С++ годное в упомянутому специфическому кейсу, от С++ внезапно практически ничего не останется. Но хорошо, вот мы его кастрировали, это панацея для realtime critical?
Здравствуйте, Denis Ivlev, Вы писали:
DI>Я собственно к тому и веду, что когда мы выберем подмножество С++ годное в упомянутому специфическому кейсу, от С++ внезапно практически ничего не останется.
То, что останется, будет всяко лучше чистого C.
DI>Но хорошо, вот мы его кастрировали, это панацея для realtime critical?
А что такое realtime critical? Есть mission critical, business critical, а вот что значит realtime critical и чем оно отличается от просто realtime?
LVV>>И всегда меня интересовала не технология/язык, а ЗАДАЧИ. U>Задачи, конечно, первостепенны, но можно их решать с применением технологий и языков, которые тебе интересны, а не на которых "надо". U>Здесь можно привести в пример Rich Hickey, который на вопрос "нафига ты придумал Clojure" ответил: >> I wrote Clojure because if I had to continue programming in Java, I wouldn't still be a programmer; Java, or C++, or C#, or the languages I was using in consulting at the time.
У меня у самого такой случай был.
Был договор с одной ленинградской конторой.
Сначала к PL-1 присобачили Лисп и написали препроцессор Лисп->PL-1.
Потом переписали Лисп на ПЛ-1 и сделали библиотеку — от препроцессора перешли к линкеру...
Потом придумали язык программирования сверхвысокого уровня.
На смеси ПЛ-1+Лисп написали интерпретатор.
Потом на этом языке сверхвысокого уровня реализовали договор...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>Что-то мне подсказывает, что проблема с циклическими зависимостями возникает из-за попыток программировать на плюсах как на яве или шарпе.
Интересно, в чем отличие стиля кода на яве от С++?(Реально интересно, т.к. на яве не писал. Речь про Dependency Injection?) Не из-за того ли стиль С++ другой, что его не используют для бэкенда(что плохо)?
Надеюсь, стиль явы не только тем и плох, что возникают циклические ссылки.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Здравствуйте, Denis Ivlev, Вы писали:
DI>Не весь С++ одинаково полезен?
С++ это только сам язык. Либы отдельно.
DI>>>Как понимание того, что происходит внутри контейнеров поможет написать рилтайм критикал код? CC>>Примерно так же как понимание разницы между O(n) и O(log n) DI>Так как-же?
Sapienti sat, зелёный.
CC>>А кто забыл сказать что этот поток должен выполняться на IRQL DISPATCH_LEVEL? DI>realtime critical на винде? Однако.
Прикинь!
DI>Это еще каким образом? При запуске realtime critical из под гипервизора? Мсье определенно в извращениях понимает.
DI>Ну вот исключения, например, вполне себе часть ядра языка. Тоже негодная фича? Я собственно к тому и веду, что когда мы выберем подмножество С++ годное в упомянутому специфическому кейсу, от С++ внезапно практически ничего не останется.
Эта песня хороша, начинай сначала.
Иди перечитывай RSDN за последние лет 10.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, lpd, Вы писали:
SVZ>>Что-то мне подсказывает, что проблема с циклическими зависимостями возникает из-за попыток программировать на плюсах как на яве или шарпе.
lpd>Интересно, в чем отличие стиля кода на яве от С++?(Реально интересно, т.к. на яве не писал. Речь про Dependency Injection?) Не из-за того ли стиль С++ другой, что его не используют для бэкенда(что плохо)? lpd>Надеюсь, стиль явы не только тем и плох, что возникают циклические ссылки.
В манагед языках нормально, когда права владения объектом футболятся по всему приложению — GC разберется.
А когда тот же приём начинают применять в С++, да еще и взаимные шаред поинтеры между объектами устанавливают, когда между ними можно либо выстроить отношения вледелец-подчиненный, либо завести отдельного арбитра для управления временем жизни, то вот и получаем косяки на ровном месте.
Короче, С++ требует более вдумчивого проектирования. Ява с Шарпом прощают больше
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, so5team, Вы писали:
S>Это когда вы в CAD-е программы для станков с ЧПУ делали?
Лол, нет конечно, какое тут программирование? Это ты типа так "тонко" шутишь?
S>Так-то VxWorks, QNX и OS-9/9000 были вполне себе многозадачными.
Вот 3 года софт для производства на QNX в начале века я и писал. Только потом, когда стали заниматься производством детекторов, требования по латенси были такие, что только микроконтроллер и С.
Здравствуйте, so5team, Вы писали:
S>То, что останется, будет всяко лучше чистого C.
Да, но нет. Останутся наверное только неймспейсы и шаблоны, но насчет шаблонов не уверен, так как не на всех платформах все будет гладко, а еще потеряем ABI и дадим возможность рано или поздно занести что-то сломающее ноги (этот аргумент так себе, тут мне про процессы будут возражать, но живем в реальном мире, если что-то может произойти — оно произойдет).
DI>>Но хорошо, вот мы его кастрировали, это панацея для realtime critical?
S>А что такое realtime critical? Есть mission critical, business critical, а вот что значит realtime critical и чем оно отличается от просто realtime?
Здравствуйте, CreatorCray, Вы писали:
DI>>Не весь С++ одинаково полезен? CC>С++ это только сам язык. Либы отдельно.
STL описан в стандарте С++, так что не засчитывается.
DI>>>>Как понимание того, что происходит внутри контейнеров поможет написать рилтайм критикал код? CC>>>Примерно так же как понимание разницы между O(n) и O(log n) DI>>Так как-же? CC>Sapienti sat, зелёный.
Это понимать как слив? Ок.
CC>>>А кто забыл сказать что этот поток должен выполняться на IRQL DISPATCH_LEVEL? DI>>realtime critical на винде? Однако. CC>Прикинь!
Лол
DI>>Это еще каким образом? При запуске realtime critical из под гипервизора? Мсье определенно в извращениях понимает. CC>
Что, дружок, снова нырнул в неприятную субстанцию? Ну видать нравится, не могу мешать.
DI>>Ну вот исключения, например, вполне себе часть ядра языка. Тоже негодная фича? Я собственно к тому и веду, что когда мы выберем подмножество С++ годное в упомянутому специфическому кейсу, от С++ внезапно практически ничего не останется. CC>Эта песня хороша, начинай сначала. CC>Иди перечитывай RSDN за последние лет 10.
Здравствуйте, Denis Ivlev, Вы писали:
DI>Только потом, когда стали заниматься производством детекторов, требования по латенси были такие, что только микроконтроллер и С.
И на основании факта наличия real-time задач со временем отклика в микросекунды или единицы миллисекунд вы делаете общий вывод о том, что применение специализированных многозадачных RTOS -- это такое себе?
Здравствуйте, Denis Ivlev, Вы писали:
DI>Да, но нет. Останутся наверное только неймспейсы и шаблоны
А куда денутся например RAII, RVO, move, variadics?
DI> но насчет шаблонов не уверен, так как не на всех платформах все будет гладко
Платформы под который в 2019 нет промышленного компилятора — это малость странный выбор.
DI>Использую терминологию CreatorCray, все вопросы к нему: http://rsdn.org/forum/job/7554656.1
Здравствуйте, Denis Ivlev, Вы писали:
DI>STL описан в стандарте С++, так что не засчитывается.
Пофигу. С++ это только сам язык.
DI>>>>>Как понимание того, что происходит внутри контейнеров поможет написать рилтайм критикал код? CC>>>>Примерно так же как понимание разницы между O(n) и O(log n) DI>Это понимать как слив? Ок.
Это понимать как "у меня нет желания тебя кормить на эту тему". Если ты валяешь дурочку, задавая тупые вопросы то валяй без меня.
DI>Что, дружок, снова нырнул в неприятную субстанцию? Ну видать нравится, не могу мешать.
Иди почитай за SMM лучше, чудо!
CC>>Эта песня хороша, начинай сначала. CC>>Иди перечитывай RSDN за последние лет 10. DI>И снова слив.
А ты еду ждал?
Иди, хавай консервы. Таких как ты тут уже много пробегало.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, so5team, Вы писали:
S>И на основании факта наличия real-time задач со временем отклика в микросекунды или единицы миллисекунд вы делаете общий вывод о том, что применение специализированных многозадачных RTOS -- это такое себе?
S>Вау.
Что-то конструктива в твоих словах нет. Я так понимаю у тебя от чего-то бомбит и тебе поэтому очень надо передо мной покривляться? Давай может сначала с этим разберемся, а потом уже продолжим. Чем я тебя обидел?
Здравствуйте, Denis Ivlev, Вы писали:
DI>Что-то конструктива в твоих словах нет.
Есть примеры многозадачных RTOS, которые успешно применяются для hard real-time систем на протяжении уже многих десятилетий.
При этом есть ряд real-time задач со временем отклика около миллисекунды или меньше миллисекунды, для которых "большие RTOS" либо не пригодны, либо требуют специальной конфигурации, в которой нет поддержки многозадачности. Но на основании этих примеров делать заявление:
Ну и вообще использовать многозадачные ОС для realtime critical кода? Ну такое.
Ну такое, если вашим языком выражаться.
DI>Я так понимаю
Здравствуйте, CreatorCray, Вы писали:
DI>>Да, но нет. Останутся наверное только неймспейсы и шаблоны CC>А куда денутся например RAII
Согласен
CC>RVO
Это и в С есть
CC>move
Не уверен
CC>variadics?
Ну такое, на некоторых платформах такой поддержки новых стандартов просто нет.
CC>Платформы под который в 2019 нет промышленного компилятора — это малость странный выбор.
Это обычное дело
CC>Не, таки к тебе вопросы. У меня ничего про "realtime critical" нету.
Конечно нет, это ты ввел термин:
А кто протерял код который пиннит страницы для realtime critical кода?
Здравствуйте, CreatorCray, Вы писали:
DI>>STL описан в стандарте С++, так что не засчитывается. CC>Пофигу. С++ это только сам язык.
Не пофигу.
DI>>>>>>Как понимание того, что происходит внутри контейнеров поможет написать рилтайм критикал код? CC>>>>>Примерно так же как понимание разницы между O(n) и O(log n) DI>>Это понимать как слив? Ок. CC>Это понимать как "у меня нет желания тебя кормить на эту тему". Если ты валяешь дурочку, задавая тупые вопросы то валяй без меня.
То есть слив.
DI>>Что, дружок, снова нырнул в неприятную субстанцию? Ну видать нравится, не могу мешать. CC>Иди почитай за SMM лучше, чудо!
Снова слив.
CC>>>Эта песня хороша, начинай сначала. CC>>>Иди перечитывай RSDN за последние лет 10. DI>>И снова слив. CC>А ты еду ждал?
Ждал, что ты начнешь аргументированную дискуссию, хотя по тем ржакам, что ты написал, было понятно, что будет быстрый слив.
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>В манагед языках нормально, когда права владения объектом футболятся по всему приложению — GC разберется.
Ну может так проще реализовать логику типичной развесистой архитектуры enterprise, то есть это объективно удобно.
SVZ>А когда тот же приём начинают применять в С++, да еще и взаимные шаред поинтеры между объектами устанавливают, когда между ними можно либо выстроить отношения вледелец-подчиненный, либо завести отдельного арбитра для управления временем жизни, то вот и получаем косяки на ровном месте. SVZ>Короче, С++ требует более вдумчивого проектирования. Ява с Шарпом прощают больше
Ну так это недостаток С++, который и ограничивает его область применения. Скорее всего, отсутствие сборки мусора — одна из основных причин, почему из бэкенда и вытеснили С++. Никто не хочет в большой программе при добавлении каждого нового указателя думать, а не получится ли кольцевая сылка. Зачем это?
Я не особенно опытный архитектор, но как-то писал сервер для мобильных клиентов на С++, и круговые ссылки там были(умные указатели, естественно, не использовал).
Язык должен позволять выразить любую архитектуру, причем простым и удобным образом. А не требовать от разработчиков соблюдать какие-то искуственные правила, усложняя их жизнь разнообразием видов weak/shared/unique поинтеров.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)