APL started life as a way of writing mathematics, not as something a machine would run. Kenneth E. Iverson developed the notation at Harvard in the late 1950s to describe algorithms clearly, and published it in his 1962 book A Programming Language, which gave the language its name. That origin is the short answer to why APL uses special symbols instead of words: each symbol was meant to be a mathematical operator, written once and read at a glance, the way a mathematician reads Σ or √.
From blackboard notation to IBM APL\360
Iverson joined IBM in 1960. Working with Adin Falkoff, he used the notation to give a formal description of the IBM System/360 architecture, published in 1964. The idea that the notation could also be executed came next. Larry Breed and Dick Lathwell, with Roger Moore at I.P. Sharp Associates, wrote an interpreter, and by 1966 IBM had a working time-sharing system known as APL\360, released to customers as a program product a few years later.
Users worked at IBM 2741 terminals, which used a Selectric typewriter mechanism. Swapping in a special APL typeball let the terminal print the full character set, and overstriking (typing one symbol, backspacing, typing another) produced extra glyphs. Hardware shaped the language: the symbols existed because the typeball could print them.
Why APL uses special symbols instead of words
Iverson's argument, set out most fully in his 1979 Turing Award lecture "Notation as a Tool of Thought", was that good notation lets you think about larger ideas because the small ones take up almost no space. A few points follow from that design choice:
- One symbol, one operation.
⍴is shape or reshape,⍳is index generation,⌽is reverse or rotate. Most symbols have a one-argument (monadic) and a two-argument (dyadic) meaning. - Whole-array operations. Arithmetic applies to entire arrays, so most loops simply disappear.
- Operators that modify functions. The reduction operator
/turns+into "sum" and×into "product". This idea of higher-order operators predates its popularity in mainstream languages by decades. - Right-to-left evaluation. There is no precedence table to memorise; every function takes everything to its right as its right argument.
The cost is that you must learn the glyphs, and for years you needed special terminals to type them; Unicode removed most of that friction.
A short APL example
The session below uses Dyalog APL syntax. Lines indented by six spaces are what the user types; the others are the interpreter's replies.
⍳10
1 2 3 4 5 6 7 8 9 10
+/⍳10
55
avg ← {(+/⍵)÷≢⍵}
avg 3 5 7 10
6.25
+/ is "plus reduction", ≢ counts the items, and ⍵ is the right argument inside a direct function (a "dfn"). No loop, no counter variable.
How APL was used
Through the 1970s, APL time-sharing services run by I.P. Sharp Associates and STSC (Scientific Time Sharing Corporation) gave companies interactive computing long before personal computers. Actuaries, financial analysts, operations researchers and engineers liked it because they could model a problem in a few lines and change it in minutes. IBM's 1975 IBM 5100 portable computer shipped with APL, BASIC, or both in ROM.
| Year | Milestone |
|---|---|
| 1962 | Iverson publishes A Programming Language |
| 1966 | APL\360 running as an interactive system at IBM |
| 1983 | Dyalog APL first released |
| 1984 | IBM releases APL2 with nested arrays |
| 1989 | ISO 8485 standard for APL |
| 1990 | Iverson and Roger Hui introduce J, an ASCII-only successor |
Influence and legacy
APL's direct descendants include J, which replaced the glyphs with ASCII digraphs, and Arthur Whitney's A+ and K, the language behind the kdb+ database widely used for financial time-series data. The array style also fed into MATLAB, the S language (and so R), and NumPy. When a data scientist writes a vectorised expression instead of a loop, they are working in a tradition APL made practical.
Is APL still used today?
Yes, in a small but committed community. Dyalog Ltd maintains a commercial APL with a free non-commercial licence, GNU APL implements the ISO and APL2 dialect, and IBM still supports APL2. You will find it in insurance, finance and long-running in-house planning systems, plus a growing hobbyist community. If you want to understand why APL uses special symbols instead of words, spending an afternoon with a free interpreter is the quickest route: after a while the glyphs read like vocabulary rather than noise.
Frequently asked questions
How do you type APL symbols on a normal keyboard?
Modern interpreters such as Dyalog install a keyboard layout where a prefix key (often the backtick) or an AltGr combination produces each glyph. Online editors also offer a clickable language bar. The characters themselves are standard Unicode, so any modern font with APL coverage will display them.
Is APL harder to learn than Python?
The first week is harder, because you have to learn around 50 primitive symbols and right-to-left evaluation. After that, many people find array problems quicker to express in APL than in Python. The difficulty is mostly unfamiliarity rather than complexity.
What is the difference between APL and J?
J was created by Kenneth Iverson and Roger Hui around 1990 as a successor that uses only ASCII characters, so it needs no special keyboard. It also refined some concepts, such as tacit (point-free) programming and function trains. Many of these ideas later flowed back into modern APL dialects.







