HackerTube

John Carmack's keynote at Quakecon 2013 part 4

Kostiantyn Kostin5 HN recommenders · recommended in 5 months, 2013–2025
YouTube
talk · intermediate · evergreen · 2013–2025 on HN

Part 4 of John Carmack's QuakeCon 2013 keynote, covering OpenGL, functional programming, Haskell, Lisp and Scheme, typing, multithreading, events and garbage collection.

Cited again and again as Carmack's key public statement on functional programming and purity in game development, plus his remarks on garbage collection.

12 comments from Hacker News

@ookdatnog2024-06 · in “Why "Structure and Interpretation of Computer Programs" matters (2011)”

I think it is, and if you don't want to take my word for it, John Carmack thinks the same :) There's an old video [0] where he talks in-depth about his explorations of functional programming. It's perhaps a bit more about Haskell than about SICP, but in it he's also quite enthusiastic about what a veteran programmer can still learn from this book. [0] ▶ this video

Recommends View on HN
@lsh2019-01 · in “Functional programming in C++ (2012)”

Excellent read, I still remember a lot of it. There is also the accompanying Quakecon presentation where John Carmack talks at length about all this: ▶ this video

Recommends View on HN
@akmiller2017-09 · in “Global Mutable State”

What you describe above is similar to what Carmack discussed at his QuakeCon keynote several years back when toying with a game engine on Haskell. Very interesting talk, ▶ this video

Recommends View on HN
@mrkgnao2017-08 · in “Elm in Production: 25K Lines Later”

The use of monads is a side-effect (ha!) of committing to purity throughout a language, and that's what FP is being equated to: pure statically-typed FP. (You can argue about how justified that is, of course. I'm not going into that, but you might want to see what John Carmack has to say[0]. No, he doesn't end by saying "we should all convert to the church of Haskell now", but he does talk about how large-scale game programming refactors are made easier when you're working with no (or very disciplined) side effects.) Monads are not the only way to deal with effects while keeping purity, although they were the first discovered and so on: algebraic effect systems as in Koka[1] (and as simulated in Idris or PureScript) are another alternative. Koka infers effects, so it's probably easier for a C-family programmer to pick up (I know little about it, though). [0]: ▶ this video [1]: link

Recommends View on HN
@sssilver2016-10 · in “Ask HN: What's your favorite tech talk?”

Raymond Hettinger's talk about good code reviews -- link Carmack's talk about functional programming and Haskell -- ▶ this video Jack Diederich's "Stop Writing Classes" -- link All with a good sense of humor.

Recommends View on HN