
Joe Armstrong Interviews Alan Kay [video] - tosh
https://www.youtube.com/watch?v=fhOHn9TClXY
======
dkarapetyan
Great stuff as usual: inverse vandalism, confusing means to an end with an
end, system programmers are high priests of a low cult, if you're not failing
90% of the time then you're not trying hard enough, science is a set of
heuristics to get around buggy brains, etc.

~~~
sgt
Agreed. Just finished watching this. It's definitely worth spending an hour of
your morning on listening to what these two giants (mostly Kay) have to say.

~~~
pjmlp
I love his work, and the ones that worked with him.

After learning Smalltalk, Oberon and Modula-3, I started a journey into the
world of Xerox PARC and their influences into ETHZ and DEC research labs and
became amazed how computing could have looked like already by the mid-90's.

To the point using UNIX stopped being fun, I wanted one of those environments,
not a PDP-11 replica.

~~~
elviejo
Have You used Pharo Smalltalk?

~~~
pjmlp
Not really, just installed it a few times to play around with it.

I actually used Smalltalk before Java was announced to the world.

We were using Smalltalk/V and VisualWorks for some university classes.

Luckily our university library had all the Smalltalk canonical books available
and I spent quite a few long nights reading them.

------
Kexoth
"Hello Joe" \- Awesome interview opening joke [0] :)

[0] - [https://youtu.be/xrIjfIjssLE](https://youtu.be/xrIjfIjssLE)

~~~
ust
I've just seen the movie after your comments, it was interesting to see that
they use emacs (without syntax highlighting, it appears..). OT, but how's vim
for coding in erlang, anyone?

~~~
josteink
> it was interesting to see that they use emacs

How so? It's a solid piece of software which has been around since forever
(since before Ctrl-C and Ctrl-V conventions ever existed). We're all
programmers, and Emacs is all about being a programmer's editor.

If you want to see an Emacs-user out-hipster every single web-developer who
thought he was cool when he used HTML for his presentations instead of
Powerpoint/Keynote... Then watch this:
[https://www.youtube.com/watch?v=TMoPuv-
xXMM](https://www.youtube.com/watch?v=TMoPuv-xXMM)

It's incredibly contrived, and incredibly nerdy, yet this, to me, encapsulates
so much about what Emacs is. And I love it :)

~~~
copperx
Wasting time in such contrived approaches that ultimately gain you nothing is
part of what Alan Kay talks about.

Programmers have the devious hobby of tackling complexity of their own doing.
It isn't praiseworthy, or something to be proud about.

------
georgewsinger
Can someone explain to me Alan Kay's problem with monads in functional
programming? He attacks the monad concept several times in this talk rather
cryptically.

~~~
di4na
Monads are the way to hide the fact that state change. Basically they allow
you to abstract away the concept of time.

Alan Kay seems to push more in the direction of data as CRDTs or fully vector
clocked, so that time is just an additional way to referenced some data.

It is close to the idea of separating time from space or to combine them in
two.

In CS, we tend to consider a static vision of the world, and a function
applied to it. When the truth is that the world exist at different time and is
wildly different at each of this time. So a piece of data would be defined by
its place in memory and the clock time (vector clock) it was in that memory.
Closer to what CRDTs does in a way.

~~~
swah
What did he mean when mentioning McCarthy having solved that "change of state"
problem?

~~~
jstimpfle
Don't know his or your context, but McCarthy is the creator of Lisp, so in a
way he's one of the pioneers of functional programming (there were of course
other mathematicians inventing the foundations). Which is a way to combine
programs from small building blocks that are just functions knowing no global
state - they always return the same answer given the same arguments.

Contrast this to procedural or object oriented programming where usually the
parts know a lot more about the context (state) than they really need to know.
This can lead to implicit (and hard to discover) assumptions about the state
of the world that are broken later on when some parts are changed, leading to
bugs.

The way this works is by combining functions with (higher order) functions.
For example, chain a function that gets A and returns B with a function that
gets B and returns C. This is done without ever speaking of concrete inputs -
reducing unnecessary knowledge should lead to fewer bugs. (Whether that's a
more practical approach is another question).

~~~
kazinator
Lisp is built on OOP: all sorts of objects that have state and functions
operating on it. For instance, an I/O stream, needed to do the "read" and
"print" parts of REPL, is a stateful object.

Lisp is not only where functional programming originated, but also object-
based programming leading to OOP. Lisp was the first language which had first-
class objects: encapsulated identities operated upon by functions, and having
a type.

For instance, an object of CONS type could only be accessed by the "getter"
functions CAR and CDR which take a reference to the object, and by the
"setters" RPLACA an RPLACD.

Meanwhile, the other higher level programming language in existence, Fortran,
had just procedures acting on global variables.

~~~
dang
I was interested to notice that Steele and Sussman describe Lisp as "an
object-oriented language" on page 2 of this 1979 paper:
[https://dspace.mit.edu/bitstream/handle/1721.1/5731/AIM-514....](https://dspace.mit.edu/bitstream/handle/1721.1/5731/AIM-514.pdf).

There are other places in the Lambda papers and whatnot where they talk about
objects, but I don't recall seeing that exact phrase. Of course, just what
they meant by it is another question.

------
qwertyuiop924
I sense a great disturbance in the network... as if a thousand programmers
squeed out in joy and then fell silent.

~~~
mr_luc
MIT's PDF of the Minsky book was given the HN hug of death for a while.

~~~
khrm
I can't find that book anywhere in India. Is it available on public domain?

------
sea-shore
What happens at 38:25? Joe: "This algebra you've made it's a Prolog program
you just move a few brackets". And I went "oh my god". From that moment on I
was not interested in Smalltalk anymore. Alan: Yeah, nether was I! But...

------
vanderZwan
It's so fun and humanising to see Joe Armstrong geek out in the interview

~~~
imglorp
I had the privilege to hang out with him at Abstractions this fall, where he
gave the keynote. He was just holding court in the commons, shooting the
breeze about halfwit management, project estimation, Jira tickets, and
everything that hasn't changed since Brooks.

Then he asked which session we were going to next, so we all hit one about
concurrency issues. It was jammed and came in late to stand in the back. The
presenter bemoaned locking and inconsistency and got to solutions. He started
with a slide on immutability and lightweight functional actors in Erlang,
having solved it 30 years ago, and pointed out Joe, who got a roomful of
cheers and laughs and validation for his work, in person.

It was all very human.

History Bonus - Armstrong chatting with Stallman:
[http://imgur.com/a/ETkhZ](http://imgur.com/a/ETkhZ)

------
andrewl
I've never seen an interview with Alan Kay that I did not find fascinating.

I like Joe Armstrong, and he's brilliant of course, but he interrupted too
much in places. But it seemed to be out of enthusiasm, so I can't really be
bothered.

------
zzzcpan
Their message is essentially: you are all in cults, learn old stuff and start
using actors and message passing. And not CSP, as Alan Kay puts it - it's too
rigid and gear like.

~~~
lliamander
What I got from it: \- model time explicitly \- build computer systems to work
at a galactic scale \- know that reality is distinct from your mental models
("the map is not the territory") and you will see the present more clearly.
The essence of comedy, science, and art involves changing the models through
which we view the world.

