[E-Lang] get, set, and dot

Marc Stiegler marcs@skyhunter.com
Sun, 25 Feb 2001 09:22:29 -0700


Vijay,

Alas, the goal of E is not to be a simple clean language so much as the goal
is to be a language that will be adopted by large numbers of programmers.
The clean simple language has already been done, it is called Joule, and
someday many hardcore E people would like to be using Joule. A language with
the elegance of Scheme or the beauty of Smalltalk would be nice but that is
secondary to the goal.

There are considerable merits to having a language with hundreds of
thousands of users. If there are only 5 E programmers in the world, you
spend all your weekends writing basic tools, never writing solutions to real
world problems. If you have an army of developers, you can get people to pay
you for developing the tools :-)

In line with the big goal (widespread adoption), the chief subgoal is to
make E look and feel like Java, as Java looked and felt like C++, and C++
looked and felt like C before that. I had an odd experience a couple of
months ago that indicates we are achieving this goal: I mentioned E to a
person who had tracked me down across the Web for some other reason, he said
he'd looked at the E stuff, but it looked so much like Java he figured there
wasn't anything interesting there.

Though we had put off this one person with the camouflage, I realized after
thinking about it that this was really an indication of success. We want to
persuade people that E is special through other means, then in the syntax
make them feel comfortable. Then we introduce the "tip of the iceberg",
namely, the "eventually" operator, and suddenly the user is immersed in a
world of distributed capability security with a deadlock-free promise
architecture. If we do it right, the new user will barely notice the change
in water temperature as he slides from the old world to the new, he'll wake
up one day writing smart contracts with trusted third parties and vouchers
and never fully realize he's doing something different :-)

My problem with the dot notation is that I am not sure it really makes the
language feel more comfortable to new users. When writing their own first
programs, it may feel comfortable. But when reading someone else's program,
it may feel disorienting--as Hal's first confusion highlights, you don't
just look at it and immediately understand what is going on. Furthermore,
when writing, I am not sure it feels more comfortable than simply using
get/setFoo, which is what they do in Java today.

If it feels only equally comfortable when writing, and less comfortable when
reading, then it is a net loss with respect to the primary goal.

So though the dot notation is a clear loser on a KISS analysis, its
cost/benefits with respect to the primary goal are more complicated...though
in this case my goal-oriented analysis leads to the same conclusion that
KISS analysis does :-)

--marcs

----- Original Message -----
From: Vijay Saraswat <vijay@saraswat.org>
To: Dean Tribble <tribble@e-dean.com>
Cc: Marc Stiegler <marcs@skyhunter.com>; E Language Discussions
<e-lang@eros.cis.upenn.edu>
Sent: Sunday, February 25, 2001 8:23 AM
Subject: Re: [E-Lang] get, set, and dot


> As a newcomer I am very concerned about so many syntactical constructs in
E. Is
> this a case of "knowing too much" -- trying to do too many things for too
many
> people with disparate backgrounds?
>
> Would very much prefer to see a sharp focus, a simple clean language that
does
> "one" thing well, and expresses it through a simple spare syntax.
>
> KISS -- Keep it simple, syntactically.
>