By Mark Sykes, Group CTO.
December 17 is the centenary of the birth of Harvard mathematician and Turing Award winner Kenneth E Iverson, on whose work our product is founded. It is worth taking a moment to enjoy the sheer improbability of the story, and reflect on where it may be heading next.
Iverson was born in Alberta, a territory with straight borders drawn by distant rulers, a shape on the map that is the visual definition of the word ‘provincial’. He came from Norwegian stock, raised in the reserved and laconic prairie culture celebrated by Garrison Keillor.
He liked to tell a Keillor story about Norwegian economy of expression.
The couple had just returned from their honeymoon.
“How was your honeymoon, Gullik?”
“Could have been worse,” replied young Gullik. On seeing the crestfallen expression of his bride, he hastened to add, “Could have been a lot worse.”
A child in the Great Depression, Iverson left school after Grade 9 to work on the family farm and might have spent his life farming had the Canadian government not sent him to war and afterwards offered him a university education. Outstanding results in mathematics and physics took him to postgraduate study at Harvard, where he worked under Howard Aiken and the economist Vassily Leontiev.
Aiken was building one of the first digital computers, and Leontiev was designing the input-output mathematical economic model for which he later won the Nobel Prize. Frustrated by the lack of a suitable notation for calculations with large matrices, Iverson devised his own. When Harvard asked him to teach the world’s first computer-science course, he and his assistant Fred Brooks wrote a textbook for it: “Automatic Data Processing”, and a spin-off devoted to the notation: “A Programming Language”.
Iverson’s slim book, honouring mathematical traditions of economy, was relentlessly revised to remove repetition or anything unnecessary. Brooks quipped:
”Ken taught me some useful productions: If it’s a clause, turn it into a phrase. If it’s a phrase, turn it into an adjective or an adverb. If it’s an adjective or an adverb, omit it. And you apply these recursively.”
Done well, this produces writing of inspiring simplicity and transparency. But when Iverson applied for tenure, Harvard refused, complaining that he hadn’t written “anything but the one little book”. Exasperated, Iverson left to join IBM.
At IBM Brooks was managing development of the operating system for the new System/360 family of computers. Iverson’s notation enabled a formal description of the architecture on which IBM had bet the company. After that, his team moved on to implement the notation on an IBM 7090 as IVSYS, first as batch jobs, then as interactive sessions. At that time, a large IBM project was bringing the first commercial multitasking operating system to life. As it struggled to support its first 2-3 users, the far simpler IVSYS smoothly shouldered two, four, then sixteen simultaneous users. Decades before the first PC, personal computing had arrived.
In the world of COBOL, FORTRAN, and PL/I, “Iverson notation” needed a plausible name or acronym. “Mathlab” and “Iverson’s Better Math” were both considered and discarded. Then Adin Falkoff named the notation after the book: APL.
Glory days. Long before spreadsheets, IBM managers wrote their budgets in APL, and lucrative timesharing services supported users around the world.
Iverson continued to work on the notation, returning to Canada to join his sons, and his college friend’s son Arthur Whitney, at the I.P. Sharp APL service. In 1990, now “retired from paid employment”, he presented J, a complete reboot of the language, implemented by Roger Hui from an initial sketch by Whitney.
Whitney’s own line of development had taken him first to Australia, where he re-implemented the 500Kb SHARP APL interpreter to run in an 80Kb core, and then to Wall St, where he implemented an APL subset, (dubbed A) fast enough to handle the swelling streams of data from financial exchanges. A evolved into A+, k, kdb+, and the q programming language.
Kdb+ and q are celebrated for their speed. They owe Iverson a great debt for that. The high level of abstraction gives implementers vast scope for optimization and parallelization, and for exploiting the vector architecture of machines. Features such as map/reduce have been copied and emulated in other languages.
Iverson would have been pleased. But he was neither programmer nor implementer; he remained a mathematician and a teacher. Iverson was more interested in how quickly a person could understand an algorithm than in how fast a machine could execute it. With his notation he sought to extend our capacity to grasp and express complex relationships. He opened his Turing Award lecture with a quotation from Alfred North Whitehead.
”By relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and in effect increases the mental power of the race.”
The parsimony and economy of expression Iverson brought from the prairies to Harvard continues to be valued by developers. Here is Whitney, speaking to the British APL Association’s 40th anniversary celebration:
”K programs routinely outperform hand-coded C. This is theoretically impossible. K compiles into C. Every k program has a C equivalent that runs exactly as fast. Yet it is true in practice. Why? Because it is easier to see your error in four lines of code than in four hundred lines of C.”
Mathematician and teacher to the last, Iverson died from a stroke, seated at his keyboard, writing new tutorials for J. He was 83. While his work has enabled huge efficiencies in program execution, his greatest legacy may well be the terse mathematical notation that helps us express and solve problems in an increasingly complex world.
Let his colleague Paul Berry have the last word on this.
Before APL was called APL, it was called “Iverson notation”. Ken mused that it should be called simply “the notation”. After all, we don’t say “God’s grass”, just “the grass”.
In recognition of the centenary Iverson College is hosting an online meeting with a distinguished panel, some of whom worked with him, to reflect on his contribution and discuss the future prospects of “the notation” in its various forms.