ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Понедельник
17 мая
/1048394
Топик полностью
fk0 (31.10.2020 15:08, просмотров: 312) в ответ на Опишу задачи. - автор: RxTx
Спасибо, хорошее объяснялово, почему скриптовые языки имеют смысл. 

Да, вся проблема в экономике программного продукта:


Вдобавок, студенты не могут в C/C++. А вот пользоваться простеньким язычком, в котором им не объясняют всех подробностей - могут.


Мне ещё в глаза бросается термин "ребята" -- что подразумевает, что наняли молодых людей подешевле. Ещё "стажировку" любят. Это когда вроде ты работаешь, но в целом работа в МакДоналдс может оказаться выгодней...


В Visual Studio в какие-то доисторическе времена можно было переписать код и запустить функцию без перезапуска программы. В gdb какие-то механизмы есть, для intel (с какими-то там фичами, имеющимися преимущественно в серверных процессора) даже можно записывать программу и прошагивать в обратную сторону (ошибка -- отмотал взад, переделал код, запускаешь дальше). Можно на C++ условно-интерактивно отлаживать. Но другое дело, что сколько-нибудь сложная программа именно на C++ наполовину сделана в момент компиляции (в пространстве типов, даже не constexpr) и просто перекомпилировать пару функций никак не выйдет (почему, кстати, C# имеет преимущество в отладке). В сложных случаях вообще отладчик становится бесполезен. Это расплата за статическую типизацию, статическую диспетчеризацию и метапрограммирование (всё в момент компиляции).


Впрочем, строить архитектуру так, чтоб на C++ не приходилось постоянно менять интерфейсы, и чтоб работа осуществлялась разрозненными, не знающими друг о друге независимыми модулями -- можно. Никто ж не заставляет использовать в интерфейсе, например, какие-то самодельные типы (что сразу вызывает зависимость), а как и в динамических языках использовать какие-то обощённые контейнеры. Коих хватает в STL. Было бы желание. И никто не заставляет весь проект слеплять в одну монолитную программу, где всё от всего зависит. Запросто же можно разбить на десяток мелких процессов, где каждый отвечает за свою функцию. И каждый можно тогда легко перекомпилировать и перезапустить, как те же скрипты.


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

[ZX]
Ответить