Xref: utzoo comp.unix.shell:2379 comp.lang.misc:7985 Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!asuvax!ncar!noao!arizona!gudeman From: gudeman@cs.arizona.edu (David Gudeman) Newsgroups: comp.unix.shell,comp.lang.misc Subject: PL inflation (was: ap) Message-ID: <4137@optima.cs.arizona.edu> Date: 11 Jun 91 21:34:01 GMT Sender: news@cs.arizona.edu Followup-To: comp.unix.shell Lines: 70 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