Monday, September 30, 2013

Programming & Tech Writing

As a philosophy major at Arizona State University (See ASU - The Logic Man), I studied, and actually enjoyed, Boolean algebra -- who knew?


When you are a philosophy major you get used to people asking what you are going to do with your degree. I had no idea. I was just studying what I was most interested in.  (If my university had supported multiple majors I could have had a triple major of Philosophy, History, and Literature.) Anyway, years passed and I was visiting Florida in 1982 with J4 and met a friend through her who worked for Nasa at Cape Canaveral and who spent his free time in a little trailer, man-cave out in the overgrown backyard behind the mobile-home he lived in. What he did back there was program an early personal computer called the Sinclair ZX81.





He showed me what he was doing and I noticed that BASIC, the programming language he was using, was more or less built on Boolean algebra.


When I got back to San Francisco I bought my own computer, a Timex-Sinclair ZX81 and taught myself to program in BASIC. In case you're puzzled by the pictures above, the doorstop unit just contains the CPU and the keyboard (such as it is), you need to connect it to a black and white TV to get a display and to a tape recorder to have any data storage (there’s no hard or floppy drive). And that little box plugged into the basic unit contained 16k of your RAM -- but if you giggled it at all the connection would break and you would lose all your work. I was pretty obsessed with programming this thing for several years.


It’s amazing how much time and effort some people (nerds!) put into these primitive machines. There were special magazines and user groups and stores all dedicated to finding something to do with these difficult devices.


In February 1984 I bought the premier issue of MacWorld Magazine (which I still have) and read it from cover to cover. I was so on board. It is hard today to express what a revelation the Macintosh concept was, the hardware, the graphical interface, and especially the conception of how the Operating System should be organized. The people from Xerox PARC and SRI International (and I’ve met some of them, including Alan Kay and Doug Engelbart) can explain until their dying day how they came up with most of these ideas, but it was Jobs and the Mac that brought them to a mass audience -- including me. As I read that premier issue of MacWorld, time after time as they described various aspects of the hardware and software I found myself exclaiming, “Yes! That’s how it ought to be done.” As soon as I could find the money, I bought the original Mac and started programming in BASIC.


But then Apple came up with something even better than the Mac, HyperCard. HyperCard was an application that included painting, text, and programming tools wrapped up in one package that was designed to be easy enough for the average person to use. And it was free. I immediately dropped BASIC forever and jumped on HyperCard and the included HyperTalk interpreted computer language. 

I also met Bill Atkinson, who was on both the Mac and HyperCard development teams. He is one of only two people I’ve met who could edit hexadecimal code by sight (hexadecimal is the step above binary that uses 0-9 plus A-F to represent numbers. So "A" is 10 decimal and "B" is 11 and "F" is 15). He would just glance at it in a resource editor and say, “Well, that doesn’t look right” and type in a new value -- I was standing next to him going, “But... but... but....” And it even worked.


Since the days when all computers were mainframes, people had been trying to break the cult of the programmer priesthood, the elite who understood the machines and who everyone else had to go through to access what these magical machines had to offer. Most of the early attempts to do this, like COBOL and UNIX, were themselves so esoteric that it’s hard now to recognize them for what they were at the time. This movement went into overdrive with the primitive personal computers, but HyperCard (and HyperTalk) were probably the best it ever got. The (almost) average user could create his or her own applications. 

Sadly, the movement died after that and current programming trends (like OOP) run counter to bringing programming to the average person. Once again, programming is the domain of the specialist, not every-man (end rant.) And what’s even more irritating is that today’s computers are so fast they could run the poky interpreted languages of the 1980 and 1990 really well. (I really am done now.)


The original (free) documentation for HyperTalk, the language included with HyperCard, was not that great but the language was so intuitive that it was relatively easy to work out. Also, the lack of documentation created a market for something better. I somehow managed to co-authored two books on HyperCard/HyperTalk -- I can’t recall how I got my foot in that door. Then I wrote another book on just the language for the Berkeley Macintosh Users Group (BMUG). BMUG was a collection of Mac nuts who met on the campus of the University of California, Berkeley (Cal). I contributed prose to their massive “newsletter” and worked with a book designer in the group on a reference book for the language which finally gave me the programming information I wanted in the format I wanted it.


Through BMUG and the books, I started meeting people deeper into the Macintosh and HyperCard communities. I soon got a job as a HyperTalk programmer at Apple’s Multimedia Lab.


Before the WWW


Laserdisc Multimedia

The Apple Multimedia Lab (see Working For Apple) was interested in combining all sorts of media content under the control of computers -- what Wikipedia and YouTube do today. We were also interested in “virtual travel” where you could navigate a visual representation of the world on your computer -- Google StreetView in other words. But the World Wide Web didn’t exist yet so we had to improvise everything. Computers didn’t have the storage for the kind of content we wanted to show, so we hooked up computers to laserdisc players. A laserdisc was the size of an LP record but worked like a big, double sided DVD. The content was displayed on a TV monitor (mostly, there were ways to get the image onto a computer display but this was complicated and expensive). Most of what I did was program the software on the computer that talked to and controlled the videodisc player plus programming whatever was happening on the computer screen.


CD-ROM Multimedia

The next step came in the early ‘90s when CD-ROMs started being included with computers. The amount of data (images, audio, video) was limited but now it was all inside the computer so you didn’t have to mess with complicated multi-machine hookups.

I started contracting with people I’d met through HyperCard but usually programming in another language, Director Lingo (see Director, Mostly).


One time I was flying from San Francisco to Phoenix for Christmas and as we flew down the Peninsula before turning toward Yosemite I could see all these places I had worked scattered over the entire Bay Area.


And then it was over. I worked mostly for a small group of friends who slowly moved into other things. And the programming languages were changing, too. OOP is very elegant and clever, but it is relatively esoteric. It is not meant for the average man. It requires a different approach than the seat-of-the-pants style that I excel at (the software designers I worked with could never decide what they wanted the software to do until the last moment so I had to throw everything together quickly, usually over a couple days and nights). The business grew up and I moved on.

By the time the WWW had grown to the point you could reasonably expect people to access content there (so you didn’t have to ship the media, just the software that accessed the media -- or, as today, post everything in the Cloud, or even better, just link to things already in cyberspace, as I’ve mostly been doing here) I was out of the business.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home