Live Coding is a topic raised when software developers talk about the tools they like to use, or might like to use in the future. The main idea behind live coding is to allow a software developer to illustrate the state of variables and other data in the code as coding is carried out. Some might even extend it to suggesting that coding should take place in a ‘playbox’ that allows immediate simulation of results.
The motivation for live coding seems to be to avoid the need to wait to compile the code, or even to run a script, before obtaining some feedback. It is orientated around programming as a manual, humanistic art. Those in favour of live coding want to be able to visualise and anticipate the consequences of their code at the point it is written; to obtain the benefits of computing at the stage when design and restraints are being written.
Many people have contributed to ideas for how to achieve live coding. One of those is Bret Victor, an independent designer and former Apple employee/consultant has presented many influential talks outlining his principles as a software designer.
A specific application of the live coding environment (IDE) is COLT software, the ‘Code Orchestra Live Coding’ tool.
A similar idea has been implemented in the LightTable code editing environment. A talk by Chris Granger, one of the developers, in late 2012, suggested that the tool was implemented in ClojureScript and uses the design pattern of a Component Entity System.