Debugging

Giles Bowkett wrote an article about how Ruby’s weak debugger support is due to the Test Driven Development (TDD) and Behaviour Drive Development (BDD) nature of the language.

As a result of the post, many people wrote counter posts (Giles names this one the most lucid: Patrick Collison, another one is by James Robertson). I personally find the responses not so bad though they are emotionally loaded…

While I agree that TDD and BDD do reduce the need for a debugger I must say that I really do not agree to the statement that you do not need a debugger, that the debugger actually is a step backward in the development process. Every professional environment that I have been in where testing was a major part of the development process also had a major need for good debugging tools.

Especially when working in a larger groups and with 3rd party dependencies the need for proper tooling only grows. It is a plain fact that you can *not* test for every possible scenario when it comes to the full integration of your software, 3rd party libraries or even 3rd party services.

Besides the ‘bug’ reason the next reason for having good debuggers is that unit tests will not tell you how code interacts. If you join a project which has an existing code base the debugger is your friend in finding your way around the code and seeing how everything interacts.

Although most debuggers are not as usefull as the smalltalk one I must stand with the statement that they are an invaluable asset to any development toolchain and lacking good debugger support is actually a severe lack in any professionals’ toolchain.

Post a Comment

Your email is never shared. Required fields are marked *

*
*