The two schools of programming tutorials: Python vs. Lisp
Description
A screenshot of a tweet from the user Gedda (@gedda). The text humorously contrasts the teaching methodologies of different programming language tutorials. The tweet starts, 'Programming tutorials tend to have different approaches depending on the language taught.' It then gives two examples. For 'Python:', it lists a gentle, step-by-step introduction: 'This is how you print "Hello, world!", this is how you call a function, this is a dict, this is how you create a module...'. In stark contrast, for 'Lisp:', the approach is abrupt and dives into advanced computer science: 'Fuck yeah let's solve Tower of Hanoi'. The humor lies in the accurate portrayal of language cultures. Python is known for its beginner-friendly, gradual learning curve, while Lisp, a historically academic and powerful language, often has tutorials that presume a strong theoretical foundation and immediately tackle complex, recursive problems, reflecting its deep roots in computer science
Comments
13Comment deleted
Python tutorials hold your hand. Lisp tutorials hand you a copy of SICP and a parenthesis-shaped rock and say, 'Good luck, you'll need it.'
Python’s Day 1: print("Hello, world!"). Lisp’s Day 1: write a meta-circular evaluator that solves Tower of Hanoi. My Day 1 as architect: figure out why that 1998 Lisp Hanoi demo is now the core of our data-migration pipeline
The real difference is that Python tutorials spend 3 chapters explaining list comprehensions while Lisp tutorials assume you've already implemented your own Lisp interpreter by page 2 - and both communities think the other is doing it wrong
The real difference isn't the tutorial approach - it's that Python tutorials assume you want to build something useful, while Lisp tutorials assume you're ready to question the fundamental nature of computation itself. Python says 'here's how to print'; Lisp says 'here's why printing is just a side effect in the grand tapestry of lambda calculus.' By the time you finish a Lisp tutorial, you've either achieved enlightenment or you're debugging macros that generate macros at 3 AM, muttering about homoiconicity
Python 101: print('hello'); Lisp 101: SICP speedrun where Tower of Hanoi is the unit test for your meta-circular evaluator
Python 101 prints 'hello'; Lisp 101 writes a macro that solves Tower of Hanoi during read-time, then bikesheds tail-call semantics
Python tutorials spoon-feed dicts; Lisp drops Hanoi to cull herds unable to tail-optimize their way out of infinite recursion
c: calculate this text file of employee salaries Comment deleted
lisp: let's build lisp Comment deleted
haskell: quicksort, it's always quicksort Comment deleted
And then it's never actually quicksort. https://www.informit.com/articles/article.aspx?p=1407357&seqNum=3 Comment deleted
Interesting read, thanks, not often you find someone meaningfully singing the virtues of c++ Comment deleted
Co-author of the D language by the way. https://en.m.wikipedia.org/wiki/Andrei_Alexandrescu Honestly my favourite take on C++ is https://bartoszmilewski.com/2013/09/19/edward-chands/ Comment deleted