3 ms·
There are two areas I repeatedly see people touting that don't use a debugger. 1) Situations where debuggers are completely unable to be of any help. Such as
by corysama 10y ago
There are two areas I repeatedly see people touting that don't use a debugger.
1) Situations where debuggers are completely unable to be of any help. Such as debugging distributed messaging.
2) Situations where someone is refining an specific piece of software for so long that they have every aspect of the code worn deep into their memory.
1 is pretty common in web development and web developers talk a lot, so you hear a lot of people talking about it. 2 is something you only hear about from highly respected developers working on highly respected projects. That gives the impression that it's something respectable people do.
Unfortunately, 2 is not a situation that most people are in. In my experience, most people work in projects that involve too many people changing too much stuff too fast to burn anything into memory. These projects probably won't survive more than a few years. And, if the resumes I see are any indication, most people won't stick around on any company -let alone project- for more than a few years.
For the majority of people, powerful debuggers can be tremendously valuable. The two biggest issue blocking that value are 1) many development environments have pitiful-if-any debugging support and 2) a lot of developers react to their crappy debugger situation by assuming debuggers in general are crap and that developers should be macho enough to not need them.
- ctvo 10y agoThe first statement is not true. Web developers use debuggers for front and back-end work just as much as anyone else. It's probably why Chrome and its developer tools are so popular among that group.
- vardump 10y agoThose tools that help with distributed messaging are logging or sugar coated logging. Logging can be a part of a debugger, but it's not the core reason why debuggers are used. Usually "debugger" refers to running a controlled portion of a program, to some specific position is reached (breakpoints, stepping) or until something in program state is true. When the condition is met, the debugger suspends execution. Debuggers also offer ability to inspect program state. Chrome developer tools can do request logging. It can log the HTTP requests, timelines, Javascript console, etc. It also contains debugging tools for Javascript, but those are rather unlikely to help with debugging distributed messaging.
- ctvo 10y agoWe must be talking about two different audiences then, because web development in my experience has little to do with distributed messaging. Most web developers work in JS for the front-end -- they use Chrome to debug client behavior. Most also write the layer in the back-end that communicate with databases and other data sources and handle business logic. They use debuggers for their language to follow program flow and inspect values. Once their layer needs to communicate with other systems or do anything with distributed messaging, their responsibility ends and the need to debug the issues of the other systems becomes someone else's problem.