February 16, 2026
String Wars: Back to the 90s
picol: A Tcl interpreter in 500 lines of code
Tiny 500-line throwback hits GitHub, sparks 'everything is a string' nostalgia vs Python angst
TLDR: Antirez archived his 500‑line Picol Tcl interpreter on GitHub, reviving a 2007 demo of simple, teachable design. Comments split between “everything is a string” nostalgia, JimTCL one‑upmanship, and doubts about Tcl’s relevance versus Python/Lua—making a case for tiny tools versus modern feature creep.
Developer antirez just resurrected his 2007 micro‑project: Picol, a tiny Tcl-like interpreter crammed into 500 lines of C, now safely parked on GitHub. It’s an interactive little throwback that can run loops, math, and even recursion—more “teach you how interpreters work” than “take over the world.” And when one reader noted the original blog vanished, another swooped in with the Wayback Machine save, cue collective nostalgia.
Then the comments detonated. One camp, led by anthk, went “JimTCL has more features,” basically declaring a tiny-language bake-off. Another camp asked if Tcl is still alive beyond chip foundries, while Python and Lua lurked in the wings. The loudest chorus: “everything is a string” evangelists cheering Tcl’s delightfully weird simplicity, with iberator roasting modern Python’s feature creep and “young internet javasceipt devs” stuffing in bells and whistles. Jokes flew about writing full apps in 500 lines versus installing 500 packages; someone quipped strings are “turtles all the way down.” Antirez dropped a side link to aocla, flexing minimalist cred. Verdict? A cozy flame war: minimalism romantics vs “use the bigger toolbox” pragmatists, plus a whole lot of retro vibes. Also, a few skeptics asked if anyone would actually ship new code with Tcl.
Key Points
- •Picol is a Tcl-like interpreter in about 500 lines of C, originally released on March 15, 2007 and now archived on GitHub.
- •It features a hand-written parser similar to Tcl’s and an evaluator that supports interpolation, command substitution, and variable substitution.
- •Supported language features include procedures with returns, if/else, while with break/continue, recursion, and lexical scoping via call frames.
- •Built-in commands cover set, arithmetic (+, -, *, /), comparisons (==, !=, >, <, >=, <=), and puts; examples include recursive Fibonacci and looping output.
- •Picol provides an interactive shell, can be compiled with gcc, and executes scripts from files; its parser is around 250 lines, highlighting manual parsing techniques.