3 ms·
> Like a Lisp it simply executes what you write without any validation beyond syntax checking But then in Common Lisp when something goes wrong you drop into t
by draven 14y ago
> Like a Lisp it simply executes what you write without any validation beyond syntax checking
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.
- wladimir 14y agoWell, dropping to the interactive prompt is a statement or two in Python. You could do that when something goes wrong (for example, in the inner, or outer exception handler of your application). 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.