Symbolic Computation Group

David R. Cheriton School of Computer Science
University of Waterloo, Waterloo, Ontario, Canada

History of Maple Computer Algebra Software

History of Maple

March 1993

Since the 1960's, research work on the design of algorithms and systems for performing symbolic mathematics (now commonly known as ''computer algebra'') was underway at institutions such as MIT. The systems which were used during the 1970's (such as Macsyma and Reduce) were very large LISP-based systems requiring many megabytes of RAM and extensive CPU time to perform routine mathematical computations. Consequently, only a tiny number of researchers with access to large mainframe computers (and only if they didn't have to time-share with many other users) were able to exploit this technology.

Key Idea Underlying the Technology

When the Maple project was conceived in November 1980, the primary goal was to design a computer algebra system which would be accessible to large numbers of researchers in mathematics, engineering, and science, and to large numbers of students for educational purposes. One of the key ideas was to make space efficiency, as well as time efficiency, a fundamental criterion. The vehicle for achieving this goal was to use a systems implementation language from the BCPL family rather than LISP. (Initially, Maple was implemented in B on a Honeywell computer but soon the C language became the obvious widely-available implementation language.) Another aspect of making the system widely accessible was to design for portability, so that the system could be ported to the various microcomputers which were appearing in the marketplace. A very important aspect of achieving the efficiency goal was to carry out research into the design of algorithms for the various mathematical operations, with the relative comparison between algorithms based on the measure "space squared times CPU time".

Solution Approach

From the outset, the Maple project took the approach of immediately implementing the design concepts. Hence by the first week of December 1980 there was an operational Maple system which had limited capabilities. The process of trying various design ideas, and accepting or rejecting the ideas quickly, led to a continually-evolving system. (This process of evolution continues at a significant pace to the present time. Since the goal of the Maple project can be viewed as the ``mechanization of mathematics`` and since the field of mathematics is very large, there is no obvious point of termination for the project.) Starting in 1982, demonstrations of the system were presented at various conferences. The major paper which set out the design criteria for the Maple system was presented at a conference in 1983:

B.W. Char, K.O. Geddes, W.M. Gentleman, and G.H. Gonnet, "The design of Maple: A compact, portable, and powerful computer algebra system." Appears in Computer Algebra (Proceedings of EUROCAL '83), J. A. van Hulzen (ed.), Lecture Notes in Computer Science, No. 162, Springer-Verlag, Berlin, 1983, pp. 101-115.

As mentioned above, there was a usable Maple system right from the early weeks of the project. Within a couple of months the system was being used to support the course ``Introduction to Symbolic Computation'', a course on algebraic algorithms for senior undergraduate and graduate students. Several local mathematicians started to use the system in 1982 in their research work.

Evidence of Value

By 1983, researchers at various institutions were using the software both in research and in teaching, in various disciplines including mathematics, computer science, engineering, physics, and economics. At the end of 1983 there were about 50 external installations of the software. The impact on the research lab of having ''customers'' inquiring about software availability, requesting ports to different operating systems, and requesting support for its installation and use, was becoming significant. It became clear that the issue of software distribution would have to be addressed.

Propagation Through the Community

In 1984, the research group made arrangements with WATCOM Products Inc. to license and distribute the Maple software. Towards this end, it was determined that the system's general mathematical capabilities needed to be enhanced in certain areas, that the system must be ported from its Unix base to the IBM VM/CMS system and the DEC VMS system, and that the existing Reference Manual needed to be substantially re-worked to become an acceptable User's Guide. Achieving these goals caused about a one-year delay in getting the product ready for distribution in this new mode, which finally started about mid-1985. By 1987 there were about 300 installations worldwide.

By late 1987, it was clear that the demand for the Maple software was potentially very large and that a high level of ''customer support'' was being demanded. The decision was made to incorporate Waterloo Maple Software (now Maplesoft) for the purpose of marketing, distributing, and supporting the software. During 1988-1990, the installed base grew relatively modestly to about 2000 installations worldwide. Since 1990, with increased attention to sales and marketing, to customer support, to the development of improved user interfaces and graphics, as well as the on-going research and development of new algebraic algorithms, the penetration of Maple into the marketplace has been growing at a substantial pace.


Last modified on Friday, 26 October 2012, at 17:38 hours.