Интерактивное программирование: принципы и применение
Interactive programming
Интерактивное программирование: разработка кода во время работы программы. Отличие от традиционных приложений, быстрая обратная связь, экстремальное вычисление.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Интерактивное программирование — это процесс написания фрагментов программы в процессе её выполнения. Оно акцентирует внимание на исходном тексте программы как на основном интерфейсе для работающего процесса, а не на интерактивном приложении, где программа разрабатывается итерациями и затем используется (обычно так называемым "пользователем", в отличие от "разработчика"). Следовательно, в данном случае написание программы становится неотъемлемой частью самой программы. Таким образом, это конкретный пример интерактивных вычислений, являющийся противоположностью пакетной обработке, где ни написание, ни использование программы не происходят в интерактивном режиме. Принцип быстрой обратной связи в экстремальном программировании доводится до крайности и становится более явным. Синонимы: программирование на лету, программирование по требованию, диалоговое программирование.
Interactive programming is the procedure of writing parts of a program while it is already active. This focuses on the program text as the main interface for a running process, rather than an interactive application, where the program is designed in development cycles and used thereafter (usually by a so called "user", in distinction to the "developer"). Consequently, here, the activity of writing a program becomes part of the program itself. It thus forms a specific instance of interactive computation as an extreme opposite to batch processing, where neither writing the program nor its use happens in an interactive way. The principle of rapid feedback in extreme programming is radicalized and becomes more explicit. Synonyms: on the fly programming, just in time programming, conversational programming
Поля применения
Методы интерактивного программирования особенно полезны в тех случаях, когда невозможно заранее предоставить четкое описание решаемой задачи. В таких ситуациях (что нередко встречается в исследованиях) формальный язык обеспечивает необходимую среду для разработки подходящей постановки вопроса или формулировки проблемы. Интерактивное программирование также применяется в приложениях, требующих переписывания без остановки работы, что является отличительной чертой языка Smalltalk. Обычно динамические языки программирования предоставляют среду для подобного взаимодействия, позволяя осуществлять прототипирование, а также итеративную и инкрементную разработку в процессе работы других частей программы. Поскольку эта возможность востребована в звуковом дизайне и алгоритмической композиции, она там значительно развилась. В последнее время исследователи используют этот подход для разработки алгоритмов сонификации. Используя динамические языки программирования для работы со звуком и графикой, интерактивное программирование также применяется как импровизационный стиль исполнения – лайв-кодинг, преимущественно в алгоритмической музыке и видео.
Interactive programming techniques are especially useful in cases where no clear specification of the problem that is to be solved can be given in advance. In such situations (which are not unusual in research), the formal language provides the necessary environment for the development of an appropriate question or problem formulation. Interactive programming has also been used in applications that need to be rewritten without stopping them, a feature which the computer language Smalltalk is famous for. Generally, dynamic programming languages provide the environment for such an interaction, so that typically prototyping and iterative and incremental development is done while other parts of the program are running. As this feature is an apparent need in sound design and algorithmic composition, it has evolved significantly there. More recently, researchers have been using this method to develop sonification algorithms. Using dynamic programming languages for sound and graphics, interactive programming is also used as an improvisational performance style live coding, mainly in algorithmic music and video.