Python and Ruby (and, I assume, Perl) are not, in fact, untyped languages. They're very strongly typed at runtime. Dynamic typing is far more convenient (even counting the time I spend writing unit tests); having no types at all would be... well, assembly programming.
The fact that you've quoted from Programming Ruby does not make your assertion correct. I couldn't find any reference to that book saying Ruby is a pure, untyped, object-oriented language, only that it is object-oriented.
True. Dynamically typed doesn't mean it's untyped. Also, I believe that Python is following a very good approach with being dynamically but strongly typed. What the OP meant with untyped is probably dynamically and weakly typed which still doesn't make variables typeless, it only allows them to change their type willy nilly.
Untyped is, as noted above, Assembler, which happens to handle characters and numbers exactly the same and if *you* don't know what they are at any given time, it doesn't know either, nor does it care. That'd be not convenient but rather annoying ;)
I prefer untyped. They are more WYSIWYG and have less unexpected stealth side-effects caused by the hidden type-flags that typed languages use. But there are not many common languages that are fully untyped. Even though some are untyped at the scalar level, they still use a hidden type flag to mark scalars versus structures (like arrays). But untyped at the scalar level is close enough.
Discussion (9)
More convenient... but necessarily better in the long run
Python and Ruby (and, I assume, Perl) are not, in fact, untyped languages. They're very strongly typed at runtime. Dynamic typing is far more convenient (even counting the time I spend writing unit tests); having no types at all would be... well, assembly programming.
You say "tomato"... I say "untyped."
"Ruby is a pure, untyped, object-oriented language..." - from Programming Ruby by Dave Thomas and Andy Hunt.
I think you're saying tomatoe, not tomato.
The fact that you've quoted from Programming Ruby does not make your assertion correct. I couldn't find any reference to that book saying Ruby is a pure, untyped, object-oriented language, only that it is object-oriented.
You can find the reference to it here:
http://www.pragmaticprogrammer.com/articles/ddj_ruby.pdf
It's on page 2, second paragraph...
So untyped is synonymous with dynamically typed now? When did this happen? With the 'Programming Ruby' authors?
Ahh, the fluidity of language.
True. Dynamically typed doesn't mean it's untyped. Also, I believe that Python is following a very good approach with being dynamically but strongly typed. What the OP meant with untyped is probably dynamically and weakly typed which still doesn't make variables typeless, it only allows them to change their type willy nilly.
Untyped is, as noted above, Assembler, which happens to handle characters and numbers exactly the same and if *you* don't know what they are at any given time, it doesn't know either, nor does it care. That'd be not convenient but rather annoying ;)
I think they are convenient, but unfortunately I also think they are more susceptible to bugs.
I prefer untyped. They are more WYSIWYG and have less unexpected stealth side-effects caused by the hidden type-flags that typed languages use. But there are not many common languages that are fully untyped. Even though some are untyped at the scalar level, they still use a hidden type flag to mark scalars versus structures (like arrays). But untyped at the scalar level is close enough.