[comp.lang.c] Another D idea: RPN

dsill@NSWC-OAS.arpa (Dave Sill) (03/08/88)

In article <5318@utah-cs.UUCP> Donn Seeley <utah-cs!donn> writes:
>Actually, this whole 'D' discussion is the best example of how not to
>do language design (or indeed any other kind of design) that I've ever
>seen.

You're missing the point.  We're not so much designing a new language
as we are pointing out the problems/limititations/weaknesses/omissions
in an existing one.  I don't think keeping such things in the closet
is the best way to deal with them.

>Of course, these 'D' proponents have been working from ANSI C's example,

This is totally unjustified.

>PS -- Can we move the 'D' discussion to comp.lang.misc?  Or at least
>move the articles that aren't funny?

Actually, comp.lang.c is an appropriate location for this discussion.
It *is* really about C.  We can all benefit by this discussion.

>PPS -- Naturally, this brings up the issue of what should go into the
>language 'F'...

Sure, which brings up the question of G...  Until there is a D, with
its own shortcomings, there will be no need for a successor.  It's
foolish to say there is no need for a better language than C, since it
has shortcomings we are all too familiar with.

Why do you think cdecl is such a popular program?

=========
The opinions expressed above are mine.

"Words have users, but as well, users have words.  And it is the users that
 establish the world's realities."
					-- Amiri Baraka

donn@utah-cs.UUCP (Donn Seeley) (03/09/88)

I wanted to desist, I really did, but I forgot the seductions of
netnews...

	From: dsill@NSWC-OAS.arpa (Dave Sill)

	You're missing the point.  We're not so much designing a new
	language as we are pointing out the problems/limititations/
	weaknesses/omissions in an existing one.  ...

You're missing the point, or at best splitting hairs.  This discussion
IS about language design; I see no reason to dither about whether we
are discussing the design faults of C, or a new design for a language
that is 'just like C, but better'.  Without a method to the madness,
without some design goal or programming methodology in mind, a
discussion of language design is pointless.  I'm sorry to be so
didactic -- it's just that over the years my tolerance for bad design
has diminished considerably.

I personally feel that C has met its design goals quite admirably.
Dennis Ritchie has stated these goals more clearly than I ever will be
able to, and if you haven't read his discussion of these goals, how can
you comment intelligently about whether these goals were met?  (Hell,
how can you program in C if you don't know its design goals?)  Language
technology has changed since C was invented, and any new language
design must reflect these changes, which are far more fundamental than
anything dredged up in this 'D' discussion.  I feel quite irritated
that some people are advocating a new language that is 'just like C,
only better' -- not that we shouldn't learn from C's successes, but
that our imaginations should be so impoverished that we see only C and
nothing that has come since C.

Even in the realm of the trivial, I have seen no imagination.  If you
wish to argue that some particular syntax is not 'safe', it would
please me and surely many others if you could propose a design that
really did have 'safety' as a goal, rather than making little changes
in a design like 'C' that is not 'safe' and pretending that the result
has measurably improved 'safety'.  If you really wanted to impress me,
you would cite psychological studies (like those of Don Norman) that
show how real people make mistakes and then show how your design acts
to limit these mistakes, preferably with a follow-up showing statistics
about reduced numbers of programming errors when a sample of
programmers implements a given task in your language instead of in C.
I picked 'safety' as an example here -- if 'safety' isn't your bugaboo,
substitute a better one.

	>Of course, these 'D' proponents have been working from ANSI
	>C's example,

	This is totally unjustified.  ...

Am I slandering the 'D' proponents here, or the ANSI C committee? :-)

My considered opinion is that the ANSI C committee should have
standardized C, keeping the original design goals in mind whenever it
was necessary to bridge some ambiguity or resolve some conflict between
existing implementations.  Instead the committee acted much as some
participants in this 'D' discussion have acted, each member having some
private agenda in mind that would produce a document that enshrined
some favorite new feature of theirs, abandoning any esthetic or
functional unity of C as a language.  I've already expressed my opinion
that this is also a disaster for users, since it guarantees porting
trouble for applications that incorporate these new features.  

	>PPS -- Naturally, this brings up the issue of what should go
	>into the language 'F'...

	Sure, which brings up the question of G...  ...

