Skip to content
0:00 / 0:00

#dynamiclanguages#lisp#scheme

Dynamic Languages Wizards Series - Panel on Language Design

Eduardo Cavazos

149 subscribers • 2 videos on Hallway

YouTube
  • Recommended by 2 people: 1 on Hacker News and 1 in engineering communities.
  • A classic. People kept recommending it from 2015 to 2025.

Advanced. Deep dive for people who know the field.

15K views14 years ago2 recommendations

Programming languagesSoftware designLanguage design and type systemsFunctional programming

Paul Graham, John Maeda, Jonathan Rees, and Guy Steele discuss the principles, trade-offs, and history of programming language design.

Speakers: Paul Graham, John Maeda, Jonathan Rees, Guy Steele May 10, 2001

Why it's here

2 people recommend this

What people say. Highly recommended by engineers for its timeless insights into language design principles, parsing, and the history of dynamic languages.

Moments people linked to

u/dharmatechin r/ProgrammingLanguages • Recommends

Dynamic Languages Wizards Series - Panel on Language Design

EdwardCoffinon Hacker News • Recommends

On “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 link to this video 4 link

EdwardCoffinon Hacker News • Recommends

On “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 link to this video

EdwardCoffinon Hacker News • Mentions

On “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 link to this video 2 link to this video

platzon Hacker News • Mentions

On “What to know before debating type systems (2010)”

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

lukegoon Hacker News • Mentions

On “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. link to 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?

EdwardCoffinon Hacker News • Mentions

On “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 link to this video

EdwardCoffinon Hacker News • Mentions

On “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 link to this video

EdwardCoffinon Hacker News • Mentions

On “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…

nomilkon Hacker News • Mentions

On “Ruby vs. Python comes down to the for loop (2021)”

…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 link to this video…

u/alt_account10in r/haskell • Mentions

On “Why does GHC immediately think of TemplateHaskell?”

Interesting that you brought that idea up, maybe there are two opposite groups on that topic, where I mostly agree with Guy Steele that there should be a clear separation between the two.
2View on Reddit

u/oilshellin r/ProgrammingLanguages • Mentions

On “Do you know any interesting talks about PL design/compilers/interpreters?”

Here is a very old and interesting one I stumbled across: * Dynamic Languages Wizards Series - Panel on Language Design * link to this video * Speakers: Paul Graham, John Maeda, Jonathan Rees, Guy Steele * May 10, 2001 I watched all 2 hours of it some months ago. I remember it being worth it for Guy Steele's multiple criticisms of Java. I guess he was working on the Java spec at the time? And Paul Graham has some sharp and well-expressed opinions as usual.