Unintended programming languages

As I mentioned a few days ago, I’ve been looking at Remora, a sort of child of Lisp and APL. I find it interesting that neither Lisp nor APL were initially intended to be programming languages. (I also find it interesting that Lisp and APL are at opposite ends of the syntax spectrum, from minimal to maximal emphasis on notation.)

Lisp

John McCarthy developed Lisp as a theoretical construct. He didn’t intend it to actually run on a computer, and in fact he was surprised when Steve Russell turned Lisp into an actual programming language to run on the IBM 704.

McCarthy is usually given sole credit for developing Lisp, and if Russell is mentioned at all, he’s included as a footnote. You could argue this is backward and that Russell was the inventor of Lisp, with inspiration from McCarthy.

APL

APL is known for its idiosyncratic notation. What’s not as commonly known is that APL was originally intended to only be a system of notation. As explained here,

[APL] didn’t originate as a computer language at all. It was proposed as a better notation for tensor algebra by Harvard mathematician Kenneth E. Iverson. It was meant to be written by hand on a blackboard to transfer mathematical ideas from one person to another.

A few of Iverson’s notations have survived in common use in mathematics, but his larger impact has been through the application of his ideas for notation in array-oriented programming languages. While very few program in APL, a lot of people use ideas from APL which have been adopted by more popular languages, such as R and Python (in NumPy).