7 ms·
One of the insidious things about debuggers is that they let you be lazy when reasoning about the code you've written. When you don't have a debugger, you need
by dmethvin 11y ago
One of the insidious things about debuggers is that they let you be lazy when reasoning about the code you've written. When you don't have a debugger, you need to be more careful about what you do and really understand the complexity of your code, because a misstep when writing the code can take hours to remedy. With a bunch of safety nets at hand, you feel like you can just blow out some code and work it out via the compiler and debugger later.
There's no doubt that better tools have let us be more productive, but in the process we understand the code we write less deeply than we otherwise would, because we are required to spend less time contemplating it.
- unusximmortalis 11y agoone of the few that got it... :)
- iofj 11y agoLet me just replace debugger with supermarket. Hopefully you will see how this is a stupid argument : One of the insidious things about supermarkets is that they let you be lazy when getting food. When you don't have a supermarket, you need to be more careful about what you do and really understand your food, because a misstep when collecting food can take lead to death. With a bunch of safety nets at hand, you feel like you can just blow out and get some food and work it out via diets later. There's no doubt that better tools have let us be more productive, but in the process we understand the food we eat less deeply than we otherwise would, because we are required to spend less time contemplating it. Now do the same replacement for compilers, as they seriously lower programmer's understanding of what happens in their program. Operating systems, because they prevent most programmers from knowing how they're using hardware resources, and therefore lead to suboptimal resource usage. It's absolutely true what's being stated here. Yet when you apply it to anything else it shows it's utter stupidity. Without tools we are less, it's as simple as that. Doesn't particularly matter what tool you're talking about, debuggers or supermarkets or cars. Let me tell you the one advantage that producing throwaway "software" that is 3 page webpages, at most, with 2-3 features. The one property this has is that it's cheaper. Due to a horrific accident of history it has an easy and mostly idiot-proof distribution system it also pays more. I would also like to point out that when desktop apps were the norm, and an environment without debuggers just simply didn't exist, desktop software was large bodies of code where you could fill books with their feature list. In fact people did [1]. Today a webpage with 5 screens is considered a lot. Not doing massive code reuse was considered lunacy, where now nobody does it. But let's not kid ourselves. Software 10 years ago beat the crap out of webpages and android apps in features, documentation, ... everything. [1] http://www.amazon.com/CorelDRAW-X6-The-Official-Guide/dp/0071790071 http://www.amazon.com/CorelDRAW-X6-The-Official-Guide/dp/007...
- overgard 11y agoI've heard this argument a lot, but I've never really bought it. It implies most bugs can be avoided by being super careful. Most bugs aren't a result of carelessness, and if you spend 20 hours staring at each line of code you write, I guarantee you'll still write software with bugs. The only thing the debugger changes is how fast you find it. And I say this working in an area where debuggers either kind of suck or are limited (graphics programming), so I have plenty of experience working on complex systems with no debugger. Believe me, I do this exact painstaking thinking when I write a shader (no break points or even print statements), and yet the shader code I write is about the same quality as any other code I write, it just takes longer.
- Retric 11y agoAt one point I worked on a large, complex, and legacy code base averaging less than 1 bug per year without a debugger. Granted, now days you can take the debugger from my cold dead hands, but I also don't really understand the code nearly as well.