While I agree with your sentiment, maintaining software like postgreSQL is a full time job.
But your last sentence seems to apply to everything on the internet lately. People used to do podcasts, create guitar tabs or publish cooking recipes because it was their hobby and they wanted others to participate. Now everything seems about making money.
People would do these things for free because they had a stable job which guaranteed their material needs. Now every type of job can be automated and done better/cheaper by a machine, people will be forced to "monetize" everything that exists unless we get a literal revolution in how we tax and distribute the produced wealth.
It’s less automation and more about cheap labor. Content farms sprung up and flooded the landscape with worthless content to get a micro-slice of the pie.
Very discouraging to many content creators when their work is just going to be buried in SEO chaff.
Also, the automation wave is just beginning. Soon the human run content farms will be overwhelmed by AI created crap.
This is likely to happen in software as well. Every product will need to compete with some AI generated piece of garbage that’s barely passable functionally, but being sold at a fraction of the cost.
The jobs we’re talking about here, podcasting, development, etc aren’t jobs where everyone is forced out. Everyone is just more into making money these days and decide they want to make money doing those things rather than just fun. Let’s not try making excuses.
You are getting at it backwards. People are doing podcasts about investing, cooking, music production, <anything> because even those careers are being automated away and the money that they could be getting working is going away.
Even Software Engineers: take all the swaths of engineers who were productive but didn't want / didn't make to a FAANG company and now are having to compete in a world where most companies can replace a lot of the people they don't need a team of 8 engineers because their team of 4 now can have Co-Pilot and most of their "middle management" roles could be effectively replaced by some cheap, off-the-shelf SaaS.
I'm literally in this scenario. I'm too old to be interested in competing with someone who is 20 years younger than me but can call themselves a "programmer", and whatever knowledge/experience I have can be had at a fraction of my "cost" by using a commodified service that automates a process. So, what is left for me? Either I need to go downmarket and work for "programmer" jobs (further increasing the supply and lowering salaries) or I need to find someone who is willing to invest in my "idea for a startup" (thus getting into the Silicon-Valley way of life), or I need to find a way to take my unique experience and repackage as something of value - and then get to be called "greedy" by people like you.
I do not believe you can replace a competent developer with an AI, or say you have 2 and replace them with 1 dev and 1 AI.
You can't just type in ChatGPT something like "write me GTA5" and you get running code, just seen today an example of someone complaining that he asked soemthing like "Create a website in PHP for a company that does X" and they were expecting that by magic a website will just appear.
Aside from clueless people on Elance and upwork, no one goes to a developer and says "write me GTA5" or "make a website in PHP that does X", either.
What AI will do is leverage productivity of the individuals. Any new story will have its complexity reduced because the developer will be to use the existing codebase and say "hey, our current code is connecting with Foobar via the Zoberg SDK, now we are adding a customer that uses the BazBah platform and they need to change the order flow for 'deliver on payment' to 'deliver on invoice sent'. Show me what changes are needed to make this happen, and please write the integration tests to make sure that we are not breaking things from existing customers"
This goes from a one week task that will require three hour-long to something that can be done in an afternoon, reviewed by the developer and (most importantly) cheap to throw away if the original requirements change.
Does this work today?
I guess it might be able to write tests but does the rest just work?
In my experience the AI
- uses bad code practices because there is more bad code on the internet then good
- hallucinates APIs , so it tells you to use X but X does not exist in the library/framework you asked for
- suggests wrong solution
- if your language is not precise it gives you the answer to the wrong thing, like you see the answer and you realize it did not understand you
In my experience if your developers are 20% more productive you do not fire 20% of them because there always is a big backlog of features or bugs to be handled.
One of the reasons that I didn't drop out of college (almost 25 years ago) was because I was working part-time proofreading (and occasional translating tech manuals) for a translator who used to get about $25 per 1000 "touches". It could be good money for an experienced translator, but nowadays it's a dead profession outside of legal documents who need a certified notary.
Google's automatic translation was not good enough at the beginning to replace the translator's job, but by the time I was already graduated it was good enough for her to not need my proofreading and it was good enough for her to effectively get 60% of the job done. She has then effectively become the proofreader for a bad translator.
And nowadays, the bad translator is good enough to the point where her customers can just throw the original document on Google and do themselves the proofreading.
This is what will happen with programming tools. Code generation tools are still just at the "smart autocomplete" stage and the experienced programmer is still needed to act as reviewers, but as AI gets better, it will be cheaper to drop the "professional expert" altogether and let someone with tangential knowledge (maybe a product manager) in charge.
People still complain that machine translated Japanese is garbage so I bet will be the same with programming, some easy tass will be automated, complex stuff will be still done by humans with experience and understanding of the domain.
- There is not that much "complex" stuff going around for all the people that will be looking for a job in the field.
- what you call "garbage" might be someone else's "good enough for my needs". If I can go to Japan and a " garbage translator" still is enough for me to help navigate the city or poorly talk to a shopkeeper, then it's mission accomplished and I don't need to worry about a local guide.
- lots of "complex stuff" are dependent on context, and can be made less complex if we relax one single design constraint. E.g, centralized social media networks have a strong requirement for not losing user data. Distributed systems solve this by (a) duplicating data between every node and (b) letting it be deleted by users and node operators who do not want to have the data stored for long term.
It seems to me that you believe that what most software engineers is some dark magic that only a select few can master. It really isn't. The whole "software is eating the world" essay never mentioned what was going to happen after it ran of out of things to eat, now it is kind of obvious that it will gladly get into cannibalism.
My point was that your example was flawed, your translator friend can still have a a lot of work to do since the translators are average or garbage still.
A true intelligent AI sure could be a problem, but this stuff will just be an copilot, good enough to do basic stuff and maybe double check the programmer.
When you predict it would be possible I give the AI a JIRA ticked and it could open the application, reproduce the issue, update the ticket with details about the bug , then find the issue in a giant code base, fix it correctly etc .
Because today an AI can't do anything from the above. It can't replace a human.
My translator friend speaks no Japanese. She used to work with English, German and Portuguese. The fact that translators are still not Professional-level (yet?) is no consolation for the thousands of other professionals like her. She retired already.
> It can't replace a human.
If it provides enough leverage to today to make one person 20x more productive, then it is effectively replacing 19 humans. When it is effective to make one employee 200x more efficient, it will replace 199 humans.
And if you have enough hubris to think you are always going to be the lucky one out of the chopping block, it's not for lack of warning.
Sorry, my mistake. Replace "today" with "someday".
For "today", I've seen good engineers solving specific tasks in a third of the time already, but I won't make specific claims about absolute productivity multipliers.
>For "today", I've seen good engineers solving specific tasks in a third of the time
Specific is the important word here. Some boring tasks that can be automated in all jobs will be automated though you still need to check the AI. I assume no competent developer was fired because of that productivity boost in that specific task
You don't need to "fire" anyone for AI to cause a significant impact. All AI needs to do is to allow companies postpone hiring more people.
I really don't understand why you are being so obtuse about this. Do you honestly think that you can make the argument that software development (as an industry) is somehow immune to automation?