|language design references wanted email@example.com (1991-08-21)|
|Re: language design references wanted acha@CS.CMU.EDU (1991-08-22)|
|Re: language design references wanted firstname.lastname@example.org (1991-08-26)|
|Re: language design references wanted email@example.com (1991-08-26)|
|Re: language design references wanted firstname.lastname@example.org (1991-08-29)|
|Re: language design references wanted email@example.com (1991-08-30)|
|Re: language design references wanted firstname.lastname@example.org (1991-08-30)|
|Re: language design references wanted email@example.com (1991-09-03)|
|Re: language design references wanted firstname.lastname@example.org (Eric A. Anderson) (1991-09-04)|
|Re: language design references wanted email@example.com (1991-09-05)|
|Re: language design references wanted firstname.lastname@example.org (1991-09-06)|
|Re: Language Design Reference email@example.com (Jerry Heyman) (1991-09-13)|
|From:||firstname.lastname@example.org (Dan Salomon)|
|Summary:||Designing new languages is a necessary evil.|
|Organization:||University of Manitoba, Winnipeg, Canada|
|Date:||Tue, 3 Sep 91 20:49:04 GMT|
In article 91-08-149 email@example.com (Preston Briggs) writes:
>firstname.lastname@example.org (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:
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
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?
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
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.
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
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
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
Dan Salomon -- salomon@ccu.UManitoba.CA
Dept. of Computer Science / University of Manitoba
Winnipeg, Manitoba, Canada R3T 2N2 / (204) 275-6682
Return to the
Search the comp.compilers archives again.