6 ms·
> it works for every language This is really the problem. Nobody has spent time and money to make debugging _good_ in the languages you use. Few people pay for
by db48x 6y ago
> it works for every language
This is really the problem. Nobody has spent time and money to make debugging _good_ in the languages you use. Few people pay for good tools any more, and only a tiny fraction of users ever contribute improvements to the open–source tools they use (paid or otherwise). So the average debugger hasn’t gotten better since the 90s.
I do programming in multiple languages too. In those where I can use RR and Pernosco, I use them every time. In those where I can’t, I miss RR and Pernosco every single time.
- jjoonathan 6y agoYep. The other day I was: * Debugging an 8 bit microcontroller in-circuit with an IDE, conditional breakpoints, step in/out/over, full stack visibility, and the ability to manually poke at values/memory/io * Debugging an AWS lambda function with printf and high latency logs It doesn't matter how hip, how modern, how fast, or how big the environment is. What matters is whether or not the ecosystem cares enough to make debugging nice.
- incrudible 6y ago> AWS lambda Live by the sword, die by the sword.
- corty 6y agoNow if the sword strikes would only leave a GDB stub...
- sillysaurusx 6y agoWhy isn't print debugging good? Seems good to me. As pg said, it's like scrubbing dishes with your fingertips: rarely discussed, highly effective.
- db48x 6y agoPrint debugging is sometimes acceptable. Scrubbing dishes with your fingertips totally works, but we all have dishwashers. Dish–washing machines are way better than scrubbing manually, with your fingers or with anything else. Load the dishwasher, then go do literally anything else while the dishes are washed. Even if all you do is go watch television, you will be better off just because you didn’t stand there scrubbing dishes by hand for an hour. More human potential has been wasted by drudgery than by any other cause. Print debugging is like scrubbing dishes by hand, and neglecting your dishwasher. Pernsoco is like those commercial dishwashers that blast the dishes with super–heated steam to wash them in a few minutes instead of 45.
- akvadrako 6y agoI don't have a dishwasher and it isn't because of cost or space. I just don't think they are worth it unless you save up dirty dishes for a few days. If you wash everything right away it's easier to not use the dishwasher, especially with a good sized drying rack for easy reuse of common items. I suppose I feel the same way with print debugging. Mostly that's all I need and the problems I have which would benefit from better tools are rare enough and diverse enough it isn't worth investing time in them.
- dcow 6y agoDishwashers are better for the environment. There’s even a new Bosch model with a passive heating element (crazy) for the dry cycle. Perhaps if you live solo and don’t do much cooking you don’t need a dishwasher. But even in that cases I’d bet you’re better off running say a half load once a day.
- akvadrako 6y agoI've heard that before but I doubt it. The embodied energy in a dishwasher installation will certainly take a while to recoup and it would depend a lot on how one measures hand washing. Anyway I don't really care about some insignificant "environment" difference - the affect on daily convenience far outweighs it.
- 6y ago
- epistasis 6y agoNo matter how good the debugger is, it still requires learning a new tool and the interface. As long as a debugger has a gdb-like simple CLI, I will often use it because I know it. But I will also still use print statements when I want to scroll through a log of values, rather than press c <enter> For an indefinite number of times.
- dnautics 6y agoDebugging is rather good in elixir (Iex.pry is quite nice). I'll still print debug for a faster through-time experience, since most work in elixir is about transforming data across several steps. It is, also much much easier to identify a race condition with print debugging than a debugger.
- rcxdude 6y agoI've frequently wanted RR to debug an issue. Not one of those times could I actually use it (usually because of hardware).
- simiones 6y agoPrint debugging is invaluable for actually having any chance to understand what happened in a complex bug in production - especially if you're working on user-run apps, not SaaS. Debuggers help immensely if you can reproduce the bug reliably and in relatively decent time, but if you can't logging/print debugging is your only hope, since no one is going to run their code in production with RR attached.