Re: language design references wanted

salomon@ccu.umanitoba.ca (Dan Salomon)
Tue, 3 Sep 91 20:49:04 GMT

          From comp.compilers

Related articles
language design references wanted grosen@mhd1.moorhead.msus.edu (1991-08-21)
Re: language design references wanted acha@CS.CMU.EDU (1991-08-22)
Re: language design references wanted tjj@thumper.bellcore.com (1991-08-26)
Re: language design references wanted grosen@mhd1.moorhead.msus.edu (1991-08-26)
Re: language design references wanted murphy@mips.com (1991-08-29)
Re: language design references wanted preston@helena.rice.edu (1991-08-30)
Re: language design references wanted wendl@munich.enet.dec.com (1991-08-30)
Re: language design references wanted salomon@ccu.umanitoba.ca (1991-09-03)
Re: language design references wanted ea08+@andrew.cmu.edu (Eric A. Anderson) (1991-09-04)
Re: language design references wanted henry@zoo.toronto.edu (1991-09-05)
Re: language design references wanted salomon@ccu.umanitoba.ca (1991-09-06)
Re: Language Design Reference jerry@ajones.austin.ibm.com (Jerry Heyman) (1991-09-13)
| List of all articles for this month |

Newsgroups: comp.compilers
From: salomon@ccu.umanitoba.ca (Dan Salomon)
Summary: Designing new languages is a necessary evil.
Keywords: design
Organization: University of Manitoba, Winnipeg, Canada
References: 91-08-147 91-08-149
Date: Tue, 3 Sep 91 20:49:04 GMT

In article 91-08-149 preston@helena.rice.edu (Preston Briggs) writes:
>murphy@mips.com (Mike Murphy) writes:
>
>I usually think of language design as "The Pit of Despair".


This argument is getting rather emotional.
Let me try to enumerate the pros and cons of designing new languages.


I) Language design for professionals by professionals:


      A) PRO


            1) We do not yet have the ultimate language for any of the
language design models: imperative, functional, or declarative.
Anyone who says we do should post his nomination for the
perfect programming language, and get ready for a barrage of
critical rebuffs.


            2) Language standardization committees only standardize well tried
features. So, for example, the FORTRAN 90 committee needed input
from people who had extended FORTRAN in useful and reliable ways.
Other committees for C, Modula-2, Pascal, Etc. need the same
kind of input. This is an argument for implementors adding
features to the language they are implementing.


            3) Programming techniques keep changing and languages must keep up.
The latest example of this is the trend toward object-oriented
programming. What new methods or styles lie ahead?


        B) CON


              1) There are already too many languages. A recent "language list"
posted on comp.lang.misc lists 950 languages! (It has probably
grown since I unsubscribed.) Do you really want to add more
bricks to the Tower of Babel?


              2) Most new languages or new features are not really new, or are
not significantly different. If the designer had looked
a little harder, he could have found what he wanted, or
something better.


              3) Most "new" languages or new language features are designed
with a highly egocentric point of view. The designer knows
what he prefers, and discounts other opinions. For example,
the design of Ada, which was supposed to be the ultimate
imperative language shows a definite military stamp.


II) Experimental languages designed by academics or students.


        A) PRO


              1) It is a very educational process. The real difficulty of
designing a beautiful, consistent, and powerful language
is not fully appreciated until one tries.


              2) Most really novel programming language ideas come out of
and academic setting. Most go down the drain, but some
stay and permanently affect the programming language
landscape.


        B) CON


              1) Proving the value of a new language or language feature is
very difficult in an academic setting. It is tough to
show that the set of problems that the language solves
better is an important one, or that the set exists at all.
It is impossible to win arguments of the form, "Well,
this way of expressing the solution seems clearer
to me," or "seems more natural to me."


              2) Language design is very shaky ground on which to build an
academic career. Niklaus Wirth is one of the most influential
language designers, but he has had serious academic career
trouble.


              3) Similarly, trying to make a thesis out of a language design
or feature design is risky business. You may be able to
get away with it for a master's thesis, but it will be
very tough to do it for a doctoral thesis.


My opinion is that designing new languages is a necessary evil.
Do it, but don't expect users to carry you off on their shoulders
cheering.


--


Dan Salomon -- salomon@ccu.UManitoba.CA
                              Dept. of Computer Science / University of Manitoba
Winnipeg, Manitoba, Canada R3T 2N2 / (204) 275-6682
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.