Another person who missed the joke...  Now I know how Mr. Limoncelli
felt.

At greater length than originally intended,

Donn Seeley    University of Utah CS Dept    donn@cs.utah.edu
40 46' 6"N 111 50' 34"W    (801) 581-5668    utah-cs!donn

dsill@NSWC-OAS.arpa (Dave Sill) (03/10/88)

In article <5333@utah-cs.UUCP> Donn Seeley <utah-cs!donn> writes:
>You're missing the point, or at best splitting hairs.  This discussion
>IS about language design; I see no reason to dither about whether we
>are discussing the design faults of C, or a new design for a language
>that is 'just like C, but better'.  Without a method to the madness,
>without some design goal or programming methodology in mind, a
>discussion of language design is pointless.

Hey, lighten up.  So maybe we're just a bunch of amateurs.  What's the
harm in a little "pointless" discussion?  Or maybe we're just a bunch
of Utopians.  *Somebody* has to dream of a better way.  Then again, we
could just be a little dissatisfied and looking for a better way.

>I personally feel that C has met its design goals quite admirably.

Agreed.  But I question the appropriateness of those goals compared to
how C is used today and will be used in the future.

>Dennis Ritchie has stated these goals more clearly than I ever will be
>able to, and if you haven't read his discussion of these goals, how can
>you comment intelligently about whether these goals were met?

As I said above, it's not how well C met its goals, but how the C
Philosophy can be merged with today's goals.

>(Hell, how can you program in C if you don't know its design goals?)

How can you tell time if you don't know the design goals of the
watchmaker?  Well, first you look at the little hand...  But
seriously, folks, C is being used for things it was not designed to do
well.  Do we tell people who want to use C for general or scientific
programming that they can't borrow the Look And Feel of C for a
language more suited to their needs?

>Language
>technology has changed since C was invented, and any new language
>design must reflect these changes, which are far more fundamental than
>anything dredged up in this 'D' discussion.

Look, I know a little about language technology.  I know the
phenomenal benefits of object-oriented methodologies, functional
programming languages, [insert your favorite language buzz-phrase],
but of all the languages and approaches I've studied, I like C the
best.  But it has its problems.

>I feel quite irritated
>that some people are advocating a new language that is 'just like C,
>only better' -- not that we shouldn't learn from C's successes, but
>that our imaginations should be so impoverished that we see only C and
>nothing that has come since C.

Like I said above, I've seen the alternatives, and find none as
appealing as a better C.

>If you really wanted to impress me,
>you would cite psychological studies (like those of Don Norman) that
>show how real people make mistakes and then show how your design acts
>to limit these mistakes...

First, I'm not out to impress you, or anybody else.  I merely wanted
to see what people would like in a language if they could have
anything they wanted.  Judging from the volume of discussion on this
topic, I'm not alone in thinking that major improvements are possible.

Secondly, I don't need to cite psychological studies to know what
kinds of things give people trouble in C.  I use the language myself
and run into these problems all the time.  I also read this list, of
which 90% [just an approximation, Donn] is related to problems people
have while using C.  [The other 10% is X3J11 flamage :-]

>	>Of course, these 'D' proponents have been working from ANSI
>	>C's example,
>	This is totally unjustified.  ...
>Am I slandering the 'D' proponents here, or the ANSI C committee? :-)

That depends on your point of view.  

>	>PPS -- Naturally, this brings up the issue of what should go
>	>into the language 'F'...
>	Sure, which brings up the question of G...  ...
>Another person who missed the joke...  Now I know how Mr. Limoncelli
>felt.

I'm sorry, I thought there was a well established convention that
identifies sarcasm with a smiley.  Even though I figured you weren't
serious, I wasn't sure.  I also figured that if I wasn't sure, there
might be others who would take you seriously, so I replied.  Now if
you had just observed the convention...

=========
The opinions expressed above are mine.

"To a teacher of languages there comes a time when the world is but a place
 of many words and man appears a mere talking animal not much more wonderful
 than a parrot."
					-- Joseph Conrad