[E-Lang] down with `define' (was: newbie syntax: picayune points from a prejudiced programmer)

Mark S. Miller markm@caplet.com
Fri, 02 Mar 2001 13:30:51 -0800


At 09:02 AM Friday 3/2/01, Marc Stiegler wrote:
>> I really disagree here. The book is not a political document. It is a
>> tutorial. [...]
>
>[...] What the book is, in fact, is a marketing statement.

I must say I wholeheartedly endorse this.  Walnut must primarily be a 
marketing tool and secondarily a tutorial.  I'll go further.

As we've discussed ages ago on this list, but as should be refreshed from 
time to time, the E language design itself is primarily an exercise in 
marketing, and only secondarily an exercise in designing a language that, 
aside from marketing considerations, is good.  (Of course, Walnut still 
needs to be a good tutorial, and E still needs to be a good language.  There 
are many tradeoffs here.)

Shortly before my involvement with E, I skimmed Bjarne Stroustroup's "The 
Design and Evolution of C++".  I was struck to find that personally Bjarne 
didn't really like C++ either.  His fantasy language is Algol68 with Simula 
classes.  While this isn't my taste, it does show taste, and much better 
taste than you'd expect from someone who could stand C++.

I was then inspired to find that he'd designed C++ the way he had on 
purpose, to appeal to the then massive numbers of C programmers.  He had a 
keen sense of the mindset of the C programmers over time time, a keen sense 
of the psychology and sociology of adoption, and made design decisions in 
real time according to his perceptions of what this sociology was at each 
moment. If the sociology had been different, or if the timing had been 
different, the language design would have been different.

As a result of Bjarne sacrificing the issues he didn't care so much about, 
he succeeded at educating millions of people in the issues he did care 
about.  He chose his battles narrowly and well, and thereby made it possible 
for these millions to move on from C++ (often in revulsion) to languages 
that were more object oriented.

I don't know how much of C++'s success is due to Bjarne's actually being as 
skillful at reading the community as he imagines himself, but at least, 
almost uniquely among language designers, he chose to elevate this marketing 
consideration above his own tastes.

While I don't pretend to have the marketing skill Bjarne plausibly has, and 
I certainly don't have as strong a stomach, I've already participated in the 
design of my fantasy language, Joule.  E's mission is primarily marketing: 
to promote those concepts so well represented in Joule -- like capabilities, 
event loop concurrency, pipelined message delivery, and others -- in a 
package that can succeed wildly in the world, and thereby teach the world 
these virtues.  However, unlike C++, I hope to design a language that, even 
in its own right, is still good.



        Cheers,
        --MarkM