On IDEs and Consoles

In the religious war between the command line and IDE (integrated development environment), I’m firmly on the IDE side. Having said that, there’s no substitute for having a console when working with a dynamic language like Ruby, or Python or JavaScript, etc.

What I really want is the two combined. I should be able to set a breakpoint in my IDE and when the breakpoint triggers have access to the standard IDE inspectors (watch window, local variables, etc.). But I also want access to a console, so I can do more sophisticated debugging when needed.

This is pretty obvious stuff – Visual Studio has had a Immediate Windows for ages where you can poke around the internals or your C++, C#, JScript or VB program. Borland’s IDE’s had similar functionality, although not as easy to use.

Yet its strangely lacking in the Ruby community. I’ve tried all the IDEs – FreeRide, Arachno (my favorite), Komodo, RDT, eric3, etc. None of them can do it. And really, its not just an IDE thing, my understanding is that the VIM Ruby integration doesn’t have this either.

So kudos to Sapphire in Steel, a new plug-in that turns Visual Studio 2005 into a Ruby IDE. The integrated debugger comes complete with a Ruby console window. When you hit a breakpoint,
the console is bound to the current context. So if your code set a local variable “foo” to the value 7, just type in “foo” in the console and you’ll get back 7. You can do pretty much anything you want, including modifying the local variable.

Nice work – I have high hopes for the future of Sapphire in Steel.

Leave a Reply

Your email address will not be published. Required fields are marked *