6 ms·
“The reason this stuff is crap is far more basic. It’s because better-than-crap costs a lot more, and crap is usually sufficient. ... ... ... Every dollar put
by Annatar 9y ago
“The reason this stuff is crap is far more basic. It’s because better-than-crap costs a lot more, and crap is usually sufficient.
...
...
...
Every dollar put into making software less crappy can’t be spent on other things we might also want, the list of which is basically endless.“
Software is crap because humans on the whole have an extremely difficult time reasoning through all the possible logic flows.
Software is also crap because in order to design good software a lot of insight, experience and empathy is required, and as it turns out, people writing crap don’t have any of those prerequisites.
Finally, most software is crap because most people writing it don’t care about getting it 100% correct, since it turns out that getting the last 5% correctly functioning is exponentially difficult, and those people would rather collect a paycheck than feel proud and content about what they wrote.
All other industries manage to deliver complete, working products; we are the only industry which doesn’t; computers and software never work 100% correctly. What does that make us? It makes us jerk-offs, that’s what it makes us. I understand now why Keith Wesolowski ditched computers and went to work on a ranch. And damn it, he is right!
- mgaruccio 9y agoDo all other Industries manage it though? If they did we wouldn't have product recalls or any need for "consumer safety watchdogs". The problem is arguably worse in software but software can also be (relatively) easily patched later so a somewhat more lax attitude to quality on systems that are not safety critical makes some degree of sense.
- naasking 9y ago> Software is crap because humans on the whole have an extremely difficult time reasoning through all the possible logic flows. But we have tools and techniques that make this easier. Why don't we use them? Also, I don't think 100% correctness is the ultimate goal of this article. Software is probably nowhere even near that correctness level firstly, and secondly, software is also partly crap because it doesn't run any faster than it did 30 years ago despite tremendous performance advances in our hardware. > What does that make us? It makes us jerk-offs, that’s what it makes us. Let's be honest, software as it currently is written is considerably more complex than most other engineered systems that we take for granted. That said, we've had tools and techniques to mitigate a lot of this complexity, and to have computers double-check our work (eg. type systems and model checking), but we don't really use them as much as we should. What's worse, we even use tools that are intentionally intractable to any kind of work checking/validation (like dynamically typed languages). There's really no excuse for this.
- Annatar 9y agoFor 20 years I’ve been writing entire applications in AWK, a dynamically typed language, and not once were any of the bugs due to typing. And yet, we’re such a hopeless industry when most of us believe that a strongly typed system is essential for high quality software. It makes me despair even further about this profession.
- naasking 9y ago> For 20 years I’ve been writing entire applications in AWK, a dynamically typed language, and not once were any of the bugs due to typing. If you spent 20 years writing serious programs in Awk, I'm not convinced you know what real static typing is.
- Annatar 9y agoI had Ada as part of the core curriculum, just so we're clear. And being part of the cracking / demo scene, I grew up writing in MOS 6502 and MC68000 moving on to UltraSPARC assembler, so I just might know a thing or two about typing and what it actually translates to at the machine level. But, hey, barring suddenly landing a job working on SmartOS / illumos, that's also why I want to exit the computer industry: someone always isn't convinced and they think they know it better than I do. If I get out, anybody can not be convinced and know better for all I care at that point.
- naasking 9y agoMachine level translation of language abstractions isn't relevant. Ada is an ok typed language, but still limited in many ways, but that's neither here nor there. The reason I can confidently state that you don't know what typing is, is because a type system is simply a means to prove propositions about your program. A type is a proposition. Any proposition, really. Most type systems employ propositions about simple equalities, inequalities and subsets, but there exist type systems that prove the absence of data races, deadlocks, the conformance to protocols, and even the time and space complexity of programs. So when you claim that none of your program bugs were a result of poor typing, you're literally claiming that none of these bugs resulted from treating a false proposition as if it were true. That's just nonsense. Literally every bug results from treating a false proposition as true. Even if we just stick with type systems dealing with simple equalities, like ML, claiming that none of your bugs would have been caught by types means that you never mistakenly considered two values as equal when they were not. Which is by itself exceedingly unbelievable. And even if you are that perfect, you clearly don't have a perfect understanding of your fellow, imperfect human beings who need tools to actually help them avoid mistakes.
- AnIdiotOnTheNet 9y ago> All other industries manage to deliver complete, working products; Ha. If you were more heavily involved in those industries, I believe you would find that they all have similar problems because the article is right: we make tradeoffs all the time, in everything, so very little is ever as good as it could be. You just don't notice it because you don't have a lot of knowledge about it, their products are "good enough" for you and you don't think about it beyond that. Sound familiar?
- Annatar 9y agoNo, it does not sound familiar because I’m a hardcore do it yourself guy, and one of the reasons that is so is because I seek masters in other professions to teach me. That’s how I know what trade-offs they do or do not make, and following an insight by a family member that we (as a profession) can never get these damn computers to work correctly I’m becoming more and more discusted by the truth of it.
- iovrthoughtthis 9y ago> All other industries manage to deliver complete, working products; we are the only industry which doesn’t; computers and software never work 100% correctly. Have you ever worked in other industries? This... is not true. We're not snow flakes.
- Annatar 9y agoWe’re very much snowflakes and what’s even worse, most of us believe we’re special petunias.
- atomashpolskiy 9y ago> I understand now why Keith Wesolowski ditched computers and went to work on a ranch Ha ha! Can't help but think of the Roman emperor Diocletian, who after two decades of a "moderately successful career" decided to leave the office and move to a ranch to grow divine cabbages
- Annatar 9y agoYep, and he kicked it lovely in Solin. Smart guy, unfortunately I’m not there yet, or else I’d ditch too. Sad thing is, I used to live for this profession.
- atomashpolskiy 9y agoI'm in the same boat. Need to stop being an idealist and finally grow up :)
- cafard 9y agoOther industries, for example the automobile industry? Have a look at https://en.wikipedia.org/wiki/Ford_Pinto https://en.wikipedia.org/wiki/Ford_Pinto . And have your received a recall notice for your airbag yet?
- Annatar 9y agoFor example a car body repair guy will weld and sand the tin and will have something tangible and beautiful to show for it at the end of the day; I’ll work on a piece of code and even if my program is 100% correct and works great... it’s all electrons on pieces of rust at the end of the day transforming one non-existant thing into another non-existant thing. Anybody hiring for race car drivers? And the only recall on my car is the isolator on the supercharger. Even that’s a maybe.