Re: Sigh. In Defense Of Inheritance
Mark S. Miller (markm@erights.org)
Mon, 26 Oct 1998 10:47:26 -0800
I barely have time at the moment to skim this thread, let alone respond.
(I expect this situation to change shortly!) But I had to respond to this.
At 05:22 AM 10/25/98 , Tyler Close wrote:
>If E has inheritance, I'm going to be pretty tempted to create a language
>without it. I imagine others will be too. Sounds like a recipe for infant
>death syndrome to me.
- Please do, with my sincere blessing.
- Feel free to use the E source tree, or not, as you see fit.
- C++ was not killed by cleaner languages when it was young, including
nearby variants. Instead, C++ kept right on mowing them down.
10 years
later, C++ was gloriously killed by Java (I know, it hasn't fallen over
yet). But only ten years of (admittedly bad) education of C programmers by
C++ made the world safe for Java. Had Java been introduced 9 years
earlier, C++ would have killed it because Java would have looked fatally
foreign to C programmers.
- If you want to see what kind of language I like to design when I'm not
compromising, look at Joule. Just as you feel about inheritance and many
of us feel about threads, I feel about sequentiality. I don't believe in
sequential flow of control. But after talking to VERY SMART people at EC
about their failed experiences trying to program in Joule, I'm convinced
that Actors never caught on largely because they didn't support sequential
programming. If you believe yourself to be as flexible as your
hypothesized audience, ask yourself why E grabbed your attention but Joule
didn't. Then remember that you are orders of magnitude more flexible than
your actual audience.
- PL/1 deserves a place in history for making Pascal and C possible. C++
deserves credit for changing the world into one where Java could kill it.
I would be honored for E to be the bridge that makes the world safe for
cleaner languages, such as Joule. At such a time, the sooner E dies the
better.
- Choose your battles: Judging from the topics to date, it would seem like
the point of E is to create a better object-oriented programming language.
Not so! I'm trying to teach the world about distributed capability
programming in service of smart contracts, and trying to bootstrap up a
secure decentralized electronic market.
To have my users succeed at
distributed programming, I fear I need to teach an unfamiliar way to do
concurrency control. However, I don't see why I *need* to educate my
audience how to do without inheritance before E can succeed at E's goals.
(This isn't a decision yet, but I am leaning back. More later.) If others
want to create a language derived from E for the purpose of teaching other
lessons, I truly and sincerely think that's great!
To prosper in the long run, you must first survive the short run,
--MarkM