Tcl
Hacker ApprovedRanked 36 of 163 programming languages by recommenders
Recommended for its simple everything-is-a-string model, Lisp-like flexibility and easy C integration; critics cite confusing quoting rules and weak data types.
Recommended for its simple everything-is-a-string model, Lisp-like flexibility and easy C integration; critics cite confusing quoting rules and weak data types.
89 people gave an opinion
- recommend it
- 74
- criticize it
- 15
- approval share
- 83%
Recommended in 12 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: recommended
- May 2026: recommended
- June 2026: recommended
- July 2026: recommended
- August 2026: recommended
- September 2026: recommended
- October 2026: recommended
- November 2026: not recommended (month in progress)
Owned for 30 years
Median of the 5 owners who said how long they have had it.
Each square is one year.
Why it carries the badge
- 74 people recommend itNeeds 10 or more, met.
- 4.9 recommenders for every criticNeeds 2 to 1 or better, met.
- Recommended in 12 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Simple everything-is-a-string model
“The tcl model of "everything is a string" makes exactly the right abstraction to create GUI frontends for CLI applications rapidly and keep them simple at the same time.”
Comment from 16 Feb 2026 in “picol: A Tcl interpreter in 500 lines of code” “it's much cleaner and the "everything is a string"-ness makes sense for a fundamentally text based medium”
Comment from 19 May 2026 in “Mini Shai-Hulud Strikes Again: 314 npm Packages Compromised” “best thing about TCL is easy syntax and that everything is a string”
Comment from 16 Feb 2026 in “picol: A Tcl interpreter in 500 lines of code” - Comment from 29 Sep 2026 in “Tcl/Tk 9.1”
Lisp-like metaprogramming and flexibility
“Its simplicity always astounded me since it seems really simplistic but at some level it's just as malleable as lisp.”
Comment from 20 Nov 2025 in “What Killed Perl?” “it shares a lot of the same metaprogramming that Lisps have - more so than the vast majority of other languages”
Comment from 30 Sep 2026 in “Tcl/Tk 9.1” “I can't fault that implementation choice when thinking about Tcl as a "Lisp but it's strings"”
Comment from 16 Feb 2026 in “picol: A Tcl interpreter in 500 lines of code” - Comment from 13 Apr 2026 in “A Perfectable Programming Language”
Stable, minimal, won't change
“Rock solid code, no surprises, was able to handle tens of thousands of concurrent bets.”
Comment from 16 Feb 2026 in “picol: A Tcl interpreter in 500 lines of code” “stable, uncomplicated and minimalist tooling that wont evolve out from under you”
Comment from 16 Feb 2026 in “picol: A Tcl interpreter in 500 lines of code” Easy C and extension integration
“Given how stable and clean the Tcl C interface has always been, it's probably a perfect use case for LLM generation.”
Comment from 29 Sep 2026 in “Tcl/Tk 9.1” “TCL had the ability dynamically load and call into .so's which was really powerful.”
Comment from 19 Nov 2025 in “What Killed Perl?” “Its simplicity and small size is key, as is its easy integration with C.”
Comment from 16 Feb 2026 in “picol: A Tcl interpreter in 500 lines of code”
What people warn about
Each mark is one comment
Grew complex over time
“Tcl evolved into something quite complex - compiling to bytecode, object oriented features, etc, etc.”
Comment from 14 Mar 2026 in “XML Is a Cheap DSL” “Tcl always had one foot in the old days and one foot in the modern era”
Comment from 29 Sep 2026 in “Tcl/Tk 9.1” String-based model shows limits
“The everything is a string approach shows its limits quite quickly.”
Comment from 30 Sep 2026 in “Tcl/Tk 9.1” “TCL doesn't have strong datatypes and that disqualifies it for me”
Comment from 2 Jul 2026 in “Red Programming Language: Static linking support” Confusing quoting and evaluation layers
“tcl requires you to understand mixing 3 different layers of evaluation right off the bat.”
Comment from 2 Jun 2026 in “Why Janet?” “it is too easy to misuse the quotation rules, leading to subtle bugs”
Comment from 2 Jun 2026 in “Why Janet?” Seen as outdated and fading
“I wouldn't necessarily pick it today but it was kind of nice in a way that's unfamiliar to me from modern development.”
Comment from 11 Jun 2026 in “FPS.cob: A first person shooter in COBOL” “TCL is practically dead, and only lingers on in the EDA industry”
Comment from 16 Feb 2026 in “picol: A Tcl interpreter in 500 lines of code”
Other programming languages people recommend
The four most recommended other programming languages, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
See all 163 programming languages, rankedWhat people said
40 of the 115 comments that mention it, newest first. Each links to the original comment.
“both AFAIK have less vulnerabilities than PHP likely thanks to smaller code size”
“the tcl consoles allow you an escape from the cad tool vendor's (usually marginal and restricted) ui”
“The everything is a string approach shows its limits quite quickly.”
“Tcl on its own is good as a configuration language, creating DSLs, or as a scripting/extension interface”
“TCL is the original extension language, and in the very hidebound electronics CAD world, has a very long tail.”
“it shares a lot of the same metaprogramming that Lisps have - more so than the vast majority of other languages”
“I love how everything is a string or can be hacked on a string”
“Tcl always had one foot in the old days and one foot in the modern era”
“Given how stable and clean the Tcl C interface has always been, it's probably a perfect use case for LLM generation.”
“everything else from Java to Tcl to ZFS was a dangerous distraction”
“the only sandboxing that works is default deny, like Tcl or Lua”
“The overhead of using languages compared to the previous is partly why I keep using bash or Tcl.”
“A remarkably comprehensive and well-written introduction to Tcl!”
“TCL doesn't have strong datatypes and that disqualifies it for me”
“But tcl 7.x and before was a pure string-based language. Everything was essentially a eval().”
“I wouldn't necessarily pick it today but it was kind of nice in a way that's unfamiliar to me from modern development.”
“Tcl is pretty good at functional-programming type stuff, and it can absolutely do anything that you could do with a macro.”
“you will be able to do all the same things without drowning in parenthesis and weird syntax”
“tcl requires you to understand mixing 3 different layers of evaluation right off the bat.”
“it is too easy to misuse the quotation rules, leading to subtle bugs”
“it's much cleaner and the "everything is a string"-ness makes sense for a fundamentally text based medium”
“This will run on Windows, Linux, MacOS, and Tcl's starkit/starpack system makes it easy to generate a single executable file”
“it felt very powerful, like Lisp but without the easy syntax”
“Tcl evolved into something quite complex - compiling to bytecode, object oriented features, etc, etc.”
“The objections to tcl I see most often seem to reflect an outdated or incomplete understanding of the language and its capabilities.”
“It can be expressive, redable, sufficiently performant, and makes it easy and fast to develop and test new features”
“Rock solid code, no surprises, was able to handle tens of thousands of concurrent bets.”
“I can't fault that implementation choice when thinking about Tcl as a "Lisp but it's strings"”
“I like tcl as an alternative to shell for any non-trivial scripts.”
“TCL has a lot of options for manipulating strings - take a look at just the built in string command for a start”
“TCL is practically dead, and only lingers on in the EDA industry”
“The tcl model of "everything is a string" makes exactly the right abstraction to create GUI frontends for CLI applications rapidly and keep them simple at the same time.”
“For instance you open a socket, write there any value you have without serialization, read it in the other side, data transfer done.”
“stable, uncomplicated and minimalist tooling that wont evolve out from under you”
“Its simplicity and small size is key, as is its easy integration with C.”
“best thing about TCL is easy syntax and that everything is a string”
“Its simplicity always astounded me since it seems really simplistic but at some level it's just as malleable as lisp.”
“TCL had the ability dynamically load and call into .so's which was really powerful.”
“Tcl got a LOT of traction. Expect was everywhere. Tk kicked ass and took names.”
“Its definitely a great scripting language and is a lot more flexible than it gets credit for.”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.