Debuggers = wasteful timesink??
-
What a load of crap! Debuggers are one of the most useful development tools. The ability to step through your code, line by line to make sure it is doing what you want it to do, rather than what you thought you told it to do, is one of the greatest assets of modern development. Obviously this guy hasn't written much serious code in his time, otherwise he wouldn't be talking out of his arse like this. I teach a lot of classes in C++, Java, C#, TDD, XP, Patterns, etc Ah, there we go. Teach. Probably not doing a lot of real world development then. with his or her nose buried in a debugger, painstakingly stepping from line to line, examining variables, setting breakpoints, and generally wasting time. The bug they are tracking could be found through simple inspection of the code. Modern development is far too complicated to rely on just looking at the code. The debugger lets you inspect the code and also check the results you are getting. I find this makes finding bugs so much easier, when you can see what's actually going wrong. Michael Blue canary in the outlet by the light switch Who watches over you Make a little birdhouse in your soul - They Might Be Giants
Michael P Butler wrote: Ah, there we go. Teach. Probably not doing a lot of real world development then. As far as I can remember, absolute newbees do not get the point of line-by-line execution by a runtime. If they actually see a debugger tracing through their code and see the value of vars change, something inside their heads makes "click" (basically, this way you just set the troff flag in their brain's status register and off they go ;) ). ______________________________ Java: The living proof Moore's law won't solve all your problems
-
Well, there are several things going on here in this article that are easy to overlook. First off, the guy lures you into the idea that incredibly powerful tools waste time because they're so hard to learn, having so many features. Good grief. When I debug something, I set a breakpoint and I hover the mouse over a variable to see its contents, and I single step to see the flow. That's about it. Do I use all those other fancy features on a regular basis? Of course not! I choose the features I need to efficiently solve the problem at hand. The second problem with this commentary is more insiduous. TDD merely shifts the time spend in debugging from the back-end to the front-end. Essentially, with TDD, you are "debugging" the code first, then writing it. In my mind, TDD is still debugging, but it uses a different tool--the unit test. This fellow seems to fail to recognize this. If you look at programming as two tasks--writing code and testing code (which includes debugging it), he's still spending the same (and probably more) time debugging. He's just doing it before writing code, rather than after. Finally, using students to examplify the problem with debuggers is like saying jumbo jets are bad because your Cessna pilot can't fly it. They're students for a reason. I remember wasting time with a debugger because my skills at reviewing my own code were untrained. But guess what? The debugger became my training tool, and I began to use it less and less because I understand programming better. [edit] And I failed to mention the biggest problem of all--writing good unit tests is at least as complicated, if not more so, of a skill to learn than operating a feature-laden debugger.[/edit] Marc Latest AAL Article My blog Join my forum!
Marc Clifton wrote: First off, the guy lures you into the idea that incredibly powerful tools waste time because they're so hard to learn, having so many features. Right, he even comes along with a software development process (Extreme programming) and compares it with a tool (a debugger). People use a tool for a specific reason. It's just a tool. It does not say anything about programming abilities. In 1989 when i was programmming 68k assembly, you basically had step, step into, run-to-line, print exp, etc.. these commands haven't really changed since then. ______________________________ Java: The living proof Moore's law won't solve all your problems