[comp.compilers] What makes a language popular?

kurt@tc.fluke.COM (Kurt Guntheroth) (07/30/87)

I claim that what makes a language popular (other than being useful) is an
accessible standard reference work and a sample implementation of the
compiler.  Not all languages have both of these, but virtually every
popular language has at least one.  I am not old enough to be directly
familiar with initial versions of FORTRAN or COBOL, but there are some
modern examples.

Pascal:  The universally recognized standard reference is Jensen and Wirth.
This document, while by no means perfect, is a relatively complete and
concise spec for Pascal.  As if that wasn't enough, there is a p-code
compiler for Pascal that practically everybody who goes to college for a
CSci degree will see eventually.

Modula-2:  Since everybody latched onto M-2 as the "new pascal" there are an
infinite number of textbooks on Modula-2.  Wirth wrote a reference manual,
but is is less widely recognized.  There are also a couple of standard
compilers, although they also are less widely distributed.

C:  Who can forget K & R, a book so well known in C circles that even the
author's names have been contracted.  Both the Ritchie C compiler and PCC
are widely available for scrutiny, and at least PCC is arguably a high
quality production compiler.  C has the additional attribute of being a good
match to the machine architectures of most microprocessors.  Thus, even
those people who had no access to one of the prototype C compiler sources
had little trouble in coding a compiler from scratch.  (BDS C, Whitesmith's
C, Lattice C, and an unknown additional number of commercial C compilers.)

Of course, just having a reference and prototype compiler is not a guarantee
of success.  You also have to get lucky.  I have a nice book by Per Brinch
Hansen on a language called Edison.  Nice Pascal-like language, and there's
a complete listing of the compiler in the book.  Nevertheless, Edison just
never caught on.  I am sure the literature is virtually carpeted with such
derelict remains.

There is also BASIC, which survives in spite of having absolutely no
standard text, and no standard implementation.  The reason BASIC thrives in
contrary fashion is that, in the absense of any standard, it is possible to
call any language BASIC.  Just make sure it contains the keywords IF, GOTO,
and GOSUB, and permits at least optional line labels.
[Evidently you're talking about a necessary but not sufficient condition.
Who uses Edison, after all?  I suspect the other condition is that the
language be better for some useful set of tasks than the other popular ones.
In any event, this is getting sort of far afield from the topic of compilers.
It might be interesting to compare real implementation experience for some
languages.  -John]
--
Send compilers articles to ima!compilers or, in a pinch, to Levine@YALE.ARPA
Plausible paths are { ihnp4 | decvax | cbosgd | harvard | yale | cca}!ima
Please send responses to the originator of the message -- I cannot forward
mail accidentally sent back to compilers.  Meta-mail to ima!compilers-request

johnl@ima.istc.sri.com (08/03/87)

In article <632@ima.ISC.COM> this comment appeared:
>Pascal:  The universally recognized standard reference is Jensen and Wirth.

Since 1981, there has been an ANSI standard for Pascal which cleans
up the definition that one can glean from J&W.  In particular, it
repairs the perfunctory job that was done on passing procedure &
function names to other procedures & functions, and resolves several
ambiguities in J&W.

There is also an ISO standard, which is similart to the ANSI standard
but goes beyond it in one direction: "conformant arrays," which allow
the programmer to write a subprogram what will take arrays of a given
element type and varying size.  This is a valuable feature, already
present in FORTRAN and other languages.

At least one company (Concurrent Computer Corporation) supports a
Pascal compiler that conforms to the ISO standard.  

ANSI = American National Standards Institute. (USA only.)
ISO = International Standards Organization. (World-wide, but still
confined to Planet Earth.)
"universally recognized" presumably refers to the much larger part of
existence that is beyond our atmosphere.

Regards,
Chris
--
Full-Name:  Christopher J. Henrich
UUCP:       ...!hjuxa!petsd!cjh
US Mail:    MS 313; Concurrent Computer Corporation;
            106 Apple St; Tinton Falls, NJ 07724
Phone:      (201) 758-7288
Concurrent Computer Corporation is a Perkin-Elmer company.
--
Send compilers articles to ima!compilers or, in a pinch, to Levine@YALE.ARPA
Plausible paths are { ihnp4 | decvax | cbosgd | harvard | yale | cca}!ima
Please send responses to the originator of the message -- I cannot forward
mail accidentally sent back to compilers.  Meta-mail to ima!compilers-request

johnl@ima.ISC.COM (John R. Levine) (08/06/87)

In article <638@ima.ISC.COM> harvard!rutgers!petsd!cjh writes:
>In article <632@ima.ISC.COM> this comment appeared:
>>Pascal:  The universally recognized standard reference is Jensen and Wirth.
>
>Since 1981, there has been an ANSI standard for Pascal ...
>
>There is also an ISO standard, which is similart to the ANSI standard
>but goes beyond it in one direction: "conformant arrays," which allow
>the programmer to write a subprogram what will take arrays of a given
>element type and varying size.  This is a valuable feature, already
>present in FORTRAN and other languages.

