Skip to content
0:00 / 0:00

#alankay#oop#smalltalk

Alan Kay Object Oriented Programming "OOP" Talk - Sound Repaired

TRIZ Initiative

203 subscribers • 1 video on Hallway

YouTube
  • Recommended by 1 person: 1 in engineering communities.
  • Presented by Alan Kay, pioneer of personal computing and OOP

Intermediate. Assumes working knowledge.

1.1K views4 years ago1 recommendation

Software designHistory and cultureObject-oriented designHistory of computingPeople who shaped computing

Alan Kay presents his comprehensive vision of object-oriented programming, late binding, and the history of personal computing.

Alan Kay gives a comprehensive talk about Object Oriented Programming. Alan Kay, perhaps unintentionally, is one of the best examples I've found of someone demonstrating the "Big Picture" of TRIZ. It has clearly taken decades of effort to dilute the work done on personal computing in the early 1970s into the mess we have now. It is an excellent case study for anyone interested in the theory of inventive problem solving. I did my best to repair the sound to a point where I like it, but the original is available as well: youtube.com/watch?v=QjJaFG63Hlo

Why it's here

1 person recommends this

What people say. Recommended as the most famous presentation of the purist version of object-oriented programming.

u/rileyphonein r/ProgrammingLanguages • Recommends

On “What are some important differences between the popular versions of OOP (e.g. Java, Python) vs. the purist's versions of OOP (e.g. Smalltalk)?”

Here's the most famous presentation of the purist version by Alan Kay. Now, Kay doesn't even consider Smalltalk to be 'pure', especially as it left the lab. But it does have late binding, everything is an object and all calls are message sends. Many other dynamic languages, especially Ruby, are close to Smalltalk in terms of 'purity'. Meanwhile in Java/C++, callsites are bound early with vtables (requiring a lot of casting and callsite discrimination) and not everything is an object. Classes aren't really first class objects, and aren't modifiable at runtime. They have inadequate type systems and punchcard-descended compile-run loops. There's a range of other OOP languages with more inte…