HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

Dynamic Languages Wizards Series - Panel on Language Design

Eduardo Cavazos1 HN recommender · recommended in 2 months, 2014-2025
YouTube
16K views · 14 years ago · talk · evergreen

A 2001 panel with Paul Graham, John Maeda, Jonathan Rees and Guy Steele on programming language design, part of the Dynamic Languages Wizards Series.

HN users mine it for design wisdom and history from luminaries, and often quote Guy Steele's remarks.

Programming language designFunctional programming#languagedesign#lisp#guysteele#paulgraham#dynamiclanguages

9 comments from Hacker News

@EdwardCoffin2025 · in “Designing a Language (2017)”

In a similar vein is this 2003 post in an MIT discussion forum by Scott McKay [1]. I'd also highly recommend that anyone interested in this kind of thing listen to all three of the Dynamic Languages Wizards Series panels from 2001: runtime [2], language design [3], and compilation [4] Note that though these are videos, there isn't that much compelling in the visual portion, you could easily rip them to audio files and lose little. [1] link [2] link [3] ▶ this video [4] link

Strongly recommendsView on HN
@nomilk2024 · in “Ruby vs. Python comes down to the for loop (2021)”

First impressions apply to languages too. A lot of mathematicians went into AI but didn't start out with any programming experience. They dabbled in some languages and gravitated toward the one(s) they found most useful. Paraphrasing Guy Steele [1]: > It's important that when you design a language that does a familiar thing, that you do the familiar thing exactly... it's criminal that you can write 1/2 and get values nowhere near one-half. Python >>> 1/2 0.5 Ruby irb(main):001> 1/2 0 To a novice programmer, ruby's result makes no sense, and introduces an incredible degree of doubt into the mind of the user. Sure, they could explore why it gives that result, but if that's not helping them get toward solving the problem they're using the programming language for in the first place, then it could seem like an indulgent tangent. [1] ▶ this video

CitesView on HN
@EdwardCoffin2023 · in “Practical Parsing with Flex and Bison”

I used Lex and Yacc (as the article mentions, the direct predecessors of the Flex and Bison it talks about) a bit a long time ago, but more recently when I've written parsers I've just used recursive descent - but I was parsing a well-defined grammar. It did leave me with the knowledge of how to describe grammars in Yacc though, which I have found useful. Guy Steele said something about a use of Yacc that stuck with me : Be sure that your language will parse. It seems stupid to sit down and start designing constructs and not worry how they will fit together. You can get a language that's difficult if not impossible to parse, not only for a computer, but for a person. I use YACC constantly as a check of all my language designs, but I very seldom use YACC in the implementation. I use it as a tester, to be sure that it's LR(1) ... because if a language is LR(1) it's more likely that a person can deal with it. From the Dynamic Languages Wizards series, in the panel on language design (1:09:05) [1] I've not yet employed Yacc in this fashion, but it did give me a tool for thinking about object models. A while ago when I was puzzling over how some classes in an entity relationship diagram should be related, and I considered it from the point of view of how would I design a grammar for serializing an instance of the model into text. This essentially made my decision for me in a principled way, though I never reached the point of writing up a grammar for the whole model, just consider

CitesView on HN
@EdwardCoffin2020 · in “Open access to ACM Digital Library during coronavirus pandemic”

> I'm biased because this one is effectively "What if we make an APL Lisp?" You might like this excerpt from the MIT Dynamic Languages Wizard's panel, where Guy Steele said [1]: > Higher order functionals, I think, are underrated, and can be very good. As the years pass, the more I use Common Lisp, the more I find myself using the sequence functions, including a lot of mapcars. I had to do a matrix tensor product routine about two weeks ago, and I was puzzling over how to do the nested do loops and so forth, and finally I realized it was just mapcar of mapcar of apply of append to mapcar and mapcar, done. No big deal. In other words, thinking in APL should improve your Lisp code. [1] ▶ this video

CitesView on HN
@EdwardCoffin2020 · in “Why not to use (f)lex, yacc or bison”

Guy Steele said this in the Dynamic Languages Wizards series, in the panel on language design [1]: Be sure that your language will parse. It seems stupid to sit down and start designing constructs and not worry how they will fit together. You can get a language that's difficult if not impossible to parse, not only for a computer, but for a person. I use YACC constantly as a check of all my language designs, but I very seldom use YACC in the implementation. I use it as a tester, to be sure that it's LR(1) ... because if a language is LR(1) it's more likely that a person can deal with it. [1] ▶ this video

CitesView on HN
@lukego2017 · in “What Challenges and Trade-Offs Do Optimising Compilers Face?”

Paul Graham once made a point about designing languages for yourself, or for people who are not as smart as you are, or for people who are smarter than you are. ▶ this video Somehow this blog and the debate with djb reminds me of this point. What kind of person is are the compiler optimizations intended to benefit?

CitesView on HN
@EdwardCoffin2015 · in “Ask HN: What are some good resources on the history of programming languages?”