Very true.. and this is a nice feature.. but may I ask a rhetorical
question ? [ well, actually, even that is a rhetorical question, 'cos
I'm going to... :-) ]

How many people, when asked a question about PASCAL's syntax, will
say "hang on while I get out my copy of the ISO standard"... and
how many will reach for their Jensen and Wirth ?

Similarly, with C, K&R is still the universal 'C bible', despite various
de-facto changes [addition of void?] and the proposed ANSI standard.
Many people suggest that Harbison & Steele should replace K&R now...
I haven't read it - I will as soon as I get around to it - but I somehow
doubt if it will ever fully replace K&R.

My point is that when a Standards Organization grabs a language by the
scruff of its neck, shakes it about a bit [usually improving it] and
then dignifies the new version with the title "standard", all the old
versions don't magically go away, and there will be considerable inertia
among [the many] users who possess older reference manuals.
--
JANET address : dcw@uk.ac.ic.doc| Snail Mail :  Duncan White,
--------------------------------|               Dept of Computing,
  The nice thing about          |               Imperial College,
  standards is that there are   |               180 Queen's Gate,
  so many to choose from...     |               South Kensington,
  -- Andrew S. Tanenbaum        |               London SW7
Tel: UK 01-589-5111 x 4982/4991
[Seems to me that the compiler writers' choice of standards is far more
important than that of the users. In the particular case of C, the emerging
ANSI standard enjoys wide support and various vendors are falling over
themselves to demonstrate how conformant they are. I'm not so sure about
Pascal, particularly since the Pascal crowd seems to pay much less attention
to interfacing with the enclosing environment. -John]
--
Send compilers articles to ima!compilers or, in a pinch, to Levine@YALE.ARPA
Plausible paths are { ihnp4 | decvax | cbosgd | harvard | yale | cca}!ima
Please send responses to the originator of the message -- I cannot forward
mail accidentally sent back to compilers.  Meta-mail to ima!compilers-request
-- 
John R. Levine, Cambridge MA, +1 617 492 3869
{ ihnp4 | decvax | cbosgd | harvard | yale }!ima!johnl, Levine@YALE.something
The Iran-Contra affair:  None of this would have happened if Ronald Reagan
were still alive.

johnl@ima.ISC.COM (John R. Levine) (08/11/87)

In article <644@ima.ISC.COM> Duncan C White <harvard!seismo!mcvax!doc.ic.ac.uk!dcw> writes:
>
>How many people, when asked a question about PASCAL's syntax, will
>say "hang on while I get out my copy of the ISO standard"... and
>how many will reach for their Jensen and Wirth ?

Well, we don't use much Pascal here, and we don't have many arguments
about C (not too many C programmers here).  But we DO do a lot of FORTRAN.
When problems in porting a program between machines come up, we DO reach for
the ANSI/ISO/FIPS standard (all the same document) to figure out who was
right and who was wrong (as far as it being FORTRAN that is; most of the
"wrong" stuff is an extension of the standard).

FORTRAN of course, may be different (:-)) from other languages; particularly
it doesn't have a K&R or J&W equivalent.
		mike

Michael Fischbein                 msf@prandtl.nas.nasa.gov
                                  ...!seismo!decuac!csmunix!icase!msf
These are my opinions and not necessarily official views of any
organization.
[I suppose it helps that the Fortran standard is quite readable, unlike,
say, the PL/I standard.  This discussion is too far afield from compilers,
so I'm sending it to comp.lang.misc.  -John]
--
Send compilers articles to ima!compilers or, in a pinch, to Levine@YALE.ARPA
Plausible paths are { ihnp4 | decvax | cbosgd | harvard | yale | cca}!ima
Please send responses to the originator of the message -- I cannot forward
mail accidentally sent back to compilers.  Meta-mail to ima!compilers-request
-- 
John R. Levine, Cambridge MA, +1 617 492 3869
{ ihnp4 | decvax | cbosgd | harvard | yale }!ima!johnl, Levine@YALE.something
The Iran-Contra affair:  None of this would have happened if Ronald Reagan
were still alive.

johnl@ima.UUCP (08/25/87)

>>>Pascal:  The universally recognized standard reference is Jensen and Wirth.
>> . . .
>>Since 1981, there has been an ANSI standard for Pascal ...

Apparently, John lost my note, so permit me to reconstruct my thoughts
on this.  While "well designed, well intentioned, simple designs" are
neat, but I have never "felt" that this was why languages became popular.

I started attending ANSI Pascal meetings in 1978.  I knew very little about
language/language design at the time, but I learned a lot from some people
I have a great deal of respect for all of them.  They were some of the
sharpest technical people I have had the pleasure of meeting. [P.S.
they are all terrible (they would not make good) bureaucrats (most, probably
great compiler writers)].  Fun group of people.

While there is some truth to simple design, I would say the vast majority
of the reason for the popularity of languages is the availability of
cheap front-ends.  The P4 Pascal front-end and the pcc, probably did more
for those languages than simple design [I preferred C even before
my ANSI experience].  The majority of Pascal compilers began with the P4
front-end.  The same went for C and the pcc.  There is alot to be said
for fast implementations.  There is a lot to be said for getting
something out to the market place quickly, even if the quality is not
high.

--eugene miya
  NASA Ames Research Center
--
Send compilers articles to ima!compilers or, in a pinch, to Levine@YALE.ARPA
Plausible paths are { ihnp4 | decvax | cbosgd | harvard | yale | cca}!ima
Please send responses to the originator of the message -- I cannot forward
mail accidentally sent back to compilers.  Meta-mail to ima!compilers-request