Skip to content
HHackerTube.videoSurprise me

Growing a Language, by Guy Steele

Growing a Language, by Guy Steele on HackerTube: recommended by 11 Hacker News commenters across 10 separate months, 2014–2026.

Bill Pugh

talk · intermediate · evergreen

Open on YouTube

Guy Steele's 1998 OOPSLA keynote on designing a programming language that its users can grow. He builds the talk using only one-syllable words and terms he has defined, to demonstrate the idea.

Why Hacker News recommends it

HN considers it one of the best technical talks ever and cites it in discussions of language design, small cores and extensibility.

people recommended it
11
separate months
10
strong recommendations
4
discussed on HN
2014–2026
“This is probably the best talk ever on the general topic”
— kaba0, Apr 2022, in “Lies we tell ourselves to keep using Golang”

What HN commenters said

20 Hacker News comments link this video. Each one links back to its thread.

kaba0Apr 2022Strongly recommends

This is probably the best talk ever on the general topic: ▶ this video [Growing a language by Guy Steele], seriously give it a look if you have the time and do put up with the seemingly strange start. But at around the end it asks this (paraphrasing): Should a language have complex numbers implemented natively? Should it have numbers module n implemented natively? What about intervals, or rational numbers? I also dislike the ridiculous overloading of cryptic symbols, but neither extreme is good. Not allowing overloading will give you BigDecimal.of(3).add(BigDecimal.ONE).divide… , while allowing it unrestricted will give you things like msg #!! something. But perhaps a sane middle ground is to allow only basic operators (+,-,*,/) to be overloadable.

in “Lies we tell ourselves to keep using Golang” · View on HN

pfarrellMar 2020Strongly recommends

Haven’t read it but remembered this paper being mentioned in Guy Steele’s fabulous “Growing a language” talk [0]. I don’t want to give anything away about the talk (which is one of my absolute favorites), but Steele says about the title of this paper: “... the truth is that Dick Gabriel knew how to choose words with punch“ 0: ▶ this video

in “Lisp: Good News, Bad News, How to Win Big (1991)” · View on HN

gnaritasAug 2017Strongly recommends

Not a paper, but one of my favorite talks ▶ this video Growing a Language by Guy Steele (co-inventory of Scheme). Brilliant speech about how to grow languages and why it's necessary. Languages that can be grown by the programmer, like Lisp or Smalltalk are better than languages that fixed like most others, this is why.

in “Ask HN: What is your favorite CS paper?” · View on HN

tikhonjJun 2015Strongly recommends

He gave a brilliant talk about it: "Growing a Language"[1]. The idea is to make languages that grow —ones that provide a small, uniform core that can be extended by the user. Ideally, these extensions feel like first-class citizens: things added by users should feel on par with built-in language features. It's still one of the best technical talks I've ever come across. [1]: ▶ this video

in “The Tragedy of the Common Lisp, Or, Why Large Languages Explode” · View on HN

NiloCKDec 2025Recommends

Enjoyers of this concept would probably like this wonderful talk about programming language design by Guy Steele (Sun, Java Language): Growing a Language ▶ this video

in “Show HN: Learning a Language Using Only Words You Know” · View on HN

elricSep 2025Recommends

Brian Goetz mentions Guy Steele's 1998 lecture "Growing a language" [1]. It's worth a watch if you haven't watched it yet. It's been discussed on HN several times [2]. Java gets a lot of flack in these parts, mostly by people who don't use Java and pull opinions out of their arse, but you'd be hard pressed watching both talks and not being impressed by the effort that's going into continuously improving the language. [1] ▶ this video [2] [link]

in “Growing the Java Language [video]” · View on HN

Show 14 more comments
peterkellyJul 2019Recommends

If you like this, you'll definitely enjoy the talk "Growing a Language", by Guy Steele: ▶ this video

in “Multi-Layer Dictionary (2016)” · View on HN

e12eSep 2018Recommends

