- Annette Beyer (for administrative matters)
Live coding celebrates creative experiences of technology, and empowers creative technology users. We want to see programming languages and tools that not only express and create software more effectively, but draw in the public: students, audiences and digital citizens.
This Dagstuhl seminar brings together the researchers creating new generations of interactive software development tools. Our goal is to make users into hackers, and engineers into artists. Too many programming languages are created for the office, laboratory or battlefield, but live coding is about the experience of making software as a part of human life. The technical challenges are to take interaction seriously, maintain flow alongside rigour, encourage agility, and engage with social communities.
The seminar focus is on sharing and developing technical expertise, but we're also going to explore beyond bounds of conventional software engineering or arts categories. Participants will include not only leading programming language designers and software engineers, but psychologists, philosophers, educators and of course a slew of the world's top live coding performers.
The concrete output from the seminar will be a manifesto and reference work for the rapidly expanding live coding community. We hope to integrate video tutorials with a book from a major publishing brand, to reach both researchers and professional enthusiasts.
Live coding is rapidly changing the way the world thinks about software engineering. We believe that it can also transform computer science education and uses of technology. The hacker and maker movements need these kind of tools. And computing must be inspiring if it's going to be educational. This seminar will do important work. It's going to be practical work. And it will probably be hard work. But the last thing it will be is boring. We're going to be hacking, learning and jamming. We promise an unconventional programme, a lot of fun, and the joy of the Dagstuhl experience - community, focus, and inspiring surroundings.
The goal of this seminar was to understand and develop the emerging practice, characteristics and opportunities in live coding, with an emphasis on three perspectives: the humanities, computing education, and software engineering. The opening days of the seminar were broadly structured to provide thematic introductions followed by facilitated discussions on each of these three perspectives. These were interspersed with live coding performances and experiments, in order to ensure that theoretical concerns remained grounded within this discipline that fundamentally blurs the separation of concerns between theory and practice.
The second half of the seminar was problem-oriented, resulting in concrete progress on specific technical topics, together with development of a research roadmap, publications and policy strategy to realise the significant benefits that live coding promises in a number of fields. Finally, in the spirit of both practice as a form of theory and theory as a form of practice, the seminar included some exciting musical experiences -- an Algorave club night in London, with performances by delegates who were traveling from other countries on their way to the seminar; an inter-continental collaborative performance hosted jointly with the IEEE VL/HCC conference in San Jose; a conceptual proposal for an interactive sound installation in the Schloss Dagstuhl garden; and live-coded jam sessions in venues ranging from the woods of the old castle, to evening cabaret entertainment in the beautiful Dagstuhl music room.
Our main findings in relation to the three contrasting research perspectives were as follows:
- Live coding illuminates the ways in which programming can be an artistic practice, software-as-art, going beyond a mere supporting role, and illustrating that software is itself a cultural artefact, not simply an infrastructure commodity. We see many opportunities for nuanced, cross-disciplinary contributions to the digital humanities, for example in a revitalisation of the historical connection between computation and weaving, insights into the role of practice and experiment, and an enrichment of the notion of computation itself. Indeed, as computing becomes embedded in culture, the live, everyday authorship of computation becomes a socio-political question of freedom of speech and empowerment.
- Live coding can play an important role in computing education, because it allows programming to be demonstrated and learned in a simple but authentic context. At the same time, it can support an affective teaching strategy where learners are not only motivated by the production of sound, visuals and other phenomena, but are also clear on the distinctly human activity which produces them. Thereby, however, it maintains a sense of discovery of something unanticipated and not prefigured. Of particular importance for learning is the potential for deeper engagement with the non trivial nature of computing, rather than an occupation with the operation of end-user application software.
- Live coding offers new insights with regard to software engineering processes. The history of software engineering process can be seen as a move from heavyweight lock-step approaches to more agile approaches with fast cycles of development and feedback. At their heart, the new approaches rely on collaboration, as developers, designers, and customers work together to steer the process toward mutual success. Live coding demonstrates this kind of approach in a compelling way, with simple tools, a short time frame, but still allowing improvisational collaboration between performers and various audiences.
Perhaps more significant than any of these individual considerations is an ambitious holistic vision: that live coding can entirely change the way we think about programming. Indeed, the common experience articulated at the workshop is that live coding exemplifies both the power and the excitement of programming -- in a small space, in a short time, available and accessible to anyone. Live coding exposes the soul of programming.
Our next steps are a series of collaborative workshops and programs to articulate and demonstrate this collection vision of a broad and expanding role for live coding.
This report is a collection of texts that were direct outcomes of the seminar rather than having been set up in advance. Taking the role of editor seriously, Jochen Arne Otto has diligently collected, arranged and revised the heterogeneous materials, a synthesis without which such a concise paper would not have been possible. While taking responsibility for all remaining mistakes and omissions, we would like to thank Jochen very much for his commitment to this difficult task.
- Samuel Aaron (University of Cambridge, GB) [dblp]
- Robert Biddle (Carleton University - Ottawa, CA) [dblp]
- Alan Blackwell (University of Cambridge, GB) [dblp]
- Andrew R. Brown (Griffith University - Brisbane, AU) [dblp]
- Luke Church (University of Cambridge, GB) [dblp]
- Geoff Cox (Aarhus University, DK) [dblp]
- Alberto de Campo (Universität der Künste - Berlin, DE) [dblp]
- Thomas Green (University of York, GB) [dblp]
- Dave Griffiths (FoAM - Kernow, GB) [dblp]
- Mark J. Guzdial (Georgia Institute of Technology - Atlanta, US) [dblp]
- Ellen Harlizius-Klück (University of Copenhagen, DK)
- Shelly Knotts (Birmingham, GB) [dblp]
- Adrian Kuhn (University of British Columbia - Vancouver, CA) [dblp]
- Thor Magnusson (University of Brighton, GB) [dblp]
- Alex McLean (University of Leeds, GB) [dblp]
- David Ogborn (McMaster University - Hamilton, CA) [dblp]
- Jochen Arne Otto (ZKM - Karlsruhe, DE)
- Roly Perera (University of Edinburgh, GB) [dblp]
- Julian Rohrhuber (Robert Schumann Hochschule für Musik, DE) [dblp]
- Juan Gabriel Alzate Romero (Hochschule für Musik - Karlsruhe, DE)
- Uwe Seifert (Universität Köln, DE) [dblp]
- Andrew Sorensen (Queensland University of Technology - Brisbane, AU) [dblp]
- Jan Kees van Kampen (Robert Schumann Hochschule für Musik, DE)
- Renate Wieser (Universität Paderborn, DE)
- society / human-computer interaction
- software engineering
- Live coding
- software engineering
- agile development
- learning and teaching