Overview
Explore the concept of "wishful thinking" in programming languages through this 42-minute Strange Loop Conference talk. Dive into the world of Racket, a language designed for building cooperative languages, and discover how to solve real production problems by fusing multiple Domain-Specific Languages (DSLs). Learn to reshape and mold your language to fit the domain, creating towers of languages that approach the desired discourse. Follow along as the speaker implements the FastCGI protocol in Racket, demonstrating how to break free from default constraints and employ innovative techniques. Explore concepts such as prototypes with Lua-style metatables, concise syntax, single and multiple inheritance with generic dispatch, multimethods, and even beyond the Metaobject Protocol. Gain insights into creating languages of patterns to avoid bit twiddling and developing web frameworks that speak the language of the web while allowing desktop app-style coding. Embrace the power of building better languages and turning wishful thinking into reality.
Syllabus
Intro
Background
Procrastination
The typical defense
Bottomup
Topdown
wishful thinking
our languages are illprepared
lists can help
Racket
Racket Manifesto
Defining Feature
Languages
Metaprogramming
Racket Documentation
Racket Framework
Recap
Two problems
Good bad code
Bit syntax
Custom patterns
Model the protocol
Metatables
Tables
Prototypes
Meta methods
If undefined
Implement tags
Construct tables
Procedural values
Racket with tables
Meta tables
Tables as procedures
Fast CGI
Conclusion
Taught by
Strange Loop Conference