| Yeah—as a TCL fan, I agree. Comparing implementations of common coding tasks with other languages doesn’t highlight TCL’s strengths or, really, its purpose. Personally, TCL fits a niche like QBASIC did. QBASIC was the shortest path from brain -> code drawing on a monitor. Literally 1 line to draw a shape, no initialization and not even an entry point function. TCL similarly lets you just get on with what you’re doing when you need glue code, GUI’s, and DSL’s. It is easily (even trivially) able to do things that are just a pain in other languages, especially all at once: - interop with native code (no limits on who calls who or in what order) - define GUI’s that behave well without it being a huge pain to make anything non-trivial (lookin at you, UE5) - create novel control flow that feels built-in - implement an interactive GUI debugger with breakpoints & variable watch in ~200 LOC (saw this once, it’s amazing what you get “for free”) - save or load a running program’s entire state, including code defined at runtime - detour any function, allowing you to optimize or patch on the fly - run from tiny, standalone executables so your users don’t have to install a ton of crap just to run your widget There’s more but you get the idea. It’s been around for decades for a reason :) |