What? That's the worst thing about TCL.
What? That's the worst thing about TCL.
Data is Data. It's kinda object programming as visioned in the 70".
So easy and trivial language.
The opposite surely? TCL is practically dead, and only lingers on in the EDA industry (which has zero taste). Virtually every successful language today has at least a few different basic types for numbers, arrays, strings, maps and so on.
Number: string of digits. List: strings separated by space. Dictionary: key value pairs in a list.
If you try to pass a list into a function expecting a string it will just treat the list as a string. No type error or anything, not even at runtime.
CMake is the same. Terrible design. Real types are useful.
When "everything is a string" then you have no choice but to literally treat everything as a string. Painful. Very cool project though.
TCL has a lot of options for manipulating strings - take a look at just the built in string command for a start: https://www.tcl-lang.org/man/tcl8.4/TclCmd/string.htm
I have seen terrible code in Python, C, and more.
As with many interpreted languages, maybe it's just too easy to iterate interactively with code until it "just works", rather than taking the time to design the code before writing it, leading to perception that it is a "write-only" language.
However, despite its reputation, even Perl can be written in a way that is human-readable. I agree with you that it is more a reflection of the programmer or the work environment than of the language itself.
As someone who has been developing tcl almost daily for more than 30 years, both object oriented and imperative code, I have not found it necessary to think this way.
Can you explain what leads you to this conclusion?