Live coding (sometimes referred to as 'on-the-fly programming', 'just in time programming' and 'conversational programming') is a performing arts form and a creativity technique centred upon the writing of source code and the use of interactive programming in an improvised way. Live coding is often used to create sound and image based digital media, as well as light systems, improvised dance and poetry, though is particularly prevalent in computer music usually as improvisation, although it could be combined with algorithmic composition. Typically, the process of writing source code is made visible by projecting the computer screen in the audience space, with ways of visualising the code an area of active research. Live coding techniques are also employed outside of performance, such as in producing sound for film or audiovisual work for interactive art installations. Also, the interconnection between computers makes possible to realize this practice networked in group.
The figure of live coder is who performs the act of live coding, usually "artists who want to learn to code, and coders who want to express themselves" or in terms of Wang & Cook the "programmer/performer/composer".
Live coding is also an increasingly popular technique in programming-related lectures and conference presentations, and has been described as a "best practice" for computer science lectures by Mark Guzdial.
A range of techniques have been developed and appropriated for the purposes of live coding.
The specific affordances of time-based media and live interaction with code has led to a number of novel developments and uses in programming language design. Through mutual embedding of imperative and declarative subsystems, the programming language SuperCollider permitted to build a library that allows incomplete and provisional specifications which can be rewritten at runtime.
The ChucK language introduced an approach to "strongly timed" programming in 2002, embedding precision timing into control flow through a concise syntax.