Pascal

Pascal: n.  An Algol-descended language designed by Niklaus
   Wirth on the CDC 6600 around 1967--68 as an instructional tool for
   elementary programming.  This language, designed primarily to keep
   students from shooting themselves in the foot and thus extremely
   restrictive from a general-purpose-programming point of view, was
   later promoted as a general-purpose tool and, in fact, became the
   ancestor of a large family of languages including Modula-2 and
   {{Ada}} (see also {bondage-and-discipline language}).  The
   hackish point of view on Pascal was probably best summed up by a
   devastating (and, in its deadpan way, screamingly funny) 1981 paper
   by Brian Kernighan (of {K&R} fame) entitled "Why Pascal is
   Not My Favorite Programming Language", which was turned down by the
   technical journals but circulated widely via photocopies.  It was
   eventually published in "Comparing and Assessing Programming
   Languages", edited by Alan Feuer and Narain Gehani (Prentice-Hall,
   1984).  Part of his discussion is worth repeating here, because its
   criticisms are still apposite to Pascal itself after ten years of
   improvement and could also stand as an indictment of many other
   bondage-and-discipline languages.  At the end of a summary of the
   case against Pascal, Kernighan wrote:

     9. There is no escape

     This last point is perhaps the most important.  The language is
     inadequate but circumscribed, because there is no way to escape
     its limitations.  There are no casts to disable the type-checking
     when necessary.  There is no way to replace the defective
     run-time environment with a sensible one, unless one controls the
     compiler that defines the "standard procedures".  The language is
     closed.

     People who use Pascal for serious programming fall into a fatal
     trap.  Because the language is impotent, it must be extended.
     But each group extends Pascal in its own direction, to make it
     look like whatever language they really want.  Extensions for
     separate compilation, FORTRAN-like COMMON, string data types,
     internal static variables, initialization, octal numbers, bit
     operators, etc., all add to the utility of the language for one
     group but destroy its portability to others.

     I feel that it is a mistake to use Pascal for anything much
     beyond its original target.  In its pure form, Pascal is a toy
     language, suitable for teaching but not for real programming.

   Pascal has since been almost entirely displaced (by {C}) from the
   niches it had acquired in serious applications and systems
   programming, but retains some popularity as a hobbyist language in
   the MS-DOS and Macintosh worlds.



HTML Conversion by AG2HTML.pl V2.94618 & witbrock@cs.cmu.edu