I'm always surprised when people poo-poo iPython. This is especially prevalent in #python.
I've used REPLs for a handful of languages and without a doubt, iPython is the best interactive shell available for any language that I have ever used, apart from slime-repl mode in emacs, though that is somewhat a different animal. iPython is ridiculously flexible and full-featured, and one of the few code-editing tools I can use that doesn't instantly make me miss emacs.
I will say that Haskell's shell (the name of which I can't recall) is pretty great but IMO doesn't touch iPython.
edit: Oh, far and away the best improvement to iPython 0.11 is instant exit() :P No more:
Oh right, the name I was trying hard to remember was the wrong one, the ghci's package management, Cabal, which is awesome. I'd love to have something like that in ipython just for the gee-whiz factor.
We used IPython's parallel processing features at (first (take-right jobs 2)) for load testing. One machine would run ipcluster and people who were not doing CPU or network intensive tasks would fire up ipengine that connected to the ipcluster box.
By doing that they would volunteer their machines to the cluster pounding away at the big server that was being tested.
I've used REPLs for a handful of languages and without a doubt, iPython is the best interactive shell available for any language that I have ever used, apart from slime-repl mode in emacs, though that is somewhat a different animal. iPython is ridiculously flexible and full-featured, and one of the few code-editing tools I can use that doesn't instantly make me miss emacs.
I will say that Haskell's shell (the name of which I can't recall) is pretty great but IMO doesn't touch iPython.
edit: Oh, far and away the best improvement to iPython 0.11 is instant exit() :P No more:
>> exit() Are you sure? ([y]/n)