4 ms·
Possibly the part you misread, or Linus being a Finn, he might have poorly expressed in English, was the "start being careful early rather than late". The whol
by VLM 11y ago
Possibly the part you misread, or Linus being a Finn, he might have poorly expressed in English, was the "start being careful early rather than late". The whole essay hinges on that.
Look we're all devs here, and everyone who's written more than fizzbuzz has run into judgment issues about speed. A military campaign analogy fits really well. You can advance slowly, defensively, without possibility of failure or accident, with full knowledge of every little step you take, every footfall of every process is understood and safe. In which case your code will never crash and people can run nuclear reactors with it and coincidentally a debugger would be a complete waste of time because it'll never be needed. Or you can ambitiously run ahead in a reckless offensive charge, probably right into a swamp or ambush or minefield, and then you'll need a debugger to pick and prod your way out of a self caused disaster. That obviously requires a debugger. It also results in code that possibly thru sheer luck didn't crash into the debugger being shipped, and then killing people when the nuclear reactor controller crashes or whatever. There are whole swaths of logical errors and race conditions and spec problems that debuggers won't help with but sitting there and thinking hard will avoid, and nobody wants to find all those mistakes the hard way in shipped deployed code, and then Linus has to find what should have been an obvious bug had the dev slowed down and thought a bit first, etc.
If you needed a debugger because you were too lazy to check a memory reference before you freed it or whatever, that's probably the quality level of code that also "forgot" to check for trivial buffer overflows or null termination of strings or just basic foolishness. He just doesn't want it.
Note that this is ultra low level kernel code that entire systems are based on. You have to be more paranoid and slow and methodical than everyone else with this kind of code. Probably the completely wrong attitude for someone who just installs wordpress, etc.
Note that he expressly denies the work ethic... if you can send him production quality code despite having used a debugger and despite having intentionally avoided thinking hard, if its none the less good he explicitly says he will take it... he (and I) just think it very unlikely that situation would occur. If he demanded the work ethic he'd be insisting on testimony that you meditated on that function for a minimum of two minutes per line or something equally effort based rather than achievement based.
- unusximmortalis 11y agothanks for taking the time to explain the context, I didn't foresee so many people will miss the context (for various subjective or objective reasons).
- moron4hire 11y agoIt is impossible to plan in the way you're suggesting. You cannot ever have a perfect view of the road ahead of you. What you're suggesting is that having a policy of taking a look around you to see if your mental model actually matches reality is being "lazy".