Early in the thread there was a lot of this attitude. My impression over the course of the discussion is that most people have come to the conclusion that, even if they don’t use debuggers for their work, enough people find them valuable that’s it’s a feature worth having.
If this is in reference to my post, then you are misreading it. I said that I haven’t needed a debugger for Julia so far. It was a reaction to some statements that Julia could not be used without a debugger. I meant it can, and it is quite usable without. That does not mean I implied a debugger was not needed, I would certainly welcome it in my workflow if it was available.
In my Matlab code I would be in a debugger more often than not. Some of my C and C++ code presented challenges that would have been unsolvable without gdb. But different languages offer different experiences, and Julia is pretty special in this respect.
Those statements were way up in the thread. If have the patience, you can read from the start.
No, not based on your post. You asked if anyone was saying “a debugger isn’t useful because I don’t use a debugger.” People weren’t saying this exactly, but much earlier in the thread there were a bunch of opinions that amounted to “there’s no need for a debugger, one can do X instead.”
This is a long thread and I didn’t reread it, but I’m reasonably confident in this characterization. I don’t think we need to relitogate it, my sense is that the people with this position stopped arguing it. Whether they changed their mind or just don’t think it’s worth fighting against the tide of people who clearly want a debugger, I have no idea.
FWIW I’ve never used a debugger either, but mostly because I never learned to. And I want convinced but the people saying other approaches are better. I’ll keep using Julia whether or not it gets one, but if it gets one, I’ll probably learn to use it (still haven’t tried rebugger, though really looking forward to trying it)
Well I said something probably closest but even this is a complete mischaracterization of what was said. Basically, debuggers are nice but it’s not the end of the world if you don’t have one. But also, if you are overly reliant on debuggers, you’re probably doing things wrong. The reason is that if you’re periodically hand-checking correctness in a way that introduces local state, you’re not going to catch all of the errors as they occur and really work through all of the cases. In order to actually find out how things are working and check all possible cases, you need to be writing tests that check all of the cases so that way results aren’t stored in your head for how the code worked a few months ago. A mixture of testing + value printing is sufficient for finding and fixing errors while just having a debugger is not. When we get a debugger again (or just Rebugger, or ASTInterpreter2 integration into Juno for v1.0, etc.) it’ll be cool and useful, but it won’t change very much. There are people who were trying to say that an interactive language where you can modify any piece of a function at well is impossible to introspect without a debugger, and that’s clearly just FUD (in fact, most of a debugger for compiled languages is essentially Julia’s REPL…)
You’re right, this is closer to “there’s no need for a debugger, one should do X instead.” I apologize for the mischaracterization
Are you honestly saying “there’s no use for a debugger…”
“… you can do X instead,”
…is a complete mischaracterization of what was said??? Seems pretty close to me.
Obviously not. In fact, that misinterpretation is so bad that it directly contracts what I wrote down…
GG. So please don’t fake quote me saying “there’s no use for a debugger”: you wrote that.
Let me try again. Test driven development, interactive checking state, and printing/logging are food and water. Debuggers are beer. It’s nice to have and serves a good purpose in a well-balanced life, but when the doom and gloom clan comes around saying Julia will fail and no one can adopt it because there’s no debugger, I do have to scratch my head a little bit and remind them that part of their over-reliance on debuggers is due to ignoring good coding practices. This comes up all of the time in workshops with newer programmers attempting to double check results in a mutable state, losing all of their checks every time they’re out of debug mode. These tools are nice to have but easy to overuse in a way that causes its own problems. And that’s still not close to saying that one shouldn’t use one, it’s that one should use one correctly.
@ChrisRackauckas, Using the same logic one could say
C is the bread and water and Julia is the Beer. So why are you trying to convince others they don’t need a beer while you do enjoy the Julia Beer ?
Of course one could say this is not a good example but it only means all of this is a point of view (Debugger as a beer) and not ground truth.
I think that if someone is an advanced programmer (The skill, not the profession) then he can get away without Debugger easily using other techniques.
Moreover, when you develop something which require large scale code you use techniques which doesn’t require Debugger (Unit Tests).
But many of the people who use Scientific Programming oriented languages (Julia, MATLAB, R and Python in its scientific programming orientation) struggle with the programming part (It is something done because it is a must in order to implement idea) and then Debugger is like a training wheel.
It is not the beer, it is something that without it you can’t get from A to B literally.
Take me for instance, I don’t know how to program
Yet give me Visual Studio and I will be able to implement the code I need.
For me, those who write
Vim and such are magicians…
So I’d say for some people Debugger isn’t the beer.
It is much more than that.
My Point of View
Julia at the moment attracts people which are highly capable (In many ways, Programming Skills and / or Learning Skills and / or very capable in general).
So for now most of the eco system could live without Debugger and it didn’t stop anyone from achieving his needs.
Now, with Julia 1.x the people behind Julia will try to approach wider audience of users which their capabilities variance is much higher. Then the tools around the language (IDE) will be the focus (Or more focused on?).
So all in all, I think Debugger is coming .
If people don’t understand the concept below, this thread will never end.
CONCEPT: A debugger is a tool that was created for solving exceptional problems termed bugs, which are not introduced intentionally by the act of writing code. Many people, however, ignore or under-use good programming practices that were mentioned above by me and by @ChrisRackauckas like unit tests, test-driven development, etc, to avoid bugs, and use debuggers as a means to write code. Stepping into each line of the source as they implement the algorithm.
I wish I could invite participants of this thread to go back read all the comments from the very beginning to understand how they match this concept, but this thread is so off-topic at this point that I prefer to kindly ask moderators of this forum to close it, and avoid more flames.
Yes, this is exactly the sort of arrogance that was very much on display further up in the thread. Thanks for reminding us.
A debugger is first and foremost a tool for stepping through code in order to understand how it works, and what’s going on. That helps solve bugs, but it helps even more for exploring and learning how a codebase works, your own, or someone else’s.
I’ve mentioned this before.
Tests are fine for discovering bugs, making sure you avoid them. This is almost orthogonal to what debuggers are good for.
So you kind off make a provocation with YOUR debugger concept and next ask for moderators to freeze this topics to avoid flames!!!
BTW, I saw no flames but instead opinions of several people who seemed to not have had used debuggers.
This is not my concept of a debugger. This is the concept of “debugger” the English word. A tool for removing bugs.
Then, maybe you should try out a debugger, in stead of relying on a dictionary definition.
This is not the purpose of a debugger. Again.
A debugger is a tool for removing bugs.
Julio, acredita na opinião de quem os usa. Isto é completamente falso.
Pardon for the non-english.
This is what I use debuggers for, and this is what they are good at. You are obsessing over etymology.
You choose your definition the way you like it. I fully disagree.
You use debuggers the way you like it. Whatever you feel is productive. I am sharing what is the original point of having a debugger in any programming language. It is not to understand code.
Please check the name of the thread, and consider the purpose of this discussion.
I have shared what is, in my opinion, the best use for debuggers, yet you keep going on about the origin of the word.