AI for App Dev: What’s Working, What’s Not
One of the jobs predicted to be impacted the most by AI is application developer. AI models like ChatGPT are expert manipulators of language, after all, so it makes sense that a profession based on languages–computer languages–would be affected. But the ways that app dev roles will change may be different than you imagined.
The predictions about AI impacts on the programming profession vary widely and wildly. One the one hand, some are forecasting the total elimination of developers, while others are certain that AI will turn existing programmers into super nerds. The truth is likely to be somewhere in the middle.
If you’re worried that AI is going to take your programming job, you’re not alone. However, there’s a major limitation with today’s AI that will require human developers to be in the loop for some time, perhaps forever. It’s called creativity, and bots don’t have it.
“We have yet to develop real artificial intelligence (AI) as it’s often imagined,” says Vaso Peras-Likodrić, senior software developer with Milpitas, California-based AI automation firm ABBYY. “We have predictive neural networks that mimic reasoning through their output, but the essence of accurate intelligence encompasses far more.”
Today’s AI models are quite capable at predicting which word or action will come next based on the vast set of human-generated training data. And therein lies the rub: the AI models can’t know anything that hasn’t already happened.
“Consequently, original thoughts or ideas not previously conceived are less likely to surface in the AI’s results,” he says. “Simply put, there is substantial scope for human creativity, which these tools can’t fully encapsulate.”
Peras-Likodrić also noted that, while AI models “generate predominantly satisfactory results,” their propensity to hallucinate is another factor that will likely keep human hands on keyboards for some time.
“Instances of AI ‘hallucination,’ or inaccurate outputs, can occur even with the most advanced systems,” says Peras-Likodrić, who uses GPT-4 to help write sentences (including the ones sent to Datanami). “This is why human verification remains vital for all critical tasks where accuracy is indispensable. For instance, ABBYY products’ verification stations underscore the human element’s importance. While AI tools can expedite the process, we can only partially depend on them in their current state.”
So where does that leave AI? According to Vladimir Khil, head of the platform processing group at ABBYY, there are plenty of other application development activities where current AI can excel.
“Imagine having a private version of an AI engine that could analyze our code, provide suggestions on coding style and efficient algorithms, and even spot unreadable code without any privacy fears associated with third-party technologies,” he says. “That would be a game-changer!”
AI could also help with writing test scripts. “Writing tests can be boring for developers. But with the power of AI, we could describe the interfaces and scenarios, and it could generate the test code effortlessly,” Khil says.
A new O’Reilly report on low-code and no-code application development trends sheds some light on the use of tools like ChatGPT and GitHub Copilot, which have grown popular among programmers.
Perhaps the biggest finding from the survey of 739 organization was that only 33% report using such tools, while 67% report the tools aren’t in use at their organizations. But the folks at O’Reilly aren’t buying it.
“We suspect this estimate is lowballing Copilot’s actual usage,” O’Reilly’s Mike Loukides wrote in the report, which you can access here.
The number is likely significantly higher, just as the use of open source software was much higher than indicated when O’Reilly surveyed CIOs 20 years ago. “How little they knew!” Loukides wrote. “Actual usage of Copilot, ChatGPT, and similar tools is likely to be much higher than 33%. We’re sure that even if they aren’t using Copilot or ChatGPT on the job, many programmers are experimenting with these tools or using them on personal projects.”
Interestingly, using these tools were not as easy to use as might be expected. The report found training to be the biggest struggle, with 34% stating that training was their biggest struggle, followed by ease of use, with 12% citing that.
“That was a surprise, since many of these tools are supposed to be low- or no-code,” Loukides wrote. “We’re thinking specifically about tools like GitHub Copilot, Amazon CodeWhisperer, and other code generators, but almost all productivity tools claim to make life simpler. At least at first, that’s clearly not true. There’s a learning curve, and it appears to be steeper than we’d have guessed.”
The data suggests that we are still in the very early stages of AI-assisted programming. ChatGPT has been out for only six months, while GitHub Copilot has only been out for about 18 months. Getting productive with these tools involves much more than just signing up for an account, Loukides says.
Another interesting finding was whether these AI tools were more beneficial for junior- or senior-level programmers. The data from the survey was mixed, with 13% saying they’re useful for senior programmers and 11% saying they’re useful for junior programmers (11% said they’re not useful for anyone and haven’t raised productivity at all).
“Common wisdom is that Copilot is more of an advantage to senior programmers, who are better able to describe the problem they need to solve in an intricate set of prompts and to notice bugs in the generated code quickly,” Loukides writes. “Junior developers are using it to learn and to spend less time solving problems by looking up solutions on Stack Overflow or searching online documentation. Senior developers are using it to help design and structure systems, and even to create production code.”