[net.lang] High-levity

g-frank@gumby.UUCP (01/19/85)

Here is a suggested new definition for "high-level," as it pertains to
programming languages:

	A language is "high-level" when it is so difficult to
	learn, and so filled with arcana, that true mastery in
	it is reserved for just a few.  As a corollary to this,
	the higher level the language, the more cryptic the error
	messages produced by the compiler (or assembler, or inter-
	preter), and the more obscure and disastrous the run-time
	results of miscoding.

Features contributing to make a language "high-level" are:

   1) Confusing and obscure type declaration syntax.

   2) Data types which are implicitly other data types, which is something
      you're supposed to know, without anyone telling you.

   3) No checking for type (or number) of function parameters.

   4) Extreme brevity and terseness of expression, the terser the better,
      so that expressions of great power and subtlety may be created,
      that in after times will amaze, astound, confuse, and in general
      prevent maintenence by those who follow on.

   5) Non-orthogonality, but not so you'd notice until you try to
      write something.

   6) All minor coding errors not caught by the compiler and flagged
      with such useful messages as "expression syntax error," or
      "lvalue required," should at run time generate equally helpful
      and highly terminal operating system complaints.  Messages contain-
      ing the words "violation", "dump", or the phrase, "internal error,
      call technical support," are particularly desirable.

   7) There should be two types of strings, and half the string operations
      should work on one type, and half on the other, with no intersection
      between the sets (this is true of a very popular Pascal compiler;
      does anyone recognize it?).

   8) The language should have a macro processor, but you should not
      be able to intercept its output in order to debug your macros.

   9) Finally, it should be understood that the highest level language
      that anyone knows is one that he/she has just read a book on, and
      has not yet tried to do anything useful with.  Thus, languages for
      which it is virtually impossible to find a validated compiler are
      very highly prized.

  10) Conversely, the highest level language that anyone knows is a language
      about which he/she has never read a book, because real programmers
      don't learn languages from books. 

  11) In the same vein, the best language of all is one about which a decent
      book has NEVER been written, because then only real programmers can
      learn it.

I could go on, but the list would be much too long.  I just want to add that
while I have included attributes of many high level languages in this list,
my particular favorites are C and Intel Assembler (both of which I DO use,
by the way).  It seems that the more attributes from the above list that a
language possesses, the more devoted its following.  This I take as scien-
tific proof that the level of a language may be verified in an objective
fashion, the precise details of which I will publish in a upcoming mono-
graph.  Watch this space for announcements.


-- 
      Dan Frank

	"good news is just life's way of keeping you off balance."