4 ms·
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 somet
by simion314 3y ago
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.
- rglullis 3y agoAside 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.
- simion314 3y agoDoes 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.
- rglullis 3y agoOne 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.
- simion314 3y agoPeople 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.
- rglullis 3y ago- 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.