the blog
Back to -Blog

Ruby IntelliSense and Debugging - not to mention the boring bits...

It’s not all fun but it’s got to be done anyhow...
by Huw Collingbourne
Wednesday 27 September 2006.

We’ve now arrived at a point in the software development process which is simultaneously exciting and frustrating.

The excitement comes from seeing the results of all our hard work beginning to appear. The progress we’ve made with IntelliSense – real IntelliSense, not just drop-down lists of methods which may or may not be appropriate to the object at hand – has undoubtedly been one of the big ‘highs’ in recent days. When we started work on this we honestly didn’t know how much could be achieved. The dynamic nature and complex scoping rules of Ruby make it extraordinarily difficult to program ‘real’ IntelliSense. But we now have an IntelliSense system in our latest beta of the Developer Edition which is capable of working out the appropriate methods and variables of a given class or object taking into account lots of messy stuff such as inheritance, encapsulation, modules and mixins. For a more detailed backgrounder on this see Dermot’s articles HERE and HERE.

But, as I said, it isn’t all excitement. Far from it… There is also a great deal of frustrating, slow, tedious work being done at the moment. Errors have to be more thoroughly checked, exceptions have to be handled better, error messages need to be more helpful, any ‘mistakes’ made by users (entering non-existent file names into dialogs or setting inappropriate values in property pages) all have to be dealt with in a way that – preferably – doesn’t cause the software to blow up! In short, all the messy, time-consuming, frankly boring work which transforms nice software into professional-quality software, has to be done, verified, and tested (repeatedly)…

The really frustrating thing about doing all this work is that nobody will even know you’ve done it – unless you make a mistake. Sure, people will notice if the software bombs out when they enter the wrong type of data or an error message pops up saying something inscrutable such as “Error Code1”.. But if we get it right – if we really do trap all these potential mistakes before they cause any problems – nobody is going to say: “Hey! I really liked your exception handling!”

Just like documentation, all this ‘hidden’ stuff – the checking, error-handling and so on – is (in our view, anyhow) an essential part of the development process. With every iteration of the beta software, we hope to smooth off more and more of the rough edges. There are certainly plenty more things to be fixed before we are prepared to call this a full ‘Version 1.0’ release (and yes, for the time being, you will still occasionally see less-than-helpful error messages). However, we’re getting there slowly, improving, rewriting, smoothing and fixing as we go along.

At least, even when I get frustrated by the amount of time and effort it takes to do all the tedious stuff, I take consolation from the really exciting things we’re doing too! Getting the IntelliSense right has been a real kick. The fast debugger will be the next biggie. And after that there’s the…

...ah, but I’m told that I’m not allowed to talk about that one yet… ;-)

Bookmark and Share   Keywords:  development
© SapphireSteel Software 2014