[comp.unix.shell] PL inflation

gudeman@cs.arizona.edu (David Gudeman) (06/12/91)

In article  <1991Jun11.173907.28331@metro.ucc.su.OZ.AU> Tim Long writes:
]...  But first I'll just mention my own motivations:
]
]1) To have a freely available general purpose interpretive language on
]UNIX systems.  (As opposed to the many more special purpose ones such
]as awk and the shell).  This can be re-phrased as: To have a UNIX
]language like DOS has BASIC.
]
]2) To have a freely available language suitable for embedding in other
]programs and systems.
]
]3) To allow programming on UNIX systems which do not have development
]systems (which are becoming very common).

There are already several languages that meet those criteria.  I
suggest that a literature search would be considerably less
time-consuming than designing and implementing a language.  Of course
it is possible that you have other, unstated goals that no present
language meets; but you can't know that without first reviewing the
languages available.

And even if no other language is exactly what you want, in general you
would be better off using a language that is "close enough" or taking
a well-known language and modifying it.  The advantage of this is that
you start with an implementation which has presumably had a lot more
work put into it than you are capable of doing.  Also, you begin with
a ready-made community of users who are familiar with the language.

I suggest at least referring to Scheme (in several guises), Icon, GNU
Emacs, Xlisp, Prolog, and Little Smalltalk.  All of these are freely
available or have freely available implementations.  They are all very
powerful high-level languages.  Most of them are available on a wide
variety of platforms.  Most of them have very good implementations.
Most of them have large existing user communities.

This inflation of languages is getting ridiculous.  (I don't mean to
pick on you specifically, Tim, you are certainly not the only
offender).  People have to realize that everyone has slightly
different tastes.  If you do (by some miracle) manage to design and
implement a language that is perfect for your needs then it is
guaranteed to _not_ be perfect for anyone else.  Compromise is
necessary in any cooperative endeavor.  The world will not be a better
place when everyone has their very own programming language that is
not readable by anyone else.

Although I don't want to sound _too_ critical, I think the designers
of Python and Perl have done a disservice to us by developing new
languages with nothing particular to recomend them over other
languages that are already widely available and well known.  The only
effect these languages will have is to further fracture the progamming
community.

Yes, many programmers brought on C and shell scripts will prefer Perl
to Scheme, but these preferences are largely volatile (or so I
believe) and only the most reactionary programmers would be unable to
get comfortable with Scheme after a few weeks of using it.  The
disservice of Python and Perl is that another community of programmers
will "grow" into these languages, developing tastes that are not only
opposed to Scheme and the other languages I mentioned above, but also
to shell scripts, C, and the other one of the pair.

I strongly believe that the proper way to do language design is to
modify existing languages, being sensitive to the reactions of the
larger community and not relying too heavily on personal taste.  At
very few points in language developement is it wise to throw out all
existing frameworks and produce a completely new language.
--
					David Gudeman
gudeman@cs.arizona.edu
noao!arizona!gudeman

bengtl@maths.lth.se (Bengt Larsson) (06/13/91)

In article <4137@optima.cs.arizona.edu> gudeman@cs.arizona.edu (David Gudeman) writes:
>Although I don't want to sound _too_ critical, I think the designers
>of Python and Perl have done a disservice to us by developing new
>languages with nothing particular to recomend them over other
>languages that are already widely available and well known.  The only
>effect these languages will have is to further fracture the progamming
>community.

I indeed think this is too critical. What harm does it make? Especially for
a scripting language (which is interpreted)? 

>I strongly believe that the proper way to do language design is to
>modify existing languages, being sensitive to the reactions of the
>larger community and not relying too heavily on personal taste.  At
>very few points in language developement is it wise to throw out all
>existing frameworks and produce a completely new language.

Then for example Pascal would never have been made. Or C, for that matter.
Or maybe even Scheme?

Bengt Larsson.
-- 
Bengt Larsson - Dep. of Math. Statistics, Lund University, Sweden
Internet: bengtl@maths.lth.se             SUNET:    TYCHE::BENGT_L

jfr@locus.com (Jon Rosen) (06/13/91)

