Apr 21

Rael Dornfest

Rael Dornfest

hax0r5 & proce55ors

Processing (nee proce55ing) -- a Java-based open source programming language "created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool" -- put me in mind of Paul Graham's wonderful essay Hackers and Painters.

Paul Graham's wonderful essay Hackers and Painters has resonated with me since I first ran across it in an blog entry by Tim (now an O'Reilly book). In particular, I was struck by Paul's description of how he was taught to program:

I was taught in college that one ought to figure out a program completely on paper before even going near a computer. I found that I did not program this way. I found that I liked to program sitting in front of a computer, not a piece of paper. Worse still, instead of patiently writing out a complete program and assuring myself it was correct, I tended to just spew out code that was hopelessly broken, and gradually beat it into shape. Debugging, I was taught, was a kind of final pass where you caught typos and oversights. The way I worked, it seemed like programming consisted of debugging.
For a long time I felt bad about this, just as I once felt bad that I didn't hold my pencil the way they taught me to in elementary school. If I had only looked over at the other makers, the painters or the architects, I would have realized that there was a name for what I was doing: sketching. As far as I can tell, the way they taught me to program in college was all wrong. You should figure out programs as you're writing them, just as writers and painters and architects do.
Realizing this has real implications for software design. It means that a programming language should, above all, be malleable. A programming language is for thinking of programs, not for expressing programs you've already thought of. It should be a pencil, not a pen.

Now I wasn't taught to program when I started out. Neither my school nor my house had a computer. I wrote out all of my first hundreds of lines of code longhand, bundled up my scraps of lined school paper, and waited for the one hour a week I got in front of a time-share teletype-to-PDP, whereupon I'd hunt and peck each and every line in as fast as I possibly could so as to maximize the interactive versus typing time I got with the processor. Of course I'd run the code in my head countless times in the days leading up to this, but it wasn't until I actually laid hands on that the real programming actually happened.

So it was that I was intrigued by the Processing (nee proce55ing) project, described as:

Processing is a programming language and environment for people who want to program images, animation, and sound. It is used by students, artists, designers, architects, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool.

Sounds like a goodly combination of hacking and painting.

Processing -- released as a cross-platform open source beta a couple of days ago -- is like Java sans all the preamble and optimized for graphical design. The attached figure shows the elegant development environment, simple sample code (yes, that's all of it), and a rather stunning running app.


tags:   | comments: 4   | Sphere It

Previous  |  Next

0 TrackBacks

TrackBack URL for this entry:

Comments: 4

  rvr [04.22.05 09:36 AM]

Maciej Ceglowski wrote a lengthy rant about 'Hacker and Painters' in Dabblers and Blowhards, worth the read: «So let me say it simply - hackers are nothing like painters».

  Talya [04.22.05 12:26 PM]

I agree. Very worth reading. I pretty much enjoyed it at Idle Works.

¿Lengthy? brevity is for the weak ;*)

  alienboy [04.24.05 02:13 AM]

Given that nobody has yet written any GREAT software, in the sense that until software becomes as easy to use as a Hi-Fi or TV or a Book, all software is poorly written, clunky and irritatingly unreliable.

And now we know why - it's your fault! Grrrrr...

  jhn [04.24.05 10:40 PM]

An even better essay has been written about this very topic. Paul Ford's "Processing Processing" (Google it!) positions Processing in the genre of programming languages that compile into aesthetic objects, in the same category as LaTeX and C Sound.

Post A Comment:

 (please be patient, comments may take awhile to post)

Type the characters you see in the picture above.