Typing `C-c p d b` in my Emacs inserts this macro:
import sys; sys.stdout = sys.__stdout__; import ipdb; ipdb.set_trace()
All the benefits of a Lisp REPL and a Smalltalk debugging environment in a language people actually use. Tab-completion, dumps, breakpoints, testing assumptions/data, running arbitrary code inside a specific environ...the works.
I can use it in my virtualenvs without having to explain to an IDE what a virtualenv, a running test in Nose, a normal script, or a running web server. It's normal code so I can wrap the trace in a condition or whatever else I want.
Sometimes I toss stuff out there in the hopes of being shown something better. It's teaches me new things.
Lets take a moment to think on our poor brethren still tossing print statements all over the place though.
Also let me take another moment to call you out on the "corrupted image" BS.
Yes but, want what? What does my little ipdb snippet not do that you want?
Oh, and let me take another moment to call you out for your "corrupted image" BS.
Sorry, I've been a professional in Smalltalk since 1998, and I've never encountered a corrupted image. The closest thing I've seen to that is de-sync with source code. (Which you don't care much about if you're using SCM, for the same reasons everyone else uses SCM.)
stateful (wtf were they thinking?) web-apps.
Same things others were thinking at the time -- you're just seeing a slice of history. People still rave over the debugging in Seaside like it's magic, though.