PILOT - Making Programming Languages Easy Is Hard
Today I want to tell you about an obscure, yet widely implemented, programming language. You’ve almost certainly never programmed in it, but if you’re old enough you saw an advertisement for it. It’s called PILOT, which stands for the Programmed Inquiry, Learning, Or Teaching language, was originally designed in 1968 by Dr John Starkweather to be used by teachers as an aid in instruction. PILOT was meant to be easy to learn.
I never programmed in PILOT, nor did anyone I know. This is weird, because I played with just about every language tool I could get my hand on back then, and most companies in the 1980s that made 8-bit computers sold a PILOT kit for their platform - for example, Apple, Atari, and Commodore all had platform-specific PILOT packages, and they were heavily advertised in catalogs and magazines. What gives?
My working theory is that in the 1980s, companies were still trying to convince consumers that a computer was more than a toy or a hobbyist project. Because of this, anything that sounded “educational” was an important part of the marketing toolbox. So even though hardly anyone USED pilot, everyone wanted to have it in the catalog as a “halo” item.
Turning to the language, you can see why it wasn’t widely used. Put simply, PILOT looks like a combination of assembly language and the UNIX “nroff” text formatting program, or assembly language and Perl. This is not what anyone would call easy to learn in today’s terms. We can forgive its oddities in 1968, but by 1980 there were much more approachable teaching options, such as BASIC or LOGO.
If we look at PILOT code we see something that really feels very much like assembly language: we have comments and references, but then each line of ‘real’ code consists of a single command letter - similar to an opcode, and then arguments specific to that opcode. So why would someone use this?
I think to grapple with PILOT we have to do so on its own terms. For example, f you read the Apple PILOT documentation you’ll find that they don’t call PILOT programs “programs” but rather “lessons”. Lessons consists not only of PILOT commands, but also sound effects and graphics; many PILOT package, such as Apple PILOT, bundled in graphics and sound effects editors. You can even edit a character set or font to allow you use to typed characters to stand in for graphics, or to represent non-English languages.
Atari PILOT put a heavy focus on Turtle graphics, similar to what was used in LOGO but with the ponderous syntax of PILOT.
The language itself may be ugly, but this level of integration is actually incredibly if you think about having it in 1980. So at least by the 1980s, PILOT was less of a programming language and more of a toolkit for teachers to build interactive lessons.
The interesting thing to me is that for something with a reputation as a teaching language, there’s actually not a lot of literature showing that it was as easy as it was probably meant to be.
The language’s greatest success is that The National Library of Medicine adopted PILOT as its primary computer language for the dissemination and exchange of computer-based instructional materials in the health sciences, and used it for instructing medical librarians in using MEDLINE.
An IEEE standard was proposed in 1991, and a reference implementation was created by Eric Raymond, but both the standard and the reference implementation were eventually abandoned.
If you’d like a window into the mind of the creator, John Starkweather. you can look at the April and May 1977 issues of Dr. Dobbs’ Journal, where he describes PILOT on the 8080 and also reproduces its source code. Dr. Starkweather passed away in 2001.
Thanks for watching, and I’ll see you next time on Programming Like it’s 1979.