50 Years of Pascal
Pascal, as defined by Wirth, is just horrible.<p>No &quot;fopen&quot; to open files of a given name in the filesystem.<p>In fact, no &quot;open&#x2F;creat&quot;, nor any other system calls at all.<p>No &quot;extern&quot;, no &quot;#include&quot;, no user-created libraries, no ability to create a .a file, or even a .o file without main().<p>Actually, no system libraries, either; just a few built-in functions (sin and cos, but no tan; ln but no log).<p>No &quot;default&quot; on case statements.<p>No &quot;break&quot; or &quot;continue&quot; statements; only &quot;goto&quot;.<p>No bitwise operators for and&#x2F;or&#x2F;xor.<p>No equivalent of C&#x27;s &amp;&amp; and || operators, where the second argument is guaranteed not to be evaluated if the first one determines the result.<p>And, for everyone who complains about C strings, all Wirth Pascal strings are fixed-length arrays of characters. So, you can&#x27;t pass the constant string &#x27;foo&#x27; to a function that is expecting an array of 4 characters.<p>Finally, in TeX, Knuth says he found the fact that when you get around to defining a forward function, you must NOT repeat the parameter list (names, types) again, to be so objectionable that he chose to use global variables to communicate with forward functions instead.<p>All of people&#x27;s fond Pascal memories are actually due to extensions in Turbo Pascal, etc.