4 ms·
Not that there's anything wrong with using a debugger as a tool, but I find it hard to understand why it's such a stringent requirement for some. I've never rea
by ominous_prime 11y ago
Not that there's anything wrong with using a debugger as a tool, but I find it hard to understand why it's such a stringent requirement for some. I've never really had the need for one outside of a few instances over many languages, and I know many others that feel the same, which covers a much greater range of languages and styles of programming. Even so, I'm eagerly awaiting a good Go debugger when one arrives.
There are some being worked on, like delve (https://github.com/derekparker/delve/ https://github.com/derekparker/delve/), which might be the most ambitious, but it's only recently becoming usable. The problem is partly due to my first statement, there's not a huge demand for these in the language ecosystem, so development has been slow.
- joesmo 11y agoAfter using a proper debugger, I can almost say I'll never go back to a language without one. It's such a useful tool, I use it a lot even when writing code. I think if you asked a functional programmer to give up their REPL, they might not be so happy. The debugger is essentially the REPL of imperial languages (because a REPL by itself is not enough for imperial languages since all the state has to be set up). Also, it's extremely useful when learning a new codebase as well as actually debugging bugs. I also think it's necessary to have one for a language to gain mainstream support.
- StavrosK 11y agoI also pretty much debug crashes from just the traceback (in Python), but a debugger (pudb is awesome) has been invaluable in quickly figuring out what's breaking in third-party code. You don't have to read all of the code, just step through a bit until the crash and you're done.
- ominous_prime 11y agoYes, a stack trace at a particular point is often the most helpful bit of debugging info. I'm not sure if it would be nearly as helpful in Go to step through an chunk of unknown code that crashed, since python's execution is generally linear, whereas Go usually has a high degree of concurrency.