In software development, it probably increases earning potential, because you can outsource all the tedious coding to the AI and have more time to manage the big picture of how your software interacts with other components, is optimized for certain tasks, etc. So you can deliver more value in the same time frame.
What tedious for you is essential for me. I take great care writing every line of my code. I'm actually paying for Copilot and use for repeating blocks of code. But that's a miniscule amount of time saved, like IDE autocomplete, just increases quality of life.
So far no AI written any substantial amount of not-completely-trivial code that I'd accept. And amount of time tweaking its output exceeds amount of time I'd spend writing that code.
The question is, will this still be the case in 2, 5, 10 years. Is there a hard limit to how well these models will perform, or will we look back at "carefully, manually crafted lines of code" as we do now at punchcards.
Text after `=` was completed by Copilot. You can check with calculator that first result is correct and second result is not correct.
I've encountered similar issues with ChatGPT. It tries to work as calculator but it's not reliable.
I do understand that this particular issue could be solved by adding some special handling into that AI. But this highlights general issue: this AI is imprecise.
And this is major discrepancy between current generation of AI and programming.
Drawing images imprecisely is fine. Few weird pixels won't make it or break it. 6 fingers are weird but kind of acceptable. Writing selling texts imprecisely is fine. Writing software programs imprecisely is not fine.
I think that we miss some kind of absolutely precise AI. Built on logic engine. Which will never do false statement. Which will never make false calculation. But yet more powerful than static algorithms.
With that kind of AI we could invent new programming languages which would be extra-high-level yet this AI will be able to optimize those to very fast machine code. That could change programming drastically.
I'm thinking these tools might be better utilized for creating user interfaces. As you say, a few pixels wrong here and there can be easily remedied and has little, if any, impact on the functionality of the software. You could use an AI tool to get you 80%-90% there - which would be a big help.
With regards to coding, AI assistants could make an excellent intellisense. That would also be a big help. I don't need the tool writing huge swaths of the code for it to be useful.
My career now spans nearly 40 years. If I had a nickel for every technology that was going to reduce the need for developers and put us all out of work...
What has happened instead is we now have more developers than ever and I would argue the productivity of the average developer is 10x-100x what it was when I first started, thanks to all these tools and technologies. That's how software is eating the world: more people than ever are creating an order of magnitude or more than ever and yet the global backlog of software needing to be written is increasing!
I'm looking forward to using ChatGPT to assist with my own projects. There are so many projects in my backlog and many projects that just never get done because we don't have enough manpower to get the work done and not enough money to hire (and manage) any more developers. In other words, we weren't going to be hiring anyway, yet we're going to be able to get more needed work done.
I realize the software we create will put a lot of people out of work, but at my company a full 40% of the employees are eligible for retirement within the next five years. Right now there's no way we can create enough software to eliminate those positions and there simply isn't enough people in the labor force to replace them. This technology might be the silver bullet we need to solve this problem.
This is how I view it. The actual servers and computers run machine code. And we're now at a point where we can describe intent to a machine and have an ok bit of code come out of the AI process.
Now the trick will be making sure that we don't over train the bots and end up having a really complex refined description language that the AI interprets to make code, that itself just get boiled down by interpreters and compilers a few times until the CPU finally get's the instructions it actually needs. Hopefully we'll find balance.
I like to describe AI's impact on coding like the invention of the nailgun for carpenters. No ones job is going away, things are going to get more complex and done faster.
existing* jobs; but it also opens up entire new markets that weren't feasible prior.
In the US as an example; ~150 years ago 80% of the population had to farm to feed the country. Today it's 1%. Yea; '97% of jobs lost!' - but it gave the workforce the power/freedom to build other new/amazing things also.
I know that's a trite example; but I like it as it makes it clear that the status quo is not an immutable (or entirely positive) thing.
I'm wondering if this perspective is true at scale? If everyone is saving ~25% of their time then on the whole there is a 25% increase in workforce efficiency, no?
The flip side of efficiency if the workforce headcount remains constant is over capacity, which is a downward force on earning potential.
I sort of think you just proved the author's point - you are using the AI to increase your productivity. People who cannot adjust in that way will be less productive and loose out.