This is a personal project to port the wonderful examples from Daniel Shiffman's book The Nature of Code -> http://natureofcode.com to Andrew Sorenson's Extempore livecoding language -> http://extempore.moso.com.au/
But why?
Even before Daniel Shiffman wrote the Nature of Code, I dreamed of working with the ideas that I read in Gary Flake's The Computational Beauty of Nature -> https://mitpress.mit.edu/books/computational-beauty-nature
In 2013, while at The School for Poetic Computation, I came across the concepts of functional programming and livecoding.
In particular, the Impromptu language for music creation. The concept of changing code while a program was running excited me intensely,
Could I finally get the same transcendant buzz I get from performing... from coding?
So Impromptu became Extempore, the first language built from the ground up for livecoding. I shared two goals with Extempore, the experience of interactive programming, and high-performance computing. So I began to righteously learn this language, only to find that it was quite difficult and nothing like any language I had worked with before. So after two years of dabbling I decided that I needed a project to learn the nitty gritty of this sorcerous language.
I chose to port The Nature of Code for many reasons:
- Its awesome. The examples are endlessly inspiring.
- Its one thing to change the color of circle while code is running, and its another to change the behavior of an autonomous agent or process. This kind of expression through algorithm modification is the buzz that I'm chasing.
- Its written in Processing, which is Java, which is object-oriented, which is the way that I am used to thinking. Extempore is functional and procedural. This means rethinking how data and functions are organized. And that means learning
- Usability. Right now, you can go ahead download Extempore and my code, and start following The Nature of Code using Extempore instead of Processing. And believe me, interactively programming these examples is fun.
- Teaching. When teaching beginners to code creatively, the two biggest problems I have are syntax and the connection between the code and the output of the program. Extempore is a Lisp, so it has almost no syntax, and you can watch the output of the program change AS you change the code. Can't wait to give a workshop!
”OK OK! Enough with the intro.... how do I use it”
- Go to http://extempore.moso.com.au/ and follow the instructions to install extempore for your OS/text editor
- Clone my code and place it in /usr/local/Cellar/extempore/HEAD/share/extempore
- Start up Extempore and start evaluating code!