So, I agree that good standards and (to a lesser extent) algorithms come out of practice.
However, the basic point about a standard is not that it's perfect: it's a coordination mechanism. Companies go bust all the time, technology changes all the time, but if you have standard components, large parts of complex systems can be maintained indefinitely. Like, I have a rolling press that was made in 1840, and I can still replace the bolts for it, because the standard thread gauge has not changed.
I guess the nice thing about both algorithms and standards are they are the two places where the software world is not just burning people's lives on relentlessly reinventing the wheel. If you contribute even a fraction to the study of an algorithm, your work will be part of software in a thousand years. If you contribute to a standard, you are producing the conditions for a thousand other programs. Both of these things are basically common goods, and they help everyone. I think a culture of programming where it's less about founding the next over-capitalized unicorn, and more about creating a mutually supportive ecosystem, would produce very good software.
However, the basic point about a standard is not that it's perfect: it's a coordination mechanism. Companies go bust all the time, technology changes all the time, but if you have standard components, large parts of complex systems can be maintained indefinitely. Like, I have a rolling press that was made in 1840, and I can still replace the bolts for it, because the standard thread gauge has not changed.
I guess the nice thing about both algorithms and standards are they are the two places where the software world is not just burning people's lives on relentlessly reinventing the wheel. If you contribute even a fraction to the study of an algorithm, your work will be part of software in a thousand years. If you contribute to a standard, you are producing the conditions for a thousand other programs. Both of these things are basically common goods, and they help everyone. I think a culture of programming where it's less about founding the next over-capitalized unicorn, and more about creating a mutually supportive ecosystem, would produce very good software.