Wow, that was good. Anyone who sees this thinking it may be too old or irrelevant.. it's not. I'd say this is timeless as far as a talk on PL design is concerned.
Lost it at 8:30 "If I need to use a word of two or more syllables I must first define". It went back and checked the beginning and this is exactly what he did. This is brilliant and simple for conveying many subtle and powerful points/
This, explaining few concepts in a such pseudo-formalistic way, is worth to do if the author spoke with non-programmers (or, not software developers); and then those persons would hardly able to understand him; otherwise they were programmers in the first place. But> explaining such basic things in PL theory to programmers means forcibly put them into deepest boredom because of all this nonsense of pseudo-information of defining new useless language - not a programming language (PL)
He leaves defining "garbage collection" in single-syllable words as an exercise for the listener. Here's my go. "Garbage collection" means ways to find and free space filled with things you don't need so you will have space to put new things that you might need.
41:01 "Meta = Means you step back from your own place. What you used to do is now what you see. What you were is now what you act on. Verbs turn to nouns. What you used to think of as a pattern is now treated as a thing to put into a slot of an other pattern. A meta-foo is a foo in whose slots you can put parts of a foo." My reflection: Named functions = "Verbs turn to nouns" = Patterns of behavior extracted to named functions. So that "What you used to do is now what you see." Function composition (treating functions as first-class citizens of the language) = "What you used to think of as a pattern is now treated as a thing to put into a slot of an other pattern." Lambda functions = Meta-foo = "A meta-foo is a foo in whose slots you can put parts of a foo." = My definition of Lambda is 'A thing that can make a new thing of its own kind, from things of its own kind.'
This is more relevant today than it was 20 years ago. His insights apply directly as the fundamental building blocks of computing infrastructure move towards open source projects.
for those who are new to this talk - it starts off weird but becomes clear at 8:53. hang in there, itll pay off btw - took some notes here to save my future self some time dev.to/swyx/notes-on-growing-a-language-by-guy-steele-5501
Please fix this. This video used to be at Google Videos. Now this is the only version of this great talk I could find, and SOMEBODY FLIPPING BROKE IT! In a talk about language and definitions it is pretty terrible that some words are skipped all the way throughout the talk.
This video was shared as a critique of Golang. For context, the person sharing the link is a very skilled functional programmer in Haskell, as far as I know, so that speaks a lot as well. They are also a proponent of Rust.
Masterful talk. Thankfully, with retrospect, there's no reason to believe in the possibility he proposes at 43:30. A popular/successful language is just "what is commonly agreed-upon as useful", and will constantly be redefined in those terms (particularly natural languages, but also programming languages). I reckon the ideal scenario is that we end up with a tree of useful languages, where the languages closer to the 'trunk' (base axioms) are more generally useful, and those on the branches are more niche/domain-specific, but the branched languages are supersets of their ancestor languages. I.e. if you need more niche/specific language to model a problem, use it, but it should be derived as newly minted clauses of a perfectly consistent ancestor language.
Didn't really go in the direction he wanted... They did add generics, but still no value types (which might be in Java 10...) and no operator overloading.
This is amazing. Cite: This is the text of a talk I once gave, but with a few bugs fixed here and there, and a phrase or two changed to make my thoughts more clear: www.cs.virginia.edu/~evans/cs655/readings/steele.pdf
Well his definition of a Cathedral is not right. We have a cathedral here in the City with more than 1000 years history. And since it's initial design, lots of designers added parts to the church that blended in like if they were part of the original design. It that sense it is much more like his definition of a Bazaar. But apart from that, it really is a great talk. And I think if he had more saying in the Java Language, Java might have become a better Language today.
His definition of person is also misguided, it missed people who are not men or women. I think his point isn't about the words he's defining, but the tools with which he is doing it (i.e. a small language)