Last week I had the distinct pleasure of attending the retirement celebration for Dr. Keith Geddes, founder of Maplesoft and inventor of the Maple system. I’ve known Keith for over 20 years now and I consider him one of the few people I know well who has had, without exaggeration, a profound impact on the world.
Keith earned his chops as a numerical analyst in the 1970’s. Then as a young faculty member at the University of Waterloo, he developed an interest in symbolic computation. The lore has it that he had no intention of designing a complete new system but wanted to use the “grand-daddy” of symbolic systems MACSYMA from MIT. During those wild frontier days of computing, the only way to get access to such specialized systems was remote dialing to the MIT machine in the wee hours of the night (to reduce phone costs), using a 90 Baud modem … those were the days!
What happens when you combine a bright ambitious faculty member, a slow phone line, an incredibly patient wife, and a monolith of specialized code written in LISP? Telephone bills in the thousands of dollars! In many ways, he couldn’t afford not to invent a new generation, highly efficient, easy-to-use, powerful symbolic computation system of his own.
Of course the result was the invention of the Maple system. Today, when you see Maple, you see a rich integrated software system with all the trimmings that you would expect from a modern application. At the heart of this impressive system though, I think, is one of the most amazing concepts in software.
First, let’s set the scene. It is 1980 – a year before the introduction of the IBM PC running Microsoft DOS, but Apple II and operating systems like CP/M were already pointing the computing vector away from the giant machines of the 70’s and 60’s to the personal desktop. The symbolic computation world was dominated by MACSYMA and REDUCE, both written in the “intelligent” language LISP - reputedly powerful, but brutally demanding in resources and tough to use. The task ahead was simple. Design a symbolic computation system that is as powerful as MACSYMA and REDUCE but was accessible and could comfortably run on the emerging generation of microcomputers.
The brilliance, in my mind, was an architecture that had a tiny compiled kernel (first written in the now comfortably resting language B, then migrated to C), which basically performed the lowest level operations that required maximum speed and interpreted its own language for higher level operations. This high level language is the language of Maple and even today, the vast majority of the smart math is written in this language.
The brilliance of the design was that because the compiled part was tiny, it was trivial to port to various computers (recall, in the early 1980’s there were dozens and dozens of computer platforms), and it would run on the most modest of machines. And because the math was written in a high level language optimized for math, algorithm development was incredibly fast. There was no need to deal with mathematical “housekeeping” and no need to worry about tweaking code for different computers. This marvelous design ensured the rapid proliferation of this new system and the rapid growth and adoption of its math algorithms library.
Legend has it that the first scribblings on the design of Maple was in December 1980 and that official prototype and accompanying research paper was published in 1983. In 1984, due to the phenomenal demand that was emerging, it went into commercial distribution through a company called WATCOM (the WATFOR people), and in 1988 Maplesoft was founded to establish a firm business foundation for rapid growth.
Over the years, Maple has touched millions of users. In the very first financial statement of the new company, the list of customers already included an impressive set of prominent universities and important commercial and government organizations such as IBM Research, AT&T, Sandia National Labs, and the West German Institut für Mechanik. The list of customers today is literally staggering. Virtually all major universities and advanced scientific research labs, and a seemingly never-ending list of innovation-driven companies who see Maple and math as powerful tools to maintain competitive advantage. In the next two decades the name Maple became synonymous with high performance symbolic computation and more recently, numeric computation, and modeling and simulation.
In the documentary series Connections, James Burke comments on the weird and wonderful historical coincidences that conspire to trigger fabulous scientific discoveries. Last Thursday, it dawned on me that I was privy to one of these … the remarkable journey from Keith and Debbie Geddes’ bloated phone bills in the 70’s, passing through the Gates-Jobsian microcomputer revolution of the 80’s, to emerging as the de facto standard symbolic math system in the 90’s, to making fundamental contributions to missions in space, high performance automobiles, feature films, telecommunications security, and generations of better educated mathematicians, scientists, and engineers, today.
Thanks Keith! And we look forward to many more years of collaboration with you.
Yours Truly and Dr. Keith Geddes at his retirement celebration
The Design of Maple: a Compact, Portable, and Powerful Computer Algebra System. This is the very first public paper on the Maple system. 1983 (attached).
Algorithms for Computer Algebra, Keith’s milestone book on symbolic computation algorithms.