[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