Skip to content
HomeVideos
AllLongsCategoriesPlaylists
BooksBlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Growing a Language, by Guy Steele

    Bill Pugh

    11 HN recommenders · recommended in 19 months, 2014–2026

    YouTube

    53:31 · 165K views · Jul 15, 2012

    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.

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

    Software Engineering & LanguagesProgramming language designTech pioneers & interviews
    1. 1:07:22
      Invited Talk - Guy SteeleClojureTV39K views • 9 years ago
    2. 1:12:12
      2017 ACM PPoPP Keynote: It's Time for a New Old LanguageGuy Steele6.8K views • 9 years ago
    3. 1:03:31
      Brian Goetz - Stewardship: the Sobering PartsClojureTV39K views • 11 years ago
    4. 1:58:46
      Dynamic Languages Wizards Series - Panel on Language DesignEduardo Cavazos16K views • 14 years ago
    5. 12:31
      OSCON 2010: Rob Pike, "Public Static Void"O'Reilly119K views • 16 years ago
    6. 47:52
      “What is Success?” by Evan CzaplickiElm Europe31K views • 8 years ago
    7. 43:58
      "The Economics of Programming Languages" by Evan Czaplicki (Strange Loop 2023)Strange Loop Conference141K views • 3 years ago
    8. 1:00:28
      Keynote. Fortress Features and Lessons Learned | Guy Steele | JuliaCon 2016The Julia Programming Language15K views • 10 years ago
    9. 1:00:56
      RailsConf 09: Robert Martin, "What Killed Smalltalk Could KO'Reilly87K views • 17 years ago
    10. 56:39
      Alan Kay - Programming and ScalingColin McDonnell36K views • 11 years ago
    11. 57:53
      Larry Wall Speaks at GoogleGoogle TechTalks81K views • 18 years ago
    12. 37:07
      Scale By The Bay 2018: Bryan Cantrill, Rust and Other Interesting ThingsFunctionalTV45K views • 7 years ago
    13. 1:14:32
      Building Your Own Dynamic LanguageStanford21K views • 18 years ago
    14. 1:12:10
      Practical Common LispGoogle TechTalks98K views • 19 years ago
    15. 1:55:24
      Ideas about a new programming language for games.Jonathan Blow530K views • 12 years ago
    16. 1:36:40
      Factor: an extensible interactive languageGoogle TechTalks60K views • 18 years ago
    17. 1:12:56
      Lecture 1A | MIT 6.001 Structure and Interpretation, 1986MIT OpenCourseWare995K views • 17 years ago
    18. 59:03
      Breaking Down Programming Paradigms: APL's Surprising Learning Curve // Aaron Hsu // Dyalog '17Dyalog User Meetings7.2K views • 9 years ago
    19. 1:09:38
      "How to Think about Parallel Programming: Not!" - Guy L. Steele Jr. (Strange Loop 2010)Strange Loop Conference9.3K views • 5 years ago
    20. 1:00:06
      Computer Science - Brian Kernighan on successful language designUniversity of Nottingham332K views • 10 years ago

    20 comments from Hacker News

    1. @kaba0Apr 2022· in “Lies we tell ourselves to keep using Golang”

      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.

      Strongly recommendsView on HN
    2. @tikhonjJun 2015· in “The Tragedy of the Common Lisp, Or, Why Large Languages Explode”

      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

      Strongly recommendsView on HN
    3. @pfarrellMar 2020· in “Lisp: Good News, Bad News, How to Win Big (1991)”

      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

      Strongly recommendsView on HN
    4. @gnaritasAug 2017· in “Ask HN: What is your favorite CS paper?”

      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.

      Strongly recommendsView on HN
    5. @pixelmonkeyNov 2015· in “For Better or for Worse”

      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

      RecommendsView on HN