Jump to content

Interactive programming: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
An update to the Quoth demo movie, provided by the author, Craig Latta (me).
 
(46 intermediate revisions by 32 users not shown)
Line 1: Line 1:
{{Redirect|Live programming|live broadcasting television and/or radio programming|Broadcast programming}}
[[Image:JITvsStandardProgramming.png|thumb|200px|right|Interactive Programming vs. Standard Programming]]
{{Distinguish|Live coding}}
'''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 [[User interface|interface]] for a running process, rather than an [[Interactive computing|interactive application]], where the program is designed in [[development cycle]]s and used thereafter (usually by a so-called "user", in difference to the "developer"). Consequently, here, ''the activity of writing a program becomes part of the program itself.''
{{More citations needed|date=September 2021}}
[[Image:JITvsStandardProgramming.png|thumb|200px|right|Interactive programming vs. standard programming]]
'''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 [[User interface|interface]] for a running process, rather than an [[Interactive computing|interactive application]], where the program is designed in [[development cycle]]s 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.
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:''' Live Coding, On-the-fly-Programming, Just In Time Programming, Conversational Programming
'''Synonyms:''' on-the-fly-programming, just in time programming, conversational programming


== Application Fields ==
== Application fields ==
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 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 been also used in applications that need to be rewritten without stopping them, a feature which the computer language [[Smalltalk]] is famous for. Generally, [[dynamic programming language]]s provide the environment for such an interaction, so that typically [[Software prototyping|Prototyping]] and [[Iterative and Incremental development]] is done while other parts of the program are running.
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 language]]s provide the environment for such an interaction, so that typically [[Software prototyping|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.
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.
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.
For further information see eg. [http://toplap.org Toplap]


== Example Code ==
== Example code ==
*Live coding of 3D graphics in [[ActionScript]] using [[COLT (software)|COLT]]<ref>{{Cite web|url=https://www.youtube.com/watch?v=V4yoe1K080|title=- YouTube|website=[[YouTube]]}}</ref>
*An example of some code in the dynamic programming language [[SuperCollider]] is available [http://swiki.hfbk-hamburg.de:8888/MusicTechnology/739 here].
*An example of some code in the dynamic programming language [[SuperCollider]] is available [http://swiki.hfbk-hamburg.de:8888/MusicTechnology/739 here].
*Another example, written in [[ChucK]] is available [http://wiki.cs.princeton.edu/index.php/FractalMelody here]
*Another example, written in [[ChucK]] is available [http://wiki.cs.princeton.edu/index.php/FractalMelody.ck here]
*Live Coding of graphics with [http://www.pawfal.org/Software/fluxus/ fluxus]: [http://www.pawfal.org/Software/fluxus/images/ribbon.png a screenshot]
*Live coding of graphics with [http://www.pawfal.org/Software/fluxus/ fluxus]: [https://web.archive.org/web/20060105163947/http://www.pawfal.org/Software/fluxus/images/ribbon.png a screenshot]
* [[Impromptu (programming environment)|impromptu]]
*An example of livecoding in English with [http://netjam.org/quoth/demo Quoth]
*An example of livecoding in English with [https://vimeo.com/50530082 Quoth]
*[https://elm-lang.org/news/interactive-programming Hot-swapping] in the [[functional reactive programming]] language [[Elm (programming language)|Elm]]


==See also==
==See also==
* [[Live coding]]
* [[Live coding]]
* [[Rapid application development]]
* [[Read–eval–print loop]]

==References==
{{reflist}}


[[Category:Programming paradigms]]
[[Category:Programming paradigms]]

Latest revision as of 21:45, 9 March 2023

Interactive programming vs. standard programming

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

Application fields

[edit]

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.

Example code

[edit]

See also

[edit]

References

[edit]
  1. ^ "- YouTube". YouTube.