Слёту не нашёл такой темы. Возможность менять код на лету высоко ценится в сообществе веб-разработчиков. Казалось бы, в веб-разработке всё очень легко - нажал Ctrl-R и страница обновилась. По логике вещей там не должно быть долгой "сборки" как в С++ и сложного состояния. Однако, я смотрю сайт "The State of JavaScript" и вижу, что из опрошенных тысяч веб-разработчиков почти 80% относятся положительно к "горячей замене модулей", а 50% считают эту возможность важной. Что это означает на практике? Это заменяем какую-то строчку в css или js и страница обновляется сама, а состояние сохраняется.
https://stateofjs.com/2017/features/https://habrahabr.ru/company/Voximplant/blog/270593/Это то, к чему я привык в лиспе и то, что является основным средством, делающем разработку на лиспе приятной. Именно отсюда мой интерес к Оберону - ведь в нём эта возможность, как правило, есть, точнее, есть предпосылки, чтобы её реализовать.
Но не всё так хорошо. В лиспе можно менять код на уровне одного определения. Можно определять, какие данные будут сохраняться при перезагрузке файла (модулей в лиспе нет), а какие будут создаваться заново. (defvar *counter* 0) означает, что счётчик не сбросится при переопределении модуля, а (defparameter *настройка* 25) позволяет перенастраивать блок функционала путём перекомпиляции его исходника.
Кроме того, в лиспе не нужно демонтировать всю пирамиду зависимостей, чтобы поменять что-то в фундаменте. Это тоже критично.
Даже изменение интерфейса базового модуля сделает программу временно неработоспособной в тех местах, где этот интерфейс используется (в норме лисп вызовет отладчик, натолкнувшись на несоответствующий вызов), но оно допустимо.
Т.е., в лиспе возможно гибко подходить к сохранению состояния программы при горячей замене кода, а в Обероне этого нет. Это даёт качественно отличающийся уровень комфорта (а значит, и производительности труда) при разработке, делая CL средством более высокого класса, хотя и за счёт снижения надёжности. Однако, если средство есть ,в теории его можно отключить, а вот если его нет, то его так просто не включишь.
Насколько я уже понял Оберон, нет шансов, что в обероне будет когда-то принят такой же уровень гибкости, как в лиспе. Но можно попробовать создать уровень гибкости как в лиспе на базе оберона.
Моя проблема была в том, что я пытался "продвинуть" возможнсоть горячей замены тем, кто эту возможность не мог понять (программистам на Си). Я пытался аппелировать к SQL и ядру линукс, в котором горячая замена тоже есть, но у меня ничего не вышло. Люди неспособны мыслить аналогиями, если вывод из этой аналогии говорит, что их текущий способ работы неэффективен и они оказываются в дурачках. Защита своей самооценки у профессионалов всегда очень мощная
А оказывается, эта возможность уже осознана, признана и желанна в веб разработке.
Что делать с этой информацией дальше любителям оберона - думайте, любители Оберона
Стратегически одна из моих задач состоит в том, чтобы сделать клон Оберона с возможностью горячей замены, свойственной лиспу.