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 many years of improvement and could also stand as
   an  indictment  of  many other bondage-and-discipline languages. (The
   entire essay is available at
   http://www.lysator.liu.se/c/bwk-on-pascal.html.)  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  entirely displaced (mainly by {C}) from the
   niches   it   had   acquired  in  serious  applications  and  systems
   programming, and from its role as a teaching language by Java.

[glossary]
[Reference(s) to this entry by made by: {BASIC}{bondage-and-discipline language}{holy wars}{If you want X, you know where to find it.}{Java}{languages of choice}{toy language}]