In Gabriel's paper, his arguments can be generalized as a single point: "make it simple". Surrounding this point, there are four aspects of his theory:
  1. The language should easy to be accepted. To make a language easily acceptable, it has to be available on a wide variety of hardware, it should be easy to learn, it's implementation should be simple for it to spread and lastly, it should be similar to existing language.
  2. Successful languages require minimal ore modest computer resources. It should carefully choose the problems to through innovation and maintain the computing speed achieved by hardware development.
  3. Successful language should provide a simple model to access its performance. This will help programmer write more efficient program.
  4. Successful language should have mathematical simplicity.
The "simplicity" theory is well generalized and it's soundness can observed by looking at the successful story of C language [1]. But, can we use this theory to predict the fate of every existing language?

In his paper Gabriel missed one equally important point that directs the creation and development of programming languages. That is the social need. By looking at the history of programming language [2], every language is created from a need. As long as such a need still exists and there is no better substitution, the language prevails. The development of Lisp gives a good clue on how the "need" theory and Gabriel's "simplicity" theory play a role in a programming language's fate.

By using Gabriel's theory, Lisp is considered to be in ill health. Indeed, showing on his statistical data, Lisp code is only a fractional of all the code that has bee written.

But, Gabriel's use of his static data to measure how popular a programming language is and it's chance of survival is problematic. The popularity of a language should be measured not only by how many people are using it and how many lines of code are written by it, but also by how many people are using it to accomplish the kind of task which this language is designed for.

Lisp is not designed for general programming, it is born from a desire for an algebraic list-processing language for artificial intelligent work [1]. Since its creation in the early 1960's, LISP has remained major language of choice for implementing state-of-the-art programs that simulate human intelligence:

The above properties of Lisp, which are considered drawbacks by Gabriel's "simplicity" theory, are actually very attractive aspects for AI developers. As long as such a need by AI developers exist and grow, Lisp language will keep to survive and develop.


[1]  R. P. Gabriel.  The end of history and the last programming language.  Journal of Object-Oriented Programming,  6(4):90-94, July 1993.

[2] Dennis M. Richie.  The development of the C language.  Second History of Programming Languages conference, Cambridge, Mass., April 1993

[3]Richard L. Wexelblat.  History of programming languages.  New York : Academic Press, 1981.
  developers exist and grow, Lisp language will keep to survive and develop.

  • Answers to class questions