An answer to the wrong question
There has been a lot of talk recently about Giles Bowkett who asserted that the lack of a good debugger is a feature because it prevents detrimental developer behavior patterns.
So fine, let's take out the debugger. If you have no sharp tools around, certainly you can't injure yourself. But how are you going to cut a diamond without a diamond cutter? And how do you make buildings without a bulldozer? This is like saying that since cars cause car accidents, we should ban cars.
In my opinion, this is the answer to the wrong question for two reasons.
Back in the days, steering columns in cars were rigid, and thus if you hit something straight on the steering wheel would essentially attempt to move through your head with rather nasty results. So what happened? Nowadays, steering columns are telescopic and thus will collapse when such crashes occur. So, first reason: if the tool is unsafe, make it safe in the first place.
Now, what to do about crashes? Should we outlaw cars? Well, no. What we should do however is to make a better effort at driving responsibly. Here are some things we could try: do not cut in front of trucks, do not drive through railroad crossings when the barrier is low and the bells and lights are going, do not tailgate, do not pass on the shoulder, do not drive too fast for conditions, do not carelessly change the tires and suspension of your car, remember that the street is not Gran Turismo, and if you like driving vintage cars then install safety belts on them. Therefore, here is the second reason: we ought to stop blaming the tool for our own deficiencies.
I find it amazing that the discussion is not about how to stop developers from producing crappy code in the first place. No, not at all. Apparently, that can be like it is because applications written that way are fine and dandy, and therefore this problem is not seen even as an issue worth considering. But the mere existence of a debugger? Ahhh no, what an abomination of nature!
Sorry... this argument doesn't make sense to me.
What I would say is much more likely to be going on is that teaching people to be good developers is hard, and that since we shy away from that problem we choose to blame something that cannot defend itself to cover the fact that we are not addressing the real issue.
To put it more bluntly at the expense of restricting the context of applicability of the following argument: a nation in which giving people enough mastery of mathematics so that they are able to use them in real life problems is not deemed as being important or desirable will find it much harder to produce quality computer programmers, much less computer scientists or mathematicians. And why would that kind of education be a prerequisite to having responsible developers that in turn might think it is acceptable to rely on the debugger when their trained judgment tells them to?
Just my two cents here.

0 comments:
Post a Comment