Renkon-pad: A Live and Self-Sustaining Programming Environment based on Functional Reactive Programming
Renkon-pad is a live programming environment based on an Functional Reactive Programming language called Renkon. In Renkon-pad, the user creates text boxes to write reactive expressions. The user can also create any number of ``runner'' windows (separate execution environments) to run the program. The user can modify the program and update a running runner or create a new one to experiment quickly.
The FRP-based model of the Renkon language is conducive to a boxes-and-wires dataflow diagram. However, Renkon-pad does not employ a typical box-and-wire visual representation. The dependency relationships are expressed in the code as text rather than by connecting boxes with wires. Additionally, a text box can contain any number of expressions. This design helps scale the size of a program that the user can handle in the environment. In other words, the programmer has greater flexibility in organizing their program in logically meaningful way. The system analyzes the dependencies among expressions and draws lines as a visualization of the program to aid comprehension.
Renkon-pad is powerful enough to create and live-edit non-trivial applications, including itself. Text box and runner window management, user interaction, generation of virtual DOM elements and their rendering, the file save and load feature, and dependency visualization are implemented in about 700 lines of Renkon and CSS definitions.