There's no pressure encouraging software engineering culture to converge on values that actually make sense and are true.
-Jonathan Blow https://youtu.be/dS6rCaDSwW8?t=956
In this programming stream excerpt, JB calls out a phenomenon I keep wondering about. Why do practices and values that result in inefficiently creating slow and unmaintainable software dominate the industry? Wouldn't you think they would get out-competed by more effective practices and values?
I'm curious what you think about why this is. A few possible answers:
- This can only be a partial explanation, but (a) computers are fast enough to still sort of work even with all the bloated code we throw at them, and (b) users have been taught that software in general is low-quality. But this still doesn't explain why (c) we don't have new companies writing higher-quality software and out-competing the incumbents overnight, and (d) so many companies remain competitive even when standard practices make their software extremely expensive to maintain.
- For upstream reasons relating to economic inequality, we're in a New Tech Startup Bubble. In short, there's just so much VC funding available that companies are not incentivized to spend it efficiently on evidence-based software engineering. Instead they use technologies that will generate the most hype among both investors and potential employees.
- More effective practices will eventually dominate; evolution is just a slow process.
- ?...
I feel like it's a combination of the above and other factors. Any other thoughts? I think about this all the time for some reason. :P