Programming Languages
Abstract
In order to understand the issues surrounding programming language choice one must understand the many pressures, both technical and social, that impinge on language design and adoption. In this article, these pressures are organized into three competing needs: (1) those of the problem domain for which languages are used to “solve problems,” (2) the conceptual and computing models underlying the designs of the languages themselves, independent of particular problem domains, and (3) the social and physical context of use of the languages. Favoring one will entail tradeoffs in the others.
After a brief discussion of these pressures, a historical perspective is presented that illustrates how these various pressures played important roles in affecting programming language development and adoption throughout the years. Finally, speculation on language trends of the 2000s is presented.