🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #6655

Evaluating Programming Languages

#6655
From: Glassy
Date: Sun, 04 Feb 1990 22:36
74 lines
3812 bytes
I would like to develop some set of criteria for evaluating
programming languages (both microscopically, on the 'feature' level,
and macroscopically, examining the language in toto).

I view a programming language as a tool.  A program represents the
tool in action;  to paraphrase Abelson & Sussman in "Structure and
Interpretation of Computer Programs", a program specifies the
evolution of a computational process.

Intuitively, then, for Language X to be an effective tool for
Application Y, X must enable me to specify the evolution or behavior
of process Y in a clear (and hopefully simple) way.  Also, the machine
code produced for Y must be fast enough to do job Y in an appropriate
amount of time.  Yes, I assume someone could write a space-shuttle
guidance package in Smalltalk-80, but if it runs too slowly, kiss
another shuttle good-bye... 

My starting point for a set of assessment criteria, is to try to
classify some of the common languages in (reasonable?) groups.

The languages I've used or read about seem to fall into about 5 distinctive
categories:  

a.  Homegrown:   FORTRAN', C', BASIC', FORTH'
b.  Algol:       Algol-60, Pascal', Modula
c.  Functional:  Lisp', Scheme, APL
d.  Monsters:    Algol-68, PL/1, Ada'
e.  Others:      Smalltalk, SNOBOL'

(For reference, I've only written programs in the languages listed
with a '.  I trust that partisans of each language will correct any
misperceptions I may have of _their_ fave :) .)

Each of the five classes have certain properties:

The homegrown (Made in the USA) languages represent in a fairly simple
and direct way, the underlying architecture of the machines upon which
 they are conceptually based.  Thus, producing efficient code for
these languages is a relatively straightforward (though non-trivial)
task.

("BASIC? Efficient? Hah!"  --true, degenerate BASICs like IBM BASICA
are not paragons of efficiency; the version of Dartmouth BASIC I first
learned to program with (HP 2000 Level F, c. 1980), seemed to cook
right along, though...)

The Algol family represent a more scientific-, and less engineering-oriented
approach to programming.  These languages appear to have been
_designed_, rather than simply glued together.

The functional languages represent programming as a mathematical discipline.
As such, they are more orthogonal and are syntactically simpler than
(a) or (b) above.

The monsters are, well... languages in which every useful feature was thrown in
except the kitchen sink; and in Ada, it looks like even that was
included.  These are large languages which seem difficult to use because of
  1) difficult-to-predict feature interaction (PL/1),
  2) orthogonality taken to its (logical? illogical?) extreme (Algol-68), 
and
  3) sheer humungousness (Ada).

And the others are languages that represent directions in software application
that seem different from all the rest.

I don't agree with some of the design decisions embodied in some
of the languages listed above, but I do have a keen appreciation for
the sorts of compromises language designers have made.  My
question to you is, how do -you- classify different languages, and
assess their relative value for a particular application?

Lou Glassy

;;standard-disclaimers-etc
Technical Details
Message-ID: <3069@caesar.cs.montana.edu>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!samsung!caesar.cs.montana.edu!icsu8209

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!samsung!caesar.cs.montana.edu!icsu8209
From: icsu8209@caesar.cs.montana.edu (Glassy)
Newsgroups: comp.lang.misc
Subject: Evaluating Programming Languages
Message-ID: <3069@caesar.cs.montana.edu>
Date: 4 Feb 90 22:36:18 GMT
Sender: news@caesar.cs.montana.edu
Reply-To: icsu8209@caesar.cs.montana.edu (Glassy)
Distribution: usa
Organization: Montana State University, Dept. of Computer Science, Bozeman MT 59717
Lines: 74