Maybe these are mostly too new, or you have different (more practical, hands on?) definition of tech-talk - but from a quick look the only speakers I expected - and found - were Sandi Mets and Rob Pike. If it's practical, I'm surprised not to see the js "wat" lightning talk (which I now can't seem to find...). If it's more general "best of", I'd expect something like Guy Steele "growing a language" : ▶ this video Douglas Engelbart "the mother of all demos": [link] Alan Kay "doing with images makes symbols": [link] Or, if that's too long, the much more condensed ted talk: "a powerful idea about teaching ideas": [link] (Maybe that's not a "tech talk"?) Rich Hickey "simple made easy" : [link] To name a few of the top of my head.

in “Show HN: TechYaks – Best of 50k tech talks ranked by confidence intervals” · View on HN

skystrifeApr 2016Recommends

This idea reminds me of an amazing talk by Guy Steele: ▶ this video He starts the talk by assuming monosyllabic words as his primitives and builds up the words he needs to use to give the talk by providing definitions for them first.

in “Cleartext: A text editor that only allows the 1,000 most common words in English” · View on HN

gramasaurousNov 2015Recommends

Reminds me of this[0] talk by Guy Steele where he explicitly defines any word outside of a given set before he can use that term in his speech. Interesting language exercise, definitely worth a watch! [0] ▶ this video

in “A Basic Guide for Curious Minds: Review of “Thing Explainer”” · View on HN

pixelmonkeyNov 2015Recommends

I recently watched Guy Steele's "Growing a Language" talk. It's very much related to jmoiron's post here, and is worth a watch despite its age: ▶ this video Steele's commentary on "Worse is Better" seems to me to be a better representation of the original essay than the one expressed here about Go. Steele says: "The gist of ['Worse is Better'] is that the best way to get a language used by many persons is not to design and build 'The Right Thing,' because that will take too long. In a race, a small language with warts will beat a well designed language because users will not wait for the right thing; they will use the language that is quick and cheap, and put up with the warts. Once a small language fills a niche, it is hard to take its place." In other words, the lesson of 'Worse is Better' is that getting a 'good enough' thing to market, and benefiting from the network effects of its widespread use, will always beat getting the 'the really good' thing to market in the same category, because the cost of delay is the loss of (community) network effects. The illustrative example here is UNIX and C, but it can be easily cross-applied to more recent projects. From that vantage point, Go isn't a good example of 'Worse is Better'. It occupies the same niche as C, but was delivered nearly 4 decades later. It seems to be a "second edition of C" designed with very explicit goals of correcting specific deficiencies of C as a systems programming language, but without the scope creep that ch

in “For Better or for Worse” · View on HN

troupoJul 2026Cites it

Go is rediscovering Guy Steele's Growing a Language from first principles, at a much slower pace: ▶ this video

in “Golang proposal: container/: generic collection types” · View on HN

ColinWrightApr 2025Cites it

This is the PDF of the talk given here: ▶ this video It's Guy Steele[0]'s keynote at the 1998 ACM[1] OOPSLA[2] conference. [0] [link] . [1] Association for Computing Machinery [2] The 13th annual ACM SIGPLAN[3] Conference on Object-Oriented Programming Systems, Languages, and Applications. [3] SIGPLAN is the Association for Computing Machinery's Special Interest Group (SIG) on programming languages.

in “Growing a Language [pdf] (1998)” · View on HN

kerkeslagerDec 2024Cites it

> Of course, I also accept that maybe the current vernacular is degrading. Sure, that's possible --but all the evidence I see is that humans can perform incredible feats of communication with the most strict limitations on language. "Using language my audience understands" is a strictly easier task than "using language my audience understands and also keeping iambic pentameter", and Shakespeare did that harder task across 39 plays. Language has evolved since Shakespeare, but it has evolved to become more capable, not less, and the current vernacular is evolved to fitness for current communication. And sure, the current vernacular is evolved for fitness to the average user's needs rather than for history specific communication, but as with any jargon, you simply define your jargon terms in the vernacular and then you can use the jargon terms. It works much like this[1]. [1] ▶ this video

in “The Rise of Post-Literate History” · View on HN

NaacFeb 2022Cites it

Reading the paragraph about Galileo's telescope reminded me of Guy Steele's talk Growing a Language: ▶ this video

in “Minimal English (2018)” · View on HN

VHRangerJan 2022Cites it

I would say Java the language is fine, but the culture around it is what's grown the distaste many have for it. The overuse of design patterns, etc. I also find it fun how Guy Steele had in retrospect the perfect plan for Java back in the 1990s, and it took them 15 years to come around to it: ▶ this video

in ““I am literally losing sleep” over Java (1996)” · View on HN

sahil-kangJun 2020Cites it

I think you can draw this ‘core of an environment’ parallel between Forth and Scheme: both are small languages and they emphasize growing the language to the problem domain [1]. Common Lisp, on the other hand, is a large language: implementations provide much more than a foundational core, and a fairly comprehensive list of libraries exists. I think RPG’s Worse Is Better highlights some of the reasons why CL isn’t as popular as other languages [2]. [1] ▶ this video [2] [link]

in “Collapse OS – Why Forth?” · View on HN

rtpgNov 2016Cites it

The logical extreme of your argument is to make everything a `div` with classes. While possible, the main issue with that model is that it provides no encapsulation strategy. Encapsulation is one of the core tools for programmers for building complex programs, so having first class support for that in the templating language suddenly makes a lot of things easier. Without encapsulation, a lot of things become more frustrating. Event bubbling has to be micro-managed. Dev tools are less useful. It becomes even more frustrating to deal with conflicting CSS IDs. Steele's Growing A Language[0] talk specifically points to encapsulation as the core building blog for programs. Given how HTML is used nowadays (React + Angular are both "HTML as program layouts" models), not having encapsulation is a crutch [0]: ▶ this video

in “Introducing Custom Elements” · View on HN

bad_userAug 2014Cites it

The argument on looking at Go's trend in isolation is a really weak one. Let's also look at Clojure in isolation: [link] - and oh look, Clojure runs on the JVM. > If I were a developer getting started today, I’d make a career bet on Go Advice on picking languages as career bets are especially weak. In my experience, careers are being built on being able to get stuff done and in the long list of things that a developer has to learn to get stuff done, the language itself is very uninteresting considering everything else combined. Personally it takes me 2-3 weeks to become functional in any new programming language, I've worked with half a dozen thus far in production and I played with another dozen in my free time. The language itself is like a drop in an ocean, compared to more fundamental knowledge that makes one productive, like math, algorithms, concurrency and parallelism, hardware, usability, domain specific knowledge, libraries, frameworks, being able to interact with a community, etc... > Go is a simple language by design. You can read the spec and other materials on the Golang website and start being productive in a single day Simplicity in the language doesn't translate to simplicity in the solutions that you're building. This is a fundamental divide, since often people are mistaking simplicity for easy, for being familiar. It's not in the original sense of the word - simplicity is the opposite of complexity, which means interwoven or entangled and in the context of s

in “Is Java the Cobol of tomorrow and Go the Java of the future?” · View on HN

anaphorMar 2014Cites it

What do you say to people like Guy Steele who believe that small languages that can be grown by their users are the way forward, and do not want to pay to use a closed source programming language, ever? (fyi I'm referring to this famous talk he gave ▶ this video )

in “Wolfram Programming Cloud ” · View on HN

Topics & tags

Programming language designTech pioneers & interviewsguy steelegrowing a languageoopslalanguage extensibilitylispjava