
A Conversation with Alan Kay (2004) - tosh
http://queue.acm.org/detail.cfm?id=1039523
======
gnipgnip
> All of these ideas could be part of both software engineering and computer
> science, but I fear—as far as I can tell—that most undergraduate degrees in
> computer science these days are basically Java vocational training.

Pages and pages of verbosity, moronically recursively structured code trees,
ridiculously bloated IDEs... how did all of this become a thing ? Worse, if
you aren't part of the cult, you're essentially out.

~~~
Kenji
The opposite is if you visit a really technical university that teaches you
theoretical computer science, compiler design, information theory, etc. and
the job interviewer asks you about Java 8 implementation details and you have
no clue because last time you worked with Java was 2 years ago when you
implemented a compiler for a large subset of Java. And they think you're
clueless and learned nothing. Can't make it right for everyone, I guess : )

------
filoeleven
All in all, this is one of the less interesting interviews I've read with Alan
Kay, even though he uses a lot more words than he did in his HN AMA. This is
likely due to the subjects they were discussing and my lack of familiarity
with them. However, he touches briefly on the Lucid programming language,
which I had never heard of and am intrigued by.

From Wikipedia[0]: "Each variable is an infinite stream of values and every
function is a filter or a transformer. Iteration is simulated by 'current'
values and 'fby' (read as 'followed by') operator allowing composition of
streams."

I've recently been reading up on ReactiveX (RxJS specifically) so I like the
idea that each variable is a stream, and it's always fun to see just how old
some of these ideas are--Lucid came out in 1976. Lucid is also completely
declarative--the code order does not matter, and there are no assignments,
only descriptions of how data flows through the program.

I have no idea how useful the language actually is, or if an interpreter for
it still exists. But the paper I'm reading about it[1] is also up on Bret
Victor's site, so that's gotta count for something.

[0][https://en.wikipedia.org/wiki/Lucid_(programming_language)](https://en.wikipedia.org/wiki/Lucid_\(programming_language\))
[1][http://www.cse.unsw.edu.au/~plaice/archive/WWW/1985/B-AP85-L...](http://www.cse.unsw.edu.au/~plaice/archive/WWW/1985/B-AP85-LucidDataflow.pdf)

------
refset
> This idea, by the way, was used in [Squeak contributor] Dave Reed’s
> fantastic thesis for coordinating object siblings where you have one logical
> object but many physical manifestations of the same object on different
> machines

The 1978 thesis was submitted here a few months ago
[https://news.ycombinator.com/item?id=11960595](https://news.ycombinator.com/item?id=11960595)

I can only reiterate what the submitter already noted - that much of Reed's
conclusions bear a striking resemblance to Rich Hickey's work with Clojure and
Datomic. Unfortunately a plain-text copy of the thesis doesn't appear to
exist.

------
kleigenfreude
Please put the year, e.g. (2004), at the end of the title when the year is
available and the post/article/content was not dated within the last several
months. Old content is still relevant, but I was looking forward to something
current when I clicked on this, especially after HN just got to talk with him
in:
[https://news.ycombinator.com/item?id=11939851](https://news.ycombinator.com/item?id=11939851)

Also, if anyone wants to try to pair sunspot cycles with programming languages
as Alan mentioned in jest, here's some data:

[http://solarscience.msfc.nasa.gov/SunspotCycle.shtml](http://solarscience.msfc.nasa.gov/SunspotCycle.shtml)

[https://en.wikipedia.org/wiki/List_of_programming_languages](https://en.wikipedia.org/wiki/List_of_programming_languages)

(Although, Wikipedia's list looks far from complete.)

