Interactive programming, also known as live coding, refers to any computer programming language that allows the creator to make changes to the program while it is already running. In traditional programming, the coder first writes out the program and then saves it. He then runs the program on the computer. If an error occurs, it's back to the drawing board to type out new code and run the program all over again. With interactive programming, the designer can make changes to the code without having to run the program over again.
Another use for interactive programming is to allow input from the user in what is called an interactive application. This can be as simple as asking the user for her name and then displaying it on the screen. The program has an interactive element by changing the value of the user's name based on what she types. When the program was created, it did not know her name and the value was blank. Once it learned her name, it put that value into the program while the program was still running and then displayed it on the screen.
This type of interactive programming is in contrast to another programming process known as batch processing. In batch processing, the program can run without ever needing input from the user. This has the advantage of running on its own without needing the user's help, but does have one major drawback. All the information needed for the program to run must be coded in to it from the beginning. If the program wanted to display the user's name, it would need to know it already, as it could not ask for the user's input.
In the creation of a program, it goes through development cycles. These cycles start out with identifying what the program should do, writing the code for it, and testing out the program. The designer then goes back and makes changes to the program and tests it again. This process repeats until a successful program is created.
When interactive programming is used, the distinct lines between stages of the development cycle become blurred. Writing the program and running the program become one and the same. Instead of writing the program and then executing it, the developer can write the program, run it, and continue to write or make changes to it while it is running. This allows for much more flexibility in programs, and allows the programmer or user to make changes without restarting the program.