At some point in the mid-90s, after the release of the games MYST and The 7th Guest, came an explosion of multimedia software on CD-ROMs. Until that time, building any kind of software was a tedious, error-prone process, and doubly so if it had to display animations and video, play multi-channel sound, and react to users’ keyboard taps and mouse clicks, drags, and drops. You’d have to double that effort again if you wanted to make it for both Mac and Windows.
John Henry Thompson changed all that with Lingo, the programming language for the cross-platform multimedia authoring tool known as Macromedia Director (formerly MacroMind Director, and later Adobe Director). It was the very first programming language that used to make my very first applications at Mackerel Interactive Multimedia, my very first workplace, for paying customers. As with Marc Canter, who co-founded MacroMind, I will be forever grateful to “JT,” as he was known in those days, for helping get my start in what’s turned out to be a pretty nice career.
Here’s a quick taste of the sort of things people created with Lingo and Director. It’s also a taste of the digital aesthetic of the mid-1990s:
Since the download speeds of the time were about 10 minutes per megabyte on the fastest modems under ideal conditions, there was really only one way to get Director: in a shrink-wrapped box like the one pictured below…
…which contained CD-ROMs and a lot of manuals fashioned out of dead trees:
John was always living with one foot in the world of tech and one in the world of art. He studied computer science at MIT, but while there, he also minored in visual arts. During that time, he took a year-long break from MIT to take part in a year-long program in painting and drawing at New York’s Art Students League.
“While I was there, in ’83 or ’84 I started combining my interest in the visual arts with computer graphics… I started doing stuff at the media lab. I focused there on integrating my interest in multimedia into my computer science degree. I got a minor in visual studies where I got exposed to film making, graphic design, photography, all that… It was actually not well known, but there was a lot going on there in the visual arts in MIT. I did a lot of independent work there, I built some 3-D graphics systems and an interface to broadcast equipment, some real-time video processing things, sort of like music video effects, and from that, that took me more into the video production end of things, and I was hired from there, that was ’84, I got a job at the Droid Works [a spin-off company of LucasFilm], on the EditDroid project, which we were building a non-linear editing system. This was before digital video, this was based on laser disks, and so that’s how I ended in the Bay Area working in San Rafael.”
“From the early days I was interested in the Macintosh, so I took that opportunity to start looking around for work on the Macintosh, and I got a Mac Plus and through some people at DroidWorks, actually the husband of one of the employees there, I got in touch with Marc [Canter, founder of MacroMind, the original name of Macromedia]. At that point Macromedia was based in Chicago and they were making VideoWorks and MusicWorks and GraphicWorks. They’ve been around for a while – they were one of the first major applications on the Macintosh. They were there from, I think they started in ’84. I don’t know if you know, but VideoWorks started out on even before the 512K Mac. It was quite a feat that it was able to run.”
“So I got in touch with Marc through this friend from DroidWorks and he said he was looking for someone to write the accelerator – it was in a lot of ways similar to QuickTime. That was my first work with them.”
From the accelerator project, John moved to working on the color paint program in Director, which let you create and edit bitmap images in Director projects. He was still a contractor when he added Lingo into version 2.0 of Director on his own initiative:
“I wanted to see some of my work on interactive languages that I had been using for interactive art in a commercial product… I was still a contractor, or a consultant, but most of my time was spent with MacroMind products at that point. The company’s focus at that point was 3-D Works. It was kind of an unsupervised project – what they had at that point was VideoWorks Interactive, which was a central, BASIC-like language hooked on to the animation engine and that was used for the Guided Tour on the Macintosh.”
“And that was where Lingo started – it was a replacement for that BASIC language. (We were using a BASIC language) that I think was copied out of an article in Dr. Dobbs, so it was a very rudimentary implementation of a BASIC interpreter – you had single character variable names, the variables were typed by their names.”
“Lingo was a replacement for that. It started out just incrementally, because I was doing interactive stuff myself and I wanted to use Director to do it, so first I plugged in the xobject stuff, which was some code I had set up to control video disk and some other stuff that I was using in my interactive art. So, xobjects went in from day one, and then I started putting in more of the traditional features you find in a language: recursion, untyped variables, all that kind of stuff.”
“…from its very first incarnation it was object-oriented. Back at that point – this was ’87 – this was when C++ and Objective C were making headway and I’ve done a lot of research on Smalltalk and the Lisp environments.”
I programmed in Lingo from 1995 to 2000, and there are unmistakable elements of Smalltalk and Lisp in there, along with a strong HyperTalk accent. These screenshots of script windows should give you a taste of the language:
Lingo allowed me and the other developers at Mackerel to crank out applications for floppy disk, then CD-ROM, then Shockwave apps for the web, for both the Mac and Windows, in a fraction of the time it would’ve taken in C. I wrote interactive multimedia desktop applications for a number of clients, including AOL, Microsoft, Toyota, USF&G, Dairy Farmers of Ontario, and Delrina, and I wouldn’t have been able to do so without John and his language, Lingo.
I had the opportunity to meet John in 1996 at the afterparty for the Macromedia User Conference in San Francisco, and it was wonderful to speak with him. It was the first time I’d ever had a chance to talk to someone who’d made a programming language that I’d used. I thanked him then, and I’d like to repeat it now: Thank you, John, for Lingo, and for getting me started on my career!
What he’s been up to recently
He made an appearance on the YouTube channel The Coding Train in 2018, where he talks about Director and some of its modern descendants:
Earlier this year, he was a guest on the Coding in the Wild podcast, where he talks about his recent project, DICE, short for “Distributed Instruments for Computed Expression,” which is an open source platform for exploring that intersection of art and programming:
He also maintains a personal website at johnhenrythompson.com.