Why You Should Not Use Tcl (1994)
Google Groups no longer supports new Usenet posts. Richard Stallman advises against using Tcl for serious programming due to limitations. Users debate Tcl's suitability, citing its extendability and similarities to Lisp.
Read original articleGoogle Groups no longer supports new Usenet posts or subscriptions, but historical content remains viewable. Richard Stallman, from the GNU Project, advises against using Tcl for serious programming due to its limitations. He argues that Tcl was not designed as a real programming language, lacks essential features like arrays and linked lists, and is slow for complex programs. Stallman suggests using two languages with different syntaxes instead. Some users disagree, pointing out that Tcl can be extended and embedded easily, and improvements in performance may be possible. They also highlight Tcl's similarities to Lisp and its readability compared to other languages. Despite differing opinions, the debate continues on Tcl's suitability for various programming tasks.
Related
Subject: Re: Hang on, isn't Forth out of date now? (1996)
Brad Rodriguez discusses Forth's relevance, emphasizing its simplicity, efficiency, real-time testing, and speed. He highlights its comprehensibility, suitability for embedded systems, interactive debugging, extensibility, abstraction, and productivity, concluding its ongoing value.
I Probably Hate Writing Code in Your Favorite Language
The author critiques popular programming languages like Python and Java, favoring Elixir and Haskell for immutability and functional programming benefits. They emphasize personal language preferences for hobby projects, not sparking conflict.
A brief interview with Awk creator Dr. Brian Kernighan
Dr. Brian Kernighan, a prominent computer scientist, emphasized the importance of associative arrays in Awk, designing small programming languages for beginners, and automating tasks through simple language designs. His insights influence programming education.
Cloud computing is a trap, warns GNU founder, Richard Stallman (2008)
Richard Stallman criticizes cloud computing as a marketing ploy, warning against data privacy risks and vendor lock-in. He advocates for user control and freedom-respecting programs over reliance on external web applications.
A brief interview with Tcl creator John Ousterhout (2023)
John Ousterhout, creator of Tcl, highlighted its embeddable nature and "everything is a string" philosophy. He reflected on missed opportunities, including Tcl as a browser language. Ousterhout emphasized the importance of practical utility in widely adopted languages like Tcl and Python.
1. The project was in ancient C++ for many reasons and even the most modern C++ is at least 5x more difficult to write code in than TCL. So why write code that runs once in the life of the program in C++? There's often plenty of code that doesn't benefit from being compiled - that looks for a configuration file, reads and validates lines and calls functions to build initial datastructures...setup code, string handling. You save a millisecond or two by doing it in C++ but only once in a program that runs for hours - why waste all that dev/debug effort?
If you choose judiciously then you can end up doing a lot of your performance insensitive, setup-type code in TCL and a great deal of the time you'll be able to debug and fix bugs in an interpreted language without recompiling anything.
2. Python, though great, has a global interpreter lock. TCL fits in with threaded programs excellently. This can be a make-or-break feature.
3. TCL's syntax which I dislike, seems to map excellently into C - calling C from TCL just seems a lot easier than in python.
A brief interview with Tcl creator John Ousterhout (2023) - https://news.ycombinator.com/item?id=41017367 - July 2024 (56 comments)
Previous discussions of current submission:
Why you should not use Tcl (1994) - https://news.ycombinator.com/item?id=14944103 - Aug 2017 (52 comments)
Why you should not use Tcl (1994, "The Tcl War") - https://news.ycombinator.com/item?id=7071479 - Jan 2014 (1 comment)
Of course, as programming language, Scheme is much better, and it is the language I use for day to day work. In that respect Stallman is right. However he missed a few important points and that is why Tcl is still so popular, probably more so than Scheme, if you just count users. Tcl didn't just bring a language to the table, it also has an excellent implementation which always was freely available and could be embedded into any software project. It has a nice range of very powerfull tools, Tk obviously the most fameous one. Still today it is one of the most popular GUI toolkits. And that is where Stallman with the GNU project failed. Had they at that time or in the following years provided a comparable Scheme implementation, it would have been extremely popular for application writers. Assuming of course, that it had been licensed under LGPL so that any application could use it. But it took most of the 30 years after this post for Guile becoming an option there.
Of course, these days, Python also has Expect-like capabilities, so.
Other than that, it’s fine…
Tcl achieved many things, including the Tkinter GUI with a native look in Windows. Other projects like Python rely on it in the shrinking set of included batteries.
I would prefer if Lisp had won, especially in scientific code, but the C-API is not good enough. Unfortunately, currently Python is popular, so one thing is clear: People want a low level C-API in C with a published low-level interface. All other attempts have mostly failed in terms of popularity, so languages that want to take on Python better take note.
https://groups.google.com/g/comp.lang.tcl/c/7JXGt-Uxqag/m/vQ...
I have seen other security theater types suggest this. What a completely stupid idea. If an attacker or even a well meaning script triggers this on the account you have sudo with you are now locked out forever.
Using fail2ban with a temp ban is enough to stop brute force attempts.
On the other hand, 1994 Tcl/Tk was the best way to create simple user interfaces, and is (IMHO) much better than current tooling.
My thoughts.
Related
Subject: Re: Hang on, isn't Forth out of date now? (1996)
Brad Rodriguez discusses Forth's relevance, emphasizing its simplicity, efficiency, real-time testing, and speed. He highlights its comprehensibility, suitability for embedded systems, interactive debugging, extensibility, abstraction, and productivity, concluding its ongoing value.
I Probably Hate Writing Code in Your Favorite Language
The author critiques popular programming languages like Python and Java, favoring Elixir and Haskell for immutability and functional programming benefits. They emphasize personal language preferences for hobby projects, not sparking conflict.
A brief interview with Awk creator Dr. Brian Kernighan
Dr. Brian Kernighan, a prominent computer scientist, emphasized the importance of associative arrays in Awk, designing small programming languages for beginners, and automating tasks through simple language designs. His insights influence programming education.
Cloud computing is a trap, warns GNU founder, Richard Stallman (2008)
Richard Stallman criticizes cloud computing as a marketing ploy, warning against data privacy risks and vendor lock-in. He advocates for user control and freedom-respecting programs over reliance on external web applications.
A brief interview with Tcl creator John Ousterhout (2023)
John Ousterhout, creator of Tcl, highlighted its embeddable nature and "everything is a string" philosophy. He reflected on missed opportunities, including Tcl as a browser language. Ousterhout emphasized the importance of practical utility in widely adopted languages like Tcl and Python.