I skimmed it very quickly, but quite a bit of that 'defense' of Tcl seems to be assuming that the problem with "everything is a string" is performance. It isn't.
There are very good reasons that stringly typed programming is frowned upon and 'performance' is very seldom one of them.
There's also seems to be a weird assumption that everthing-is-a-string means that you don't have to think about types. It's actually the exact opposite since now you don't have types for the compiler/runtime to help you to combine values in well-defined ways.
(I realize that the thing was written ages ago and we/the author may have learned a thing or two in the mean time.)
The problem with stringly typed languages is that they don't fail fast or clearly. You end up having to spend more time debugging and diagnosing weird behavior when things go wrong and less time actually productively writing code.
This is a problem with weakly typed languages in general, but stringly typed is the nadir of weakly typed.
The problem increases geometrically with the size of the software system - you can't make building blocks to build other software on because the foundations are too unstable, so the only thing that really works is short programs that don't do very much - or, as some people put it, "toys".
He mentions strict format checks as a way to offset that, but I don't think that's nearly enough.
There are very good reasons that stringly typed programming is frowned upon and 'performance' is very seldom one of them.
There's also seems to be a weird assumption that everthing-is-a-string means that you don't have to think about types. It's actually the exact opposite since now you don't have types for the compiler/runtime to help you to combine values in well-defined ways.
(I realize that the thing was written ages ago and we/the author may have learned a thing or two in the mean time.)