Alan Kay's talk at UCLA – Feb 2024 [video]
youtube.com
youtube.com
[1] https://twitter.com/sincethestudy/status/1761099508853944383...
Humans communicate mainly with language and no OS provides this in a satisfactory way for the average user.
The result is users mostly clicking on signs to choose among predetermined tasks, like monkeys in a lab.
Human language is optimised for human relationships, not for task-specific problem solving. It's full of subtext, context, and implication.
As soon as you try to use natural language for general open-ended problem solving you get lack of clarity and unintended consequences. At best you'll have to keep repeating the request until you get what you want, at worst you'll get a disaster you didn't consider.
“Once men turned their thinking over to machines in the hope that this would set them free. But that only permitted other men with machines to enslave them.” Frank Herbert, Dune
Why? I enjoyed your comment but I don't follow why this is obvious?
Why should computer solutions be task specific rather than general?
If I were making an API call, I'd want to get 2, but as an end user, I'd be delighted in "It's 2 and here's how I arrived at it ...'
One example is ambiguity. Every human language has faculties for ambiguity, which is crucial in many human interactions and relationships. The ability to make implicit requests or suggestions while maintaining plausible deniability is valuable, even in situations that are non-adversarial.
In contrast, when communicating with an OS or engineering a mechanical device, ambiguity is a negative and it's crucial to use language that is deterministic.
There is a very real degree to which people are only capable of thinking clearly about complex systems to the degree they are comfortable with tools such as mathematics and programming that can be used to unambiguously describe them.
Very much a historical artifact. Modern systems (LLMs, for example) can in principle handle ambiguous inputs.
Requiring humans to describe stuff "unambiguosly" is the easy cop out to that.
Getting computers to handle the ambiguity and resolve it as good as humans is what would be really amplifying. LLMs are a good step to that, compared to a regular programming language/interface.
There are there to handle conflicting interests and goals.
To that end, ambiguity in communication is something they use on purpose, not something they're there to solve.
Most humans would have nothing to say to an OS. I am a software engineer and most of the time I function many levels of abstraction away from the OS. Most of my work doesn't even run on the same OS I work in, and when it runs, it talks to an OS that's not even running on an actual computer, but a construct that looks like a computer, but is entirely made up by a hypervisor.
That "programming language" might just be ability to have generative interfaces (LLM based).
>Humans communicate mainly with language and no OS provides this in a satisfactory way for the average user. LLMs literally fix this.
We tried that, and it worked briefly. But the end result is the modern web/app landscape: commercialization, tits and cats, hating, techo-feudal and government control, partisanship bs, spam, narcisism - and rare sprinkles of intelligence here and there.
I’m still very hopeful we will use the tech to help up us with some non-communication related things. Maybe something that’ll even off-ramp people outside the internet world.
Because of that, the very real possibility of getting a punch in the face if you went over the line also helped curb those behaviors somewhat.
Where and when?
* after the talk, we even shared a cab to the airport and he graciously entertained all of my questions.
Quora's a better place, with a better UI, for that almost-blogging sort of thing.
"Alan Kay on “Should web browsers have stuck to being document viewers?” and a discussion of Smalltalk, NeWS and HyperCard:
https://donhopkins.medium.com/alan-kay-on-should-web-browser...
>Alan Kay answered: “Actually quite the opposite, if “document” means an imitation of old static text media (and later including pictures, and audio and video recordings).”
Also here's a collection of HyperTIES discussions from Hacker News (including some discussion with Ben Shneiderman about why hypertext links are blue):
https://donhopkins.medium.com/hyperties-discussions-from-hac...
Is it really "Complex"? Or did we just make it "Complicated"? https://www.youtube.com/watch?v=ubaX1Smg6pY
If you're interested in kids + computers + education, this 1955 Technology in Education House Committee Meeting is a surprisingly great watch, and has Kay alongside Seymour Papert: https://www.youtube.com/watch?v=hwsQn1Rs-4A
https://youtu.be/dZQ7x0-MZcI?t=8m33s 'our minds are like theaters. (...) we treat our beliefs as reality. that is the worst thing about human beings. and these theaters are tiny; we can only think of a few things at once, it's hard for us to take in larger things. (...) we grow up in whatever culture we were born into. (...) our conclusions tend to be societal—that's a disaster!'
https://youtu.be/dZQ7x0-MZcI?t=57m9s 'because our brains want to believe, rather than think, these can turn into something like a religion. the reason we don't want to come up with blind belief: there's always more, and what it is, is something that we can't imagine. so when we give a name to something, we (...) hurt our ability to think more about it, because it already has a set of properties, it already is the thing the word denotes.' (beautifully illustrated in the video)
https://youtu.be/dZQ7x0-MZcI?t=60m 'school is the best thing ever invented to keep you from thinking about something important for more than a few minutes'
perhaps unsurprisingly, when i explained this on here two days ago, it got downvoted to -2, because hn's comment section is kind of the intellectual antithesis of alan kay: https://news.ycombinator.com/item?id=39586470
i keep being optimistic but you people make me so sad
Where are todays rocks?
This is so very true.
I am not a hippy, but I can't immediately thing of a better phrase than the immense toxic "negative energy" of HN comments.
And yet, when I say this to people outside of HN, they tend to react with astonishment. "But it's my favourite place online! I love it! I learn so much!" etc.
I don't think the site even realises, but its negative responses to this (deeply unwise and ill-considered) "Ask HN" question changed the direction of what was the most innovative company in the Linux space:
(and I have consumed less (books) each decade. :/)
https://www.youtube.com/watch?v=oKg1hTOQXoY
Others have already mentioned The Early History of Smalltalk, highly recommended. You'll probably want to read it a couple of times, revisit from time to time.
The big idea is messaging, or rather "ma"
http://lists.squeakfoundation.org/pipermail/squeak-dev/1998-...
"The key in making great and growable systems is much more to design how its modules communicate rather than what their internal properties and behaviors should be."
"I think I recall also pointing out that it is vitally important not just to have a complete metasystem, but to have fences that help guard the crossing of metaboundaries."
" I would say that a system that allowed other metathings to be done in the ordinary course of programming (like changing what inheritance means, or what is an instance) is a bad design. (I believe that systems should allow these things, but the design should be such that there are clear fences that have to be crossed when serious extensions are made.)"
"I would suggest that more progress could be made if the smart and talented Squeak list would think more about what the next step in metaprogramming should be -- how can we get great power, parsimony, AND security of meaning?"
Alan Kay: A powerful idea about teaching ideas at TED (2007) https://tinlizzie.org/IA/index.php/Alan_Kay:_A_powerful_idea...
Alan Kay: Normal Considered Harmful (2009) https://tinlizzie.org/IA/index.php/Alan_Kay:_Normal_Consider...
Back to the Future of Software Development (2003) https://tinlizzie.org/IA/index.php/Back_to_the_Future_of_Sof...
All of the STEPS reports - I especially like appendix E in:
https://tinlizzie.org/VPRIPapers/tr2007008_steps.pdf
> Appendix E: Extended Example: A Tiny TCP/IP Done as a Parser (by Ian Piumarta)
> Our first task is to describe the format of network packets. Perfectly good descriptions already exist in the various IETF Requests For Comments (RFCs) in the form of "ASCII-art diagrams". This form was probably chosen because the structure of a packet is immediately obvious just from glancing at the pictogram.
> If we teach our programming language to recognize pictograms as definitions of accessors for bit fields within structures, our program is the clearest of its own meaning. The following expression cre- ates an IS grammar that describes ASCII art diagrams.
> (...) We can now define accessors for the fields of an IP packet header simply by drawing its structure.
We can then publish some of the topics lists of each talk for others, so they can save time. We can also do this for the many papers [2] book reading lists [3] and lecture notes [4].
[1] https://tinlizzie.org/IA/index.php/Talks_by_Alan_Kay
[2] https://tinlizzie.org/IA/index.php/Papers_from_Viewpoints_Re...
[3] http://www.squeakland.org/resources/books/readingList.jsp
[4] https://internetat50.com/references/Kay_How.pdf
By no means this is a complete list, you can contact me morphle at ziggo dot nl for a chat on how to compile a complete list.
This follows Alan Kay (as well as dozens of others) through their groundbreaking research at Xerox's research lab in Palo Alto, primarily during the 70s.
You will learn how these visionaries and personalities were largely at war with themselves, while HQ (2,000 miles away) largely ignored any of their marvelous outputs... until it was too late.
----
I just checked this morning, and was shocked to see that XRX's total market cap is "only" $2B, when they could have been Apple computer [today ~$2,600B].
An interesting tidbit that many don't know about the Xerox/Apple relationship was that Steve Jobs was allowed into the facility, on two separate tours, because he offered Xerox preferred stock in the then-upcoming Apple IPO — which they then held on to for less than a few years.
[0] https://news.ycombinator.com/item?id=22379275
[1] The Dream Machine" by M. Mitchell Waldrop
I've added Dream Machine to my reading list (but will wait a year, as I just finished Dealer's Lightning early 2024).
Xerox did shrink a bit since then.
[1] https://youtu.be/NdSD07U5uBs?t=1828 [2] https://youtu.be/1e8VZlPBx_0?t=975
How much is computer interface restricted by the little window (even a 4k TV) we get as the view into the computer? The promise to me of a VR headset UI is having an arbitrary amount of real estate to display information (and not just 2D!)
And here's the thing about a good VR UI: it wouldn't just be the visible! Your brain can track the location of things subconsciously, so the log tailing window, the metrics window, that upload/download/file copy status window, can all be in some area you turn your head to glance at to get occasional information on.
Because the PARC UI's windowing system is designed to help out with the "limited viewport": it already recognized that people will do more applications/tasks than there is visible screen space, so you need an overlaid windowing system.
But right now, facebook is the sociopaths in control of VR headsets, so ... we'll be waiting for a while.
The talk is so refreshing, so indicative of research in the 1960s. I think in retrospect from listening to the talk is that all researchers had to do was the possible. What they didn't have to think about was the consequences of technology.
That is not the world we live in now. It is apparent that we are a civilization facing the Fermi Paradox/Great Filter. He alluded to it in the human evolution and human organizations part of the intro, but it is fundamentally structured around post-WWII viewpoint, not the modern view where literally every person's consumption is a step towards collective destruction.
>the modern view where literally every person's consumption is a step towards collective destruction.
This is just one POV. From a fiat capitalist POV, consumption is essential to prevent collective destruction... although I agree more with your POV.
Thanks for the great comment.
Alan Kay : July 2007 : A Conversation with CMU Faculty & Students
> Wholly new forms of encyclopedias will appear, ready-made with a mesh of associative trails running through them, ready to be dropped into the memex and there amplified.
My take away is the the concept that GUIs Mirror our minds as individuals the way good writing and theater does. I then ponder about what could be a fair or useful representation of a collective mind in a way an individual mind can process/work-with?
Maybe that is the will be the metaverse(snowcrash).
Thanks again.
Especially on a forum for a startup accelerator, it seems like that should have been the most intriguing part of the talk.
It’s unfortunate we’ve been stuck with Windows, Mac, and Linux only
To me Emacs fits the bill, or at least a subset thereof.
Alan Kay is one of the designers of SmallTalk.
Why must everything be done as a function call? You can’t change anything without recompiling the code.
Today everything is implemented as a function call. Need to send a message? Call a function named “snd_msg” or something.
Emacs Lisp supports dynamic binding, so you can dynamically rebind function definitions at runtime.
Emacs "happens" to be open source ;-), but the paper stresses how the system & language were designed to allow users to mold it at run time without the barrier of recompiling from source, and how empowering users led to better features than "careful design" could have achieved. Selected points I found notable:
- awareness that "An EMACS system actually implements two different languages, the editing language and the programming language". - Editing Language is tweakable (again at run time) by re-binding keys to macros / existing commands / custom commands. This gives agency to users with less programming skill! - Language separation being necessary so that tweaking Editing Language can't break Programming code. - Key bindings are shallow "keyboard sugar" over the concepts of Programming Language. Commands are (almost) regular functions. User can invoke any command by name, bypassing the sugar. - Buffer-local & mode-local bindings. - Commands (and generally as much of the system as possible) implemented in Programming Language which was chosen to be interpreted not compiled, so that users can redefine at run-time and experiment. - "The only way to implement an extensible system using an unsuitable language, is to write an interpreter for a suitable language and then use that one" :-D - "variable [and function] names are retained at run time; they are not lost in compilation"
- Commands are extensively parametrized by variables. User can achieve quite a lot by simply setting [global] variables. - Dynamic not lexical scoping deliberately choosen to make code less encapsulated and more reusable with tweaks. See paper why lexical is worse for dynamic - Unique concept of File/buffer-local variables! Again, if programmer went to the trouble of parametrizing code, maximize the payoff. - Commands and especially compiled code extensively parameterized by calling "Hooks" at interesting points. "These hooks can be thought of as compensating for the fact that some parts of the system are written in assembler language and cannot simply be redefined by the user." <<-- I found this especially thoughtful
- Social dynamics like "library system" for loading extensions written by others. Well, ater Emacs actually lagged behind for decades in ease of obtaining 3rd-party libraries. "too cathedral, not enough bazaar..." Much better now with MELPA, still not as smooth as say VSCode extensions. But I feel a trade-off — VSCode extensions are more "opaque".
But the dream isn’t dead. If only I had more free time…
My email is in my profile if you'd want to entertain this idea.
There are several working systems and even a real OS with native device drivers on modern bare hardware.
You can run legacy code under its qemu sandbox, but that is added only to broaden its appeal to customers as this part is not 'live'.
Yes, its a lot of fun to play with it, I invite people to join in the fun. 20.000 Lines of code for almost all of personal computing.
[email redacted]
host mx02.mail.icloud.com [17.42.251.62]
SMTP error from remote mail server after pipelined end of data:
554 5.7.1 [CS01] Message rejected due to local policy. Please visit https://support.apple.com/en-us/HT204137This Apple mail server seems to reject your emails because it thinks its spam.
Unfortunately that phrase -- steps project -- is effectively un-Googleable.
Do you have a link at all please?
Oh so very much so, yes!
It was fun. It could have been great.
Kay demonstrates an emulator of Sketchpad. Anyone know if it's been shared anywhere?
One of the reasons is that O-O is just one of several important ways discovered to organize software. Any big enough problem will have places for each. Specialization is for insects.
however, i do agree that there are some advances made since then that he doesn't fully appreciate, things like the importance of free-software licensing, roy fielding's work on architectural styles, recent advances in formal methods and functional programming, and the web's principle of least power
tla+ is getting uptake in industry, idris is sort of making dependent types practical, acl2 has more and more stuff in it, pvs is still around and still improving, adam chlipala keeps blogging cool stuff, so does hillel wayne, sel4 is an entire formally-proven-secure microkernel, you can try compcert on godbolt's compiler explorer, ləɐn has formalized significant mathematical definitions that working mathematicians use actively while metamath has an extremely convincing approach to proof and an ever-growing body of proofs of basic math, smt solvers like z3 are able to solve bigger and bigger problems and therefore able to tackle bigger subproblems of verifying software (and are easily apt installable and callable from python or from cprover's cbmc), cryptocurrency smart contracts have an incentive to be correct in a way that no previous software did (and people are applying at least idris to at least ethereum), ...
a thing i saw recently that was really impressive to me was parsley, by the main author of pvs as well as some other people: http://spw20.langsec.org/papers/parsley-langsec2020.pdf
I'm very interested in knowing what array languages they were researching. The only thing I can find is Nile[1] but from the examples it doesn't look like an array language to me.
> Dynamicland's new research website will be up in the spring.
> current status:
> 1156 pages
> 11,120 images
> 693 videos
> 56 pdfs
(https://nitter.privacydev.net/worrydream/status/175311604225...)
noticeably missing from this list is source code, unless that's on the 1156 pages
i'm sure i'll devour them eagerly, though
Smalltalk was the ".NET" of OS/2, and Visual Age for Smalltalk code browser still lives on Eclipse.
Then there are those Objective-C and Ruby developers still around, heavily influenced from Smalltalk.
https://www.cincom.com/pdf/CS050418-1.pdf
Someone suggested Smalltalk a million lines long which I have no way to confirm or contradict ;-)
I like to compare it to Ruby on Rails. Mantis is Ruby on Rails for the 3278 (and Dataflex 2 would be Ruby on Rails for the VT-100).
Points in the direction of...
https://bracha.org/Site/Newspeak.html
https://en.wikipedia.org/wiki/Newspeak_(programming_language...