In article <4137@optima.cs.arizona.edu> gudeman@cs.arizona.edu (David Gudeman) writes:
><stuff deleted>
>And even if no other language is exactly what you want, in general you
>would be better off using a language that is "close enough" or taking
>a well-known language and modifying it.  The advantage of this is that
>you start with an implementation which has presumably had a lot more
>work put into it than you are capable of doing.  Also, you begin with
>a ready-made community of users who are familiar with the language.
>
>I suggest at least referring to Scheme (in several guises), Icon, GNU
>Emacs, Xlisp, Prolog, and Little Smalltalk.  All of these are freely
>available or have freely available implementations.  They are all very
>powerful high-level languages.  Most of them are available on a wide
>variety of platforms.  Most of them have very good implementations.
>Most of them have large existing user communities.
>
>This inflation of languages is getting ridiculous. 
 
 Says who (besides you Dave)?  And why?  Languages are the tools of
 programmers...  Take a comparable example, the craft and engineering
 of small parts manufacturing...  Each part is a design work unto
 itself... Sometimes the part can be manufactured by using one or
 more existing die-casts in which case the manufacturing process
 is relatively quick... Most times, you need to build a new die,
 and sometimes you need to build a new tool to make the new die... 
 There are now fancy digitally-controlled tools to make special
 die, but sometimes, you even need to build a new one of these...
 
 Sometimes, the existing languages just don't cut it... Sometimes,
 even if you could force an existing language to solve a problem,
 it would be easier to use a better language... And if you expect
 to have to solve similar problems in the future, such a language
 can be made specifically to suit your needs... Sure there are
 extensible languages that can be used, but this is only one
 option... If someone feels confident enough to tackle the task
 of building a language, why should some religious babble about
 "inflation of languages getting ridiculous" be given the time of
 day? IMHO, of course...  If no one else wants to use it, what's 
 the harm that has been caused here?  And if someone else (or many
 others) WANT to use the new language, so much the better!  

> (I don't mean to
>pick on you specifically, Tim, you are certainly not the only
>offender).  People have to realize that everyone has slightly
>different tastes.  If you do (by some miracle) manage to design and
>implement a language that is perfect for your needs then it is
>guaranteed to _not_ be perfect for anyone else.
 
 Again, who says????  And jeez, you call Tim an "offender"!  
 I mean, he hasn't raped anybody!!!!  He just wrote his own
 language for chris' sake!

>  Compromise is
>necessary in any cooperative endeavor.  The world will not be a better
>place when everyone has their very own programming language that is
>not readable by anyone else.
 
 You should tell this to the hardware people... This argument would
 then read that the world will not be a better place when everyone
 has their own hardware instruction set that is not readable by 
 anyone else (this argument, IMHO, is better than the one about
 languages, BTW)... And yet, this would put an absolute cabosh on
 any technological improvements in hardware....

>Yes, many programmers brought on C and shell scripts will prefer Perl
>to Scheme, but these preferences are largely volatile (or so I
>believe) and only the most reactionary programmers would be unable to
>get comfortable with Scheme after a few weeks of using it.  The
>disservice of Python and Perl is that another community of programmers
>will "grow" into these languages, developing tastes that are not only
>opposed to Scheme and the other languages I mentioned above, but also
>to shell scripts, C, and the other one of the pair.

 I prefer REXX myself, thank you very much (and thank you Mike
 Cowlishaw as well)...  Am I a heretic because I think Scheme
 sucks (actually, I really don't know this, I am just using
 it as a strawman)... 
>
>I strongly believe that the proper way to do language design is to
>modify existing languages, being sensitive to the reactions of the
>larger community and not relying too heavily on personal taste.  At
>very few points in language developement is it wise to throw out all
>existing frameworks and produce a completely new language.
 
 Why the hell not?  Some of the best languages have been done this way.
 Smalltalk required creating a completely new kind of language as
 did LISP and SNOBOL ...  Other languages have been extrusions of
 existing languages or mergings of the best of several such as Ada,
 and C++...  Who knows who will develop the next great language?
 And who wants to stop them?

 By the way, if this was the case, we would all still be programming
 in some dialect of a) FORTRAN, b) COBOL, or c) Autocoder.... Hardly
 high technology, if I say so myself... Perhaps you would like to
 consider what the world would be if the inventors of some of the
 languages you now mention as "sacrosanct" like Scheme and Icon (a
 language which I personally like, and which would not have been
 invented if Ralph and Madge Griswold had decided to modify SNOBOL
 instead of junking it and starting more or less over again) or,
 yes, even C, if these inventors had to conform to your so-called
 rules against language inflation...

 No, Dave, this is a bad case to try to make.  If Tim wants to
 try and build a new language (and it looks like he certainly has
 done SOME things right, like making strings atomic objects unlike
 the screwy way C does it!) more power to him.  If he really actually
 implemented ICI in a month (as he says), sounds to me like he is
 someone I would like to consider hiring, not criticize for his
 attempt at innovation.  I have implemented several sub-languages
 and I know how hard it is.  Maybe your attack stems from just a
 little bit of jealousy... Not that I know, of course, just a thought :-)
 
Jon Rosen