Hacker News new | ask | show | jobs
by coldtea 2607 days ago
>A lot of this is appeal to authority.

Debugger use is based on the same. Few things in development are not based on idiosyncratic preferences, fads, snake oil salesmen, tradition, or appeals to authority (and those are the math parts of CS). Of the 5 above categories tradition is probably the best and most "scientific" (at least it has stood the test of time).

There is little actual research on such issues (best practices, programming ergonomics, syntax leading to less errors, bug counts per style, etc), and even what little research there is usually flawed, with small samples, and non-reproducible (not that many teams bothered to reproduce it in the first place).

That's why almost nothing is ever settled.

2 comments

No authority told me to use a debugger, I use them because they work for me. They save me time, help me make money, and make it easier and more fun to code.

If I ever saw a "research study" that said "print statement users have 12% fewer bugs than debugger users" - or vice versa! - I would dismiss it out of hand. What possible relevance could it have to my work? That's not real research, it's just playing with statistics and making up overly generalized stories about them.

That kind of research would just become the "authority" in a new appeal to authority, complete with an infographic!

And nothing has to be "settled", nor should it be. There are many different kinds of programming that require different tools. It's best to be aware of the variety of choices available, and choose your tools according to the particular situation you're in.

>No authority told me to use a debugger, I use them because they work for me. They save me time, help me make money, and make it easier and more fun to code.

Well, I already wrote: "Few things in development are not based on idiosyncratic preferences, fads, snake oil salesmen, tradition, or appeals to authority". So your case would fall under the first option: it's an unscientifically tested personal preference.

>If I ever saw a "research study" that said "print statement users have 12% fewer bugs than debugger users" - or vice versa! - I would dismiss it out of hand. What possible relevance could it have to my work?

It could have all the relevance in the world.

It's not like if you believe strong enough that your preferred methods are the best (or the "best for you"), that you can't still be using an objectively worse method and get worse results...

>And nothing has to be "settled", nor should it be.

Well, if software development wants to be like an engineering discipline, many things should be (studied and eventually settled).

"Works for me" and letting developers improvise and come with their own hodgepodge of practices, preferences, and cargo cults, is how we got into this mess.

I specifically meant that the article was largely an appeal to authority, not that the practice of not using debuggers is itself based on appeal to authority.

Having said that, I find your argument here pretty weird. I use debuggers because they are useful to me, not because I of quotes about them from famous programmers.

>I use debuggers because they are useful to me, not because I of quotes about them from famous programmers.

Which is an equally fallacious reason to use them (scientifically wise) as appeal to authority.

"Useful to me" doesn't mean anything by itself. Something else could have been more useful to you, but without measuring it appropriately (just some personal anecdotes with trying some thing and then another and seeing which you prefer or which seems to you to give you better results, with no real measuring system or rigor), you'd never know. And the industry would never know which direction to invest, and how young programmers should be taught best -- not just about debuggers but about almost everything.

You're making a broader point, which is fine and all. But your comments would be just as relevant if I said, "I pull out shared code into functions because that technique is useful to me". Your point is so broad that it's like a tautology. I really don't lose any sleep over the foundations of my approach to my work being unsupported by rigorous studies. You can feel free to be a science maximalist and run studies on whether pulling code out into functions is actually useful and all the rest of the approaches we've developed over the years. Meanwhile, I'll happily carry on doing stuff that I know is useful to me, like pulling out functions and using debuggers.