Comment by antirez

6 days ago

It depends on the use case. For instance you open a socket, write there any value you have without serialization, read it in the other side, data transfer done.

The convenience of not having to marshal data over a network is certainly a use case. But I'll admit that two of the worst programs I ever saw were written in Perl and TCL. Somehow just a big jumble of inscrutable regexes.

When "everything is a string" then you have no choice but to literally treat everything as a string. Painful. Very cool project though.

  • That sounds more like someone who over-uses regexes - the developer is the problem, not the language

    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.

    • The objections to tcl I see most often seem to reflect an outdated or incomplete understanding of the language and its capabilities.

      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.

  • > When "everything is a string" then you have no choice but to literally treat everything as a string.

    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?