Friday, May 9, 2008

A Face For Stephen Hawking (Giles Bowkett Remix)

A Face For Richie Hawtin

Ruby-Processing creator Jeremy Ashkenas cooked up a programmatic multimedia piece called "A Face For Stephen Hawking," which generated starfield-like graphics in response to spoken word. After he saw my GoRuCo presentation on Archaeopteryx, he e-mailed me and told me his code works well for music too. Turns out this was very true. So I made a few changes, enough to give it my own spin, and pitted it against a Richie Hawtin mix mp3.

By the way, Ruby-Processing allows you to distribute pre-packaged apps for which the code remains editable. I had wanted to learn Objective-C up until I discovered this; now I just want to write a GUI library for Ruby-Processing. Like RubyCocoa, Ruby-Processing involves a lot of Ruby which looks like another language, but Ruby-Processing seems to do this with less work than RubyCocoa (specifically, without what appears to be a compiler, and with more idiomatic Ruby). Shoes gives you "write once, run anywhere," but it's nowhere near as Apple-friendly.

It's Ruby-Processing FTW here, in a very big way. If Ruby-Processing had a powerful GUI library, I think a lot of people would be very happy to use it to package and distribute applications that had nothing to do with Processing's visualization sweet spot. Prepackaging GUI apps with editable code might be able to give you the best of both worlds - the income of commercial software and the collaboration of open source. You could charge money for consumer apps and still allow consumers to edit the apps, or even give the code away to programmers but charge regular people for the app itself.

I know Ruby programmers who are very skeptical of JRuby for its sheer Javaness, but trust me, there's a win here:

The win is that Ruby-Processing has made Java's "write once, run anywhere" promise actually true. The irony, of course, is that Java couldn't deliver on "write once, run anywhere" until Ruby came to the JVM.