Beta language and OO politics (was Re: who's who on swiki)
Alan.Kay at disney.com
Sat Mar 4 17:57:24 UTC 2000
Interesting comments -- and thanks for the JPEG of your new font stuff (I
can't wait: when, when, when?).
I'm not sure exactly which "Scandinavian individuals" you are talking
about. One of my great pleasures was to show Smalltalk to Kristin Nygaard
at PARC when he and Dahl were over for the History of Programming Languages
1 conference in 77 or 78.. It was one of those great demos where the person
you are demoing to asks just the right questions about "can it then do
this?" and you are able to show just that. Kristin knew everything that
Smalltalk should be able to do, was very happy that it could do it, and
became a good friend to this day. Interestingly, I gave a similar demo
around the same time on two different occasions to Tony Hoare (who didn't
get it), and, even more surprisingly, to Dahl (who really didn't get it).
That demo was one of the most frustrating I have ever given, and it really
made clear to me the difference in outlook of Nygaard and Dahl. In fact,
one of the jokes Nygaard likes to tell is in the Norwegian Computing Center
in the mid-sixties when a visitor rushed up to a guard and said "There are
two men fighting in an office down the hall!", and the guard said, "Oh,
that's just Nygaard and Dahl designing Simula".
On Sketchpad and Simula. Sketchpad was implemented in 1962 and used
structures that held both variables for local values and slots for shared
procedures (like "display"). And it had dynamic links to master templates,
and these were organized in an inheritance hierarchy. This is very clear
from Ivan's thesis which was published in 1963.
However, it was not procedurally programmable by the end user (it
actually used a much more advanced idea that was pragmatically limited:
that of dynamically solved constraints as a way to make things happen).
(I've always believed that we will one day have to make this scheme work if
we are to control the next levels of complexity.)
Ivan referenced one of Doug Ross's papers from around 1961 as one of
the sources for the idea of embedding procedure pointers in data. If I am
not mistaken, the first Simula paper also referenced Ross's paper. And Ross
didn't know that this idea had already been invented more than once and
e.g. used for several years in the B22) file system in the Air Force.
Another and more interesting reference which Ivan didn't know about
was that the Buroughs B5000 had this very feature (and even more advanced
features such as byte encoded instructions, addressless code, etc.)
embedded in its hardware. The fantastic paper by Bob Barton about many of
these features was published in 1961 in the WJCC.
Also, the first Simula paper referenced and used the coroutine ideas
of Mel Conway as a deep source of what Simula I was all about -- this is
another important way to think about "procedures" that have state and can
be resumed. Conway invented coroutines initially to create objects that
today we would call streams in order to make a pipeline structure for the
different phases of a compiler.
When I made up the term "object-oriented" in the late 60s I was
thinking of the next stage of design for the ideas from the B5000,
Sketchpad and Simula, specifically, I was thinking of pure message passing,
everything in objects (including classes), and dynamic linking a la Lisp.
But over the years OO has been weakened and used to describe languages like
C++ and Java -- and Simula, wheras I think of Simula as one of the two
great language designs of the sixties (the other was Lisp) and it was the
all important bridge between the world of ALGOL and the new world of
If we want to call these OO, my feeling is: fine, but then we have to
include the B5000, Sketchpad, and the B220 filing system I saw in the Air
Force in 1962 as important working examples of at least the idea of data
abstraction and instantiation from master templates, and Sketchpad also had
When I give talks about this I always first mention Goethe's nice
quote: "We should all share in the excitement of discovery without vain
attempts to claim priority". I think it is usually pretty easy to allocate
due credit to the generation before, because there are usually papers. So
it was easy in the history of Smalltalk to give credit to B220 file system,
B5000, Sketchpad, and Simula. But, I found in writing the "Early History
of Smalltalk" chapter for HOPL II that it is difficult to give proper
coverage of credit to contemporaries in one's culture, because so many
ideas get sparked by conversations in hallways and over beer, and there are
usually so many of these, hence Goethe's quote.
At 3:40 AM -0800 3/4/00, Henrik Gedenryd wrote:
>Dan Ingalls wrote:
>> Yes, I knew this, and it's good to clarify it. I think of BETA interest as
>> being fairly general in Scandinavia, so I thought I could get away with
>> of". In that sense it was fuzzy logic at work rather than unusual
>> - D
>I have to admit, Dan, that I was trying to make a subtle joke about the
>world-wide reputation of American geography knowledge, while trying to avoid
>it being taken in the wrong way. Mea culpa. I'll try to make up for that
>with some serious stuff:
>I don't know if this is the right context to bring up Beta, but I would
>enjoy hearing the opinions of the smart people on this list; and I'm not
>saying this as an authority, but definitely as a Scandinavian...
>I, and people I know around here, have a general view of Beta (hey, even
>their capitalization is anachronistic) as being an intellectual exercise
>mostly, with little impact. And outside the inner circle it has very little
>mindshare. I's say the great majority of CS-related graduates hardly ever
>heard of Beta, in Sweden at least.
>I think its version of patterns holds a lot of potential that isn't at all
>realized, because of conservative hangups re. programming methodology.
>Otherwise it's very much Simula 2.0.
>And when they say "the Scandinavian school of OO" I think they're just being
>annoyed that no idea in this business is good until it's appropriated by
>Americans. But that is something you must learn to live with when you're
>from around here. (Making jokes about Denmark being named the capital of
>Stockholm is one way in which we deal with it.)
>At least one of the personalities involved would have liked greater credit
>for inventing OO. (Nowadays someone might think it was James Gosling ;) Boy
>was this guy upset about people saying that Sketchpad was OO before Simula!
>He has also claimed that "the Macintosh is my baby".
>There's a quite different, rather sad Swedish guy who says he invented the
>This Scandinavian school claims to reject the dynamic side of eg. Smalltalk
>an Lisp, in favor of a more academic "rigorous, strongly typed, strongly
>method-oriented, this-is-deadly-serious-business" etc. approach. To me, this
>is a clear-cut case of "sour grapes"; but a lecturer of mine would not even
>recognize that Simula was not the final word on programming languages--and
>this was in 1990. Don't laugh, it's sad; although he did write one of the
>allegedly two Simula compilers in existence. (A long time ago, Alan rolled
>out the source for the other one on the floor.)
>All in all, I think the whole thing is more an issue of watching your
>territory, a k a the Not Invented Here syndrome, than a rationally
>defensible position. "Hey, it was actually *we* who invented this thing,
>hmm, was that ever off topic...
>PS. A pre-announcement: you may want to check out
>But beware that if you are in eg. the US or Japan, if you download some of
>the other files in that directory, you may be committing patent violations
>A proper announcement is due any day now.
More information about the Squeak-dev