PL inflation (was: ap)

David Gudeman gudeman at cs.arizona.edu
Wed Jun 12 07:34:01 AEST 1991


In article  <1991Jun11.173907.28331 at 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 at cs.arizona.edu
noao!arizona!gudeman



More information about the Comp.unix.shell mailing list