Il live coding,[1] a volte indicato anche con i termini on-the-fly programming,[2]just in time programming e conversational programming, è una tecnica che rende l'attività di programmazione parte integrante del programma in esecuzione.[3]
Il live coding è maggiormente praticato come forma d'arte performativa e tecnica creativa. L'attività è caratterizzata dalla scrittura del codice sorgente dal vivo e sull'uso della programmazione interattiva in modo improvvisato. Il live coding viene spesso impiegato per creare media digitali basati su suoni e immagini, nonché per gestire sistemi di illuminazione, danza e poesia[4][5]. Tuttavia, è maggiormente diffuso per la creazione di computer music o musica informatica a carattere improvvisativo, anche se possiamo trovarlo impiegato anche in combinazione con la composizione algoritmica .[6] Tipicamente, il processo di scrittura del codice sorgente è reso visibile proiettando lo schermo del computer nello spazio del pubblico, mostrando quindi l'attività di continua ricerca compiuta dal performer.[7] Le tecniche di live coding sono impiegate anche al di fuori della performance dal vivo, come nella produzione di colonne sonore per film[8] o lavori audiovisivi per installazioni artistiche interattive.[9] Inoltre, i computer dei performer possono essere interconnessi grazie a una rete creata ad hoc, rendendo possibile la realizzazione di performance collaborative e l'interazione in gruppo.
Il o la live coder è la persona che esegue l'atto del live coding, solitamente "artisti o artiste che vogliono imparare a programmare, e programmatori che vogliono esprimersi"[10] o, utilizzando i termini di Wang & Cook il "programmatore/esecutore/compositore" .[2]
Il live coding è anche una tecnica sempre più popolare nelle lezioni e nelle conferenze relative alla programmazione ed è stata descritta come una "buona pratica" per le lezioni di informatica da Mark Guzdial .[11]
^Alan Blackwell, Alex McLean, James Noble, Jochen Otto, and Julian Rohrhuber, "Collaboration and learning through live coding (Dagstuhl Seminar 13382)", Dagstuhl Reports 3 (2014), no. 9, 130–168.