I am trying to get a programming task done using a version of BASIC that produces super-fast code but has a crummy debugger. Execution speed is a big deal for what I’m doing, and I already know how to use this compiler, so I don’t really want to switch. And I don’t particularly like Visual Basic — the obvious alternative — because it’s relatively complex and probably doesn’t produce code that runs as fast.
However, VB has an excellent debugger, and right now I am dead in the water because I can’t figure out how to get a particular bit of code to run. I assume that there is a subtle syntax error or variable mismatch, but my debugger doesn’t provide enough info to diagnose such problems without a lot of trial and error. I don’t think I would have had such a difficult time if I were using VB.
So the tradeoff is between the time I spend debugging and the time I save by using the fast-executing code generated by this hot-shit compiler. Maybe there would be no problem if I were a better programmer, but I’m not, and I’m not sure that I wouldn’t have been better off overall if I had used VB from the start.
I’m also not sure who is the idiot here. Probably it’s me. The compiler designer is merely doing what he does best, he represented the product accurately, and I chose to buy it, so I can’t blame him. But maybe I shouldn’t have been so attracted by the siren song of fast code at the expense of easy debugging. (And maybe I should have realized that a specialized product designed by an individual is likely to have flaws reflecting the designer’s strengths and weaknesses. For example, a brilliant designer of compilers might see less need for a first-class debugger than would a marginal programmer like me.)
Compilers are like vehicles and other technology in that speed is not necessarily the most important feature from a user’s perspective. Speed needs to be balanced against ease of use and other characteristics, and each user will have his own preferred set of tradeoffs.