Reacting on Principle: programming 2.0
In the video above, Brett Victor explains his view on how programming should be. His opinion is that great things are often achieved through discovery and that the code-compile-run cycle of traditional software engineering hinders this discovery. Instead, one should be able to see what the result of a program is while one is coding the program (as shown in the video). This "see what you program" way of coding is commonly called live programming and has recently seen an increase in interest by the research community .
There are essentially two parts to live programming. A first part focusses on the actual act of programming. In order to create a more immersive programming experience, textual tools as we traditionally use them no longer suffice. An example of alternative ways of programming are graphical programming langauges . A second part of live programming is the ability to get live feedback from the programming environment in order to steer the design of the program under construction. A key piece of technology in this second part is the environment's ability to react to the user's input. In recent years reactive programming  has established itself as a paradigm to efficiently and elegantly implement exactly these kind of systems. Namely systems which react to user input.
Although live programming has greatly advanced as a whole in the past couple of years it still mostly relies on textual tools to create programming environments for mainstream (i.e. non-reactive) programming languages. In this thesis you will strive towards a (live) programming model 2.0, where text and unreactivity are history.
Concretely, the goal of this thesis is to employ the recent advantages in virutal reality technology to provide a truly immersive live programming environment for reactive systems. In this virtual environment the programmer interacts with multitutes of graphical entities which represent parts of the overall system under construction. Besides a non-negligable body of work involving graphical design this thesis will also focus on the constructs needed to allow programmers to implement reactive systems graphically. In other words, you will need to design a full-fledged virtually graphic reactive programming language !
Concretely we foresee the following steps as a high-level roadmap:
- A literature study on reactive programming
- A literature study on graphical programming languages
- The design of a graphic reactive programming language
- The implementation of a live programming environment using state-of-the-art virtual reality equipment
.Ellis, T. O., Heafner, J. F., & Sibley, W. L. (1969). The GRAIL language and operations (No. RM-6001-ARPA). RAND CORP SANTA MONICA CA.
.Bainomugisha, E., Carreton, A. L., Van Cutsem, T., Mostinckx, S., & De Meuter, W. (2012). A survey on reactive programming. In ACM Computing Surveys.