Wednesday, October 31, 2012

Cage’s Memories of Computer Programming

I spent the better part of yesterday reading a paper by Leta E. Miller about John Cage’s work with electronic technology leading up to and then following the composition of “Variations V,” one of his most technology-rich pieces. Miller cited Cage having a relationship with Bell Labs that was new to my knowledge of him. It involved his connection with Max Mathews, a leading pioneer of digitally synthesized sound involving the development of a programming language for use by those wishing to compose electronic music. Miller wrote the following about Mathews:
Mathews recalls that he first met Cage when the composer contacted him to see if Bell Labs could construct a random number generator program that would mimic the stick-tossing procedures of the I Ching, an ancient Chinese treatise on divination. Mathews remembers accommodating Cage (‘not a very hard job; about 15 minutes of writing a program’).
None of this surprised me very much, including Mathews estimate of the amount of programming time involved.

While Miller did not attach a specific date to this encounter, it probably would have been in the early Sixties; and therein lies the surprise. I met Cage for the first time in the summer of 1968 while he was in the midst of working on “HPSCHD” with Lejaren Hiller at the University of Illinois. This was another technology-rich project, this time heavily digital where “Variations V” had been heavily analog. I attended a seminar at which Cage talked about his work at Illinois. This involved, among other things, once again having a program to simulate the chance operations behind I Ching consultations. This time the programmer was Ed Kobrin; and, according to Cage, it took six months for Kobrin to write the code.

(As an aside, Cage gave this talk at MIT. A programmer I knew who was in the audience ducked out after Cage made this statement. He was back with a running program before Cage concluded his talk. As I said, Mathews’ estimate was entirely believable.)

In retrospect this was, for me at least, a powerful lesson in programming environments. Both Bell Labs and MIT had rich environments for “interactive” programming. At the University of Illinois, on the other hand, one submitted punched cards to a batch-processing system. Interactive programming also entailed interactive diagnosis when the program did not work. There were even powerful software tools to facilitate the programmer observing what was happening on a step-by-step basis, modifying the program itself, and observing the impact of the change.

My guess is that the University of Illinois had no such interactive environment that allowed programmers to be more productive in their work. If the program did not do the right thing, one stared at the code, possibly using pencil and paper to facilitate the analysis. They were programming computers using techniques not that different from those used for those early computers being developed during the Second World War, unaware of how the state of the art had advanced at places like MIT.

In many respects the Internet has leveled the playing field across different work environments. However, as tools have gotten more powerful and more available to more individuals connected through the Internet, the knowledge of what actually happens seems to be declining. As I read various articles in trade publications, I have discovered that the number of people who know how code works and how to write it is in attrition, meaning that I am not the only one complaining about how few people are left who know how “the machine” works these days!

No comments: