4 ms·
The average developer can do much more today than they could 10, 20, 30 years ago. That's because crucial pieces of infrastructure and functionality are no long
by danharaj 8y ago
The average developer can do much more today than they could 10, 20, 30 years ago. That's because crucial pieces of infrastructure and functionality are no longer subject to the vicissitudes of new code but also because people are better at writing code than they were then (even if it doesn't feel that way). We collectively understand how to write software better and some of the hardest bits are impressively robust now (like, Linux and the infrastructure of the Internet).
If $300B is burned to maintain and refactor new code, that's $300B of value to capture with better tools, infrastructure, and theory. Now, if that were actually to happen, there would be an even larger sum of money burned to maintain and refactor new code, because we just all got $300B more efficient and that means more effort is spent applying software to new fields, industries, and markets which will in turn require brand new code to go through the wringer again.
- mirashii 8y ago> also because people are better at writing code than they were then (even if it doesn't feel that way) Any reference or data to back up this assertion? My intuition would say otherwise, if for no other reason than that because the many layers of abstraction that exist today allow a person to become productive writing code with significantly less knowledge and in a shorter time than in the past. When you combine this with a general shortage of workers in the industry, you have a huge influx of individuals less educated in the field and with less experience. With all that considered, I find it hard to think that we're any better at writing software, in fact, the abstractions that exist today are all about letting us be worse at writing code while still being productive.
- sidlls 8y ago> people are better at writing code than they were then (even if it doesn't feel that way). This is far too broad. We have better tools (compilers, static analysis, linters, etc.) to find some of the errors we make earlier in the lifecycle. These provide the ability to rapidly address categories of error that were once avoided primarily by an arduous and slow process of scrutinizing hand-written programs. Coupled with more abstract programming languages and computing resources, what we have today is the ability for single developers to write incredibly complex software quickly--with bugs that have a complexity that increases non-linearly.