Thursday, January 21, 2010

Reception

Pascal generated a wide variety of responses in the computing community, both critical and complimentary.

Criticism

While very popular (although more so in the 1980s and early 1990s than now), implementations of Pascal which closely followed Wirth's initial definition of the language were widely criticized for being unsuitable for use outside of teaching. Brian Kernighan, who popularized the C programming language, outlined his most notable criticisms of Pascal as early as 1981, in his paper Why Pascal Is Not My Favorite Programming Language.[7] The most serious problem, described in this article, seems that array sizes and string lengths were part of the type so it was not possible to write a function that would accept variable length arrays or even strings as parameters (like a sorting library, for instance). The author also criticized the unpredictable order of evaluation of boolean expressions, poor library support, lack of static variables and number of smaller issues. Also, the language did not provide any constructs to "escape" (knowingly and forcibly ignore) restrictions and limitations where this is really necessary.

On the other hand, many major development efforts in the 1980s, such as for the Apple Lisa and Macintosh, heavily depended on Pascal (to the point where the C interface for the Macintosh operating system API had to deal in Pascal data types).

[edit] Reactions

Pascal continued to evolve, and most of Kernighan's points don't apply to versions of the language which were enhanced to be suitable for commercial product development, such as Borland's Turbo Pascal. Unfortunately, just as Kernighan predicted in his article, most of the extensions to fix these issues were incompatible from compiler to compiler. Since the early nineties, however, the varieties seem to have condensed into two categories, ISO and Borland-like, a better eventual outcome than Kernighan foresaw.[original research?]

Although Kernighan decried Pascal's lack of type escapes ("there is no escape" from "Why Pascal is not my Favorite Programming language"), the uncontrolled use of pointers and type escapes have become highly criticized features in their own right, and the languages Java, C# and others feature a sharp turn-around to the Pascal point of view. What these languages call "managed pointers" were in fact foreseen by Wirth with the creation of Pascal.

Based on his experience with Pascal (and earlier with ALGOL) Niklaus Wirth developed several more programming languages: Modula, Modula-2 and Oberon. These languages address some criticisms of Pascal, are intended for different user populations, and so on, but none has had the widespread impact on computer science and computer users as has Pascal, nor has any yet met with similar commercial success.

No comments:

Post a Comment