In 2001 MIT had the Dynamic Languages Wizards Series [1], which consisted of three panels of luminaries in the field (videos and participants names on the linked page). A lot of history was discussed in their 5+ hours. They are also on YouTube: Panel on Runtime: Richard Kelsey, David Moon, Tucker Withington, Kim Barrett, Scott McKay [2] Panel on Compilation: David Detlefs, Will Clinger, Martin Rinard, and Mat Hostetter [3] Panel on Language Design: Paul Graham, John Maeda, Jonathan Rees, Guy Steele [4] --- [1] link [2] link [3] link [4] ▶ this video

RecommendsView on HN
@platz2015 · in “What to know before debating type systems (2010)”

Guy Steele: "A dynamic language is one that defers as many decisions as possible until runtime.." ▶ this video

CitesView on HN
@EdwardCoffin2014 · in “Great Programmers (2004)”

This reminds me of a tip Guy Steele gave in his talk on the Language Design panel of the Dynamic Languages Wizards Series in 2001 [1]. He said: It's important to establish design principles early on, that is in effect to do meta-design, because as you evolve the design, or as the language grows later, you want to remain true to an initial vision. This has to do with keeping the description small, and if you can resort to a meta-principle to help you resolve a particular design decision, it keeps the language more consistent. (17:09-17:29) [2] [1] ▶ this video [2] ▶ this video

CitesView on HN
Breaking Down Programming Paradigms: APL's Surprising Learning Curve // Aaron Hsu // Dyalog '1759:03

Breaking Down Programming Paradigms: APL's Surprising Learning Curve // Aaron Hsu // Dyalog '17

Dyalog User Meetings
7K views • 9 years ago
The Next Five Years of ClojureScript - David Nolen1:00:58

The Next Five Years of ClojureScript - David Nolen

Metosin
19K views • 10 years ago
Clojure for Lisp Programmers Part 1 - Rich Hickey1:28:59

Clojure for Lisp Programmers Part 1 - Rich Hickey

ClojureTV
25K views • 13 years ago
Invited Talk - Guy Steele1:07:22

Invited Talk - Guy Steele

ClojureTV
39K views • 9 years ago
"How to Think about Parallel Programming: Not!" - Guy L. Steele Jr. (Strange Loop 2010)1:09:38

"How to Think about Parallel Programming: Not!" - Guy L. Steele Jr. (Strange Loop 2010)

Strange Loop Conference
9K views • 5 years ago
Practical Common Lisp1:12:10

Practical Common Lisp

Google TechTalks
98K views • 19 years ago
Simon Peyton-Jones: Escape from the ivory tower: the Haskell journey1:04:16

Simon Peyton-Jones: Escape from the ivory tower: the Haskell journey

Churchill College, University of Cambridge
170K views • 9 years ago
Condition Systems in an Exceptional Language - Chris Houser33:32

Condition Systems in an Exceptional Language - Chris Houser

ClojureTV
16K views • 10 years ago
Effective Programs - 10 Years of Clojure - Rich Hickey1:14:52

Effective Programs - 10 Years of Clojure - Rich Hickey

ClojureTV
176K views • 9 years ago
Four Languages from Forty Years Ago - Scott Wlaschin1:01:45

Four Languages from Forty Years Ago - Scott Wlaschin

NDC Conferences
33K views • 8 years ago
Adventure with Types in Haskell - Simon Peyton Jones (Lecture 1)1:33:37

Adventure with Types in Haskell - Simon Peyton Jones (Lecture 1)

jasonofthel33t
69K views • 12 years ago
Effective ML1:09:24

Effective ML

Jane Street
30K views • 10 years ago
Julia: to Lisp or not to Lisp?1:04:53

Julia: to Lisp or not to Lisp?

European Lisp Symposium
24K views • 10 years ago
The Algebra of Algebraic Data Types1:04:35

The Algebra of Algebraic Data Types

London Haskell
27K views • 13 years ago
On the Expressive Power of Programming Languages by Shriram Krishnamurthi [PWLConf 2019]59:04

On the Expressive Power of Programming Languages by Shriram Krishnamurthi [PWLConf 2019]

PapersWeLove
27K views • 7 years ago
01 The History of Standard ML: Ideas, Principles, Culture59:51

01 The History of Standard ML: Ideas, Principles, Culture

ICFP Video
7K views • 11 years ago
Racket: Why I Think It’s a Great Language, and Why I’m Not Using It Anymore8:45

Racket: Why I Think It’s a Great Language, and Why I’m Not Using It Anymore

Leandro Facchinetti
19K views • 5 years ago
GopherCon 2014 Inside the Gophers Studio with Blake Mizerany48:19

GopherCon 2014 Inside the Gophers Studio with Blake Mizerany

Confreaks
8K views • 12 years ago
Brian Goetz - Stewardship: the Sobering Parts1:03:31

Brian Goetz - Stewardship: the Sobering Parts

ClojureTV
39K views • 11 years ago
Psp collections: views and more by Paul Phillips1:28:59

Psp collections: views and more by Paul Phillips

AI Council
11K views • 12 years ago