50 Years of Pascal
Pascal, as defined by Wirth, is just horrible.<p>No "fopen" to open files of a given name in the filesystem.<p>In fact, no "open/creat", nor any other system calls at all.<p>No "extern", no "#include", 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 "default" on case statements.<p>No "break" or "continue" statements; only "goto".<p>No bitwise operators for and/or/xor.<p>No equivalent of C's && 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't pass the constant string 'foo' 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's fond Pascal memories are actually due to extensions in Turbo Pascal, etc.