Какие функции языка программирования хорошо подходят для разработки живой среды программирования?
Я хотел бы построить «живую структуру кодирования».
Я должен объяснить, что подразумевается под «живой структурой кодирования». Я сделаю это, сравнивая кодирование в реальном времени с традиционным кодированием.
Вообще говоря, в традиционном программировании вы пишете код, иногда его компилируете, затем запускаете исполняемый файл или открываете скрипт в каком-то интерпретаторе. Если вы хотите изменить свое приложение, вы должны повторить этот процесс. Интерактивная среда кодирования позволяет обновлять код во время работы приложения и перезагружать его по требованию. Возможно, эта перезагрузка происходит каждый раз, когда файл, содержащий код, изменяется или каким-либо другим действием. Изменения в коде затем отражаются в приложении во время его работы. Нет необходимости закрывать программу, перекомпилировать и перезапускать ее.
В этом случае приложение является оконным приложением, которое имеет цикл обновления / рисования, скорее всего, использует OpenGL для графики, аудиобиблиотеку для обработки звука (SuperCollider?) И, в идеале, сетевую библиотеку.
Конечно, я предпочел языки, хотя я не уверен, что какой-либо из них хорошо подойдет для такой архитектуры. В идеале я бы использовал Python, Lua, Ruby или другой язык более высокого уровня. Тем не менее, один из друзей недавно предложил Clojure как возможность, поэтому я тоже обдумываю это.
Я хотел бы знать не только, какие языки будут подходить для такого рода фреймворков, но, вообще, какие языковые функции сделают фреймворк таким, как этот, возможным.