Halasz's closing lesson: creating a programming language is not fun to do from scratch, but the patterns are already everywhere — syntactical analysis uses pushdown automata and finite-state machines, semantical analysis uses graph traversal, regex engines compile to finite-state automata. Understanding these theoretical foundations helps Ruby programmers reason about what their tools are doing under the hood.