3 ms·
As someone who's been developing professionally for over a decade and a half now, I think the author misses one *major* critical point. Regardless of whether o
by Falkon1313 5y ago
As someone who's been developing professionally for over a decade and a half now, I think the author misses one *major* critical point.
Regardless of whether or not a programmer cares about correctness, most programmers don't work in academia on toy projects. They work in the real world - with 15 year old codebases, tons of dependencies, integrations with other systems, deadlines and commitments, budget constraints, and a team who were all hired to work on that type of code, not some other type of code with different processes and tools.
No matter how much a programmer might prefer to have strong compiler-time type checks, or full test coverage, or design-by-contract, or a codebase written with literate programming, or whatever.
They can't just go off and spend several years rewriting the entire system and all its dependencies, using different languages, tools, methods, etc., to be 'better'. Especially not when it already mostly works and the company already has processes in place to deal with bugs.
They have to work within, and gradually evolve, the existing systems and processes. And do so in a way that's compatible with all the other stuff it has to interact with (dependencies, customer system integrations, etc.) without disrupting service. While still delivering new features and fixes.
And that is a massively more difficult problem than simply using whatever your favored technique is to write 'correct' code from the start on a brand new and self-contained toy project.
It's not difficult to use any of those tools or techniques. But it's quite difficult indeed to use them in many/most professional projects.
The main thing that's needed is good easy ways to gradually evolve a system to use them, especially when it's a partially-controlled system. Progress is being made, but at a glacial pace. Saying "programmers don't care" is mostly pointless and wrong, programmers hate dealing with bugs. They'd be happy to have the system prevent a great many of them.