What? In what sense in Ruby primitive?
What? In what sense in Ruby primitive?
Some of these aren't weaknesses. Others are.
The idea is that Haskell's type-based, lazy approach allows for a more high-level approach of specifying what you want instead of how you want it executed. I'm not sure it always succeeds in that, but that's another matter. It's an interesting language nevertheless, with elegant code, but if I need to build something quickly I fall back to Python (which is "primitive" in the same sense as Ruby).
But then in Common Lisp when something goes wrong you drop into the debugger and can look at your code's state. In python/ruby my program just goes poof! and I get a backtrace. Then I'll either have to add statements around the suspected cause of the bug to inspect the environment or restart with a debugger and retrigger the bug.
The Common Lisp Way(tm) is also available in Smalltalk; I think those systems give you the tools to deal with their dynamic nature, while python and ruby (and others as well) do not.
And then languages with more static type systems can give you the tools to deal with their static nature. In Haskell that would be powerful type inference and expressive type system.
There's also tools for Python where you can browse/modify state of a program remotely through a debugger, for example winpdb, others included in IDEs.
Overall, dynamic debugging support is quite good, if you are willing to search around a bit. But probably not as good as CL or SmallTalk, if they're especially engineered for these kind of things. I don't know enough about them to comment on that.
You know about Typed Racked and possibly other efforts, right?
Compared to the VMs of Haskell, Erlang or the JVM one might call this primitive.
(I definitely wouldn't call it amazingly primitive and I am aware there is JRuby / Jython)