
Was Alan Kay wrong? And why does that matter? - raganwald
http://braythwayt.com/2013/12/22/wrong.html
======
coolsunglasses
I wrote the tweet that likely triggered this post.

My original joke on Twitter was that I was waiting for Alan Kay to tell
everybody how Smalltalk did reactive programming and FRP first.

My original point is Alan Kay has made a hobby of co-opting virtually any
paradigmatic trend or fad that has arisen since his original work on
Smalltalk, usually claiming Smalltalk did it first/better/whatever.

The point here isn't original sin or only creating objectively perfect things.
It's a different problem of people who don't seem otherwise engaged with the
work being done in the present only talking about the work they did in the
past.

Call for information: is anybody aware of Alan Kay directly contributing to
the development of any open source programming languages that aren't Smalltalk
in recent history?

I'm not aware of him releasing any new languages or publishing any new papers
in the last decade or two, yet his paradigmatic peanut gallery commentary
seems to spread pretty quickly.

I haven't seen anybody actually say what raganwald is attacking here.

~~~
raganwald
_My original point is Alan Kay has made a hobby of co-opting virtually any
paradigmatic trend or fad that has arisen since his original work on
Smalltalk, usually claiming Smalltalk did it first /better/whatever._

Lisp was co-opting everything long before Smalltalk started co-opting
everything.

But on to the main point: what am I attacking here? Nothing, in fact, I think
the post is praising the idea that discussing his quote is a useful exercise,
leading to fertile grounds.

Whether OOP is or isn't what he says it is, or whether greenspunning a feature
is somehow less useful than choosing a language with that feature built in is
an exercise I leave to the reader with little comment other than the
observation that while i no longer program in Java, I haven't gone so far as
to adopt Clojure or Squeak.

~~~
coolsunglasses
I use Clojure and Haskell, I live in the future above and beyond what
traditional Lisps have ever offered.

I just find the aggrandizement of those-that-came-before obnoxious and unfair
to people doing work _here and now_.

~~~
tokenrove
The flip side is that people have been reinventing Lisp Machines and Smalltalk
environments, poorly, for the last two decades, and many would argue we still
aren't at feature-parity with them. It's obnoxious to see people take credit
for ideas that predate them and pretend we're innovating.

~~~
coolsunglasses
I'm pretty happy with Clojure as a next-generation Lisp.

~~~
ksrm
cute.

~~~
coolsunglasses
Did you have anything useful to contribute here?

I'm fine with Clojure because I'm more interested in languages with type
systems anyway.

------
dragonwriter
There might be an interesting point hiding underneath this article, but the
badly forced analogy between evaluation of Kay's _definition_ of OOP (which is
an abstract concept with no objective external existence) and evaluation of
Newton's _description_ of physical laws really gets in the way.

The question of whether Kay is wrong is meaningless. Kay can't be wrong when
he says _what he means by OOP_. You can discuss what language features and
programming practices are useful in particular contexts, and you can argue
whether Kay's definition of OOP represents a particularly meaningful set of
features and approaches. But to discuss whether he was _wrong_ is pointless,
and to frame a discussion of OOP in those terms -- and to pretend it has any
meaningful analogy to evaluation of how Newton was right, and how he was
wrong, in his physical models is pointless. Its an analogy that serves to try
to create a false connection and sense of generality, and does more to obscure
than illuminate.

~~~
raganwald
NEVER MIND:

I tried rewriting the opening as your comment suggests, and it looks better.
Thanks.

------
LocalMan
1\. Allen Newell at CMU AI built a system called Lstar that was only for
"Greenspuning", it was a language for bootstrapping up higher languages. It's
very hard now to find even a mention of this on Google. This was decades ago.

2\. I recently have been spending time learning and using the Go language from
Google. It has almost no facilities for booting new languages. Nowadays that's
called building a DSL. The thing is, Go is very useful, efficient, and easy to
learn. Plus, it has an excellent system for concurrent and parallel
programming. They explicitly decided against building in facilities for DSLs,
as they are seen as making systems hard to understand.

Alan Kay wasn't wrong, he had a particular point of view. To me, today, Kay's
view seems old-fashioned compared to Go. Both Go and Kay's OOP are very
sophisticated. In very different ways.

~~~
raganwald
Just a personal view, but my feeling about Lisp and SmallTalk is that they
have opposing views of DSLs. Lisp culture seems to celebrate "bottom-up
programming," While SmallTalk seems to celebrate writing programs that are
unmistakably SmallTalk.

~~~
lispm
It's Smalltalk. Not SmallTalk.

I guess that Smalltalk also likes bottom-up programming, but it does not meta-
level or language-level programming often in an object-oriented way. Lisp
might do that too, but it often puts other interfaces on top. CLOS is an
example: CLOS is itself an object-oriented system (see AMOP), but on top are
functional and descriptive (macro) layers.

------
dusklight
I don't think the quote was meant to be taken literally. You are missing the
point if you are.

It should be obvious by now that OOP is a programming method that is possible
in any programming language, and it is easier in some and harder in others.
There is no language that exists where you can't force out non-OOP code, and
you can always build your own OOP framework, even in C or assembly.

A more productive use of the quote would be to compare the design of small
talk and lisp vs say java and c++, and think about why someone as brilliant as
Alan Kay should consider that it is not easy to write OOP code in java or c++.

