Live coding, where should I send my invoice for performance royalties?
Live coding (i.e., performance art + coding) is the shiny new thing in trendy circles (which is why it was a while before I heard about it). I’m sure readers have had the experience of having to code around issues on customer sites while everyone looked on, this is certainly a performance and there is an art to making it look like minor issues, rather than major problems, are being sorted out.
Isn’t musical improvisation live coding? Something that people like J. S. Bach were doing hundreds of years ago.
I don’t think that the TOPLAP (Transdimensional Organisation for the Permanence of Live Algorithm Programming) website is aimed at people like me, but I did enjoy the absurdity of its manifesto.
Who originated the term live coding? Perhaps it was a salesman trying to turn the poor user interface on the product he was peddling into desirable feature, i.e., having to write code to get the instrument to play a tune is a benefit.
Live performers are always looking for a new angle to attract the public. Perhaps they have noticed the various efforts to get kids coding and have adapted the message to their own ends. No, that cannot be true, academics are making arduous journeys to German country houses to discuss this emerging new technology Don’t worry if you missed out, you can attend the First Live Coding International Conference in July!
I’m sure live coding will get a few students programming who would otherwise have gone off and done something else. But then so would a few rainy weekends.
I suspect that most developers would prefer to do fewer live coding sessions.
Personally as a developer I love live coding sessions. I have never found a more compelling reason to gain a detailed understanding of emacs, fully load a programming language in my brain, improve my typing speed and think of DSLs for my brain rather than anyone else’s. A hundred eyes watching you code is a very compelling reason to move fluidly though code.
I also think live coding broke programming for me.
When you can control light and sound with such rapid feedback everything else feels rather slow and dull. I would hope this might lead to more thoughts about the feedback loop in programming.
Finally I would add that live coding provides a path for programmers like me to pickup music.
Programmers becoming musicians and musicians becoming programmers.
@Joseph Wilk
Yes, you certainly need to know what you are doing when live coding; no time to search the internet for answers.
Isn’t live programming about being in the moment and the odd mistake here and there does not matter, while ‘conventional’ programming is about repetition in the future (i.e., people executing the code later always getting the same behavior) and correctness is very important?
Good questions Derek. I think live programming has various schools of thought. I like to be in the moment but I practice a lot and develop a good idea of where I can go in that moment. So it is in the moment but also structured. I also care a lot about avoiding mistakes, there are various levels of seriousness with mistakes. I guard with DSLs against the worst mistakes and practice to prevent the less serve.
I think conventional programming again is a wide spectrum. For example I work in Clojure, with an interactive REPL continuously evaluating my code. I also work with large data sets where the initial phases of programming tend to be run in very fast simulations. That initial stage can be very similar to that of a live coded performance. Focusing on the creation of ideas, shaping out thoughts and prototyping. The after stages of writing tests, refactoring, throwing away the prototype and starting on the real thing are where correctness steps in for me. This is very unlike a live performance.
Lots of people have different ideas about how that coding takes place and when that correctness enters the picture. I suspect it depends on whats being written and your personal style.
@Joseph Wilk
Thanks for the detailed reply.
Writing code just seems like a terrible user interface for live performances. Something like the Scratch user interface might help, but perhaps you prefer Solo climbing.