Введение

Интерактивное программирование — это процесс написания фрагментов программы в процессе её выполнения. Оно акцентирует внимание на исходном тексте программы как на основном интерфейсе для работающего процесса, а не на интерактивном приложении, где программа разрабатывается итерациями и затем используется (обычно так называемым "пользователем", в отличие от "разработчика"). Следовательно, в данном случае написание программы становится неотъемлемой частью самой программы. Таким образом, это конкретный пример интерактивных вычислений, являющийся противоположностью пакетной обработке, где ни написание, ни использование программы не происходят в интерактивном режиме. Принцип быстрой обратной связи в экстремальном программировании доводится до крайности и становится более явным. Синонимы: программирование на лету, программирование по требованию, диалоговое программирование.

Поля применения

Методы интерактивного программирования особенно полезны в тех случаях, когда невозможно заранее предоставить четкое описание решаемой задачи. В таких ситуациях (что нередко встречается в исследованиях) формальный язык обеспечивает необходимую среду для разработки подходящей постановки вопроса или формулировки проблемы. Интерактивное программирование также применяется в приложениях, требующих переписывания без остановки работы, что является отличительной чертой языка Smalltalk. Обычно динамические языки программирования предоставляют среду для подобного взаимодействия, позволяя осуществлять прототипирование, а также итеративную и инкрементную разработку в процессе работы других частей программы. Поскольку эта возможность востребована в звуковом дизайне и алгоритмической композиции, она там значительно развилась. В последнее время исследователи используют этот подход для разработки алгоритмов сонификации. Используя динамические языки программирования для работы со звуком и графикой, интерактивное программирование также применяется как импровизационный стиль исполнения – лайв-кодинг, преимущественно в алгоритмической музыке и видео.