Will artificial intelligence replace developers? – The Computer World

The arrival of GitHub Copilot, the code assistant developed by GitHub – owned by Microsoft – caused a lot of ink to flow last year. What is the future of software development in light of advances and advances in artificial intelligence?

It probably didn’t escape your notice: last year the developers were very surprised by the suggestions of CoPilot from GitHub. Based on technology using Codex, a descendant of the GPT-3 artificial intelligence engine developed by OpenAI, this tool suggests code in real time to developers. Should we go so far as to predict that software development could be automatable in the future? Some want to believe it.

It is undeniable that artificial intelligence has made many advances in recent decades. While ten or fifteen years ago this technology was mainly in the research domain and there were few industrial applications, it is now ubiquitous. Nowadays, artificial intelligence is embedded in many products. Recommendations of articles to read on your facebook news feed, automatic driving for your car or even facial recognition that facilitates payments on your iPhone: it has now become a primary component in the implementation of certain products.

Some (like Andrej Karpathy, director of the artificial intelligence department at Tesla) believe that artificial intelligence will supplant the current methods of software development and start the “Software 2.0” movement where software control will be managed by different models (neural networks, decisions, etc.). However, the reality is still far from these predictions.

Not everything is automatable…now

There are many ways to build a successful AI model and these depend on the quality and quantity of data used to build that model. While it is very accessible to build a probabilistic model that works most of the time (and where it is acceptable to have a few false positives or false negatives), it is very difficult to build a model that must produce a result right all the time. It’s exactly for this reason that the autopilot system promised by Tesla over the past decade is still not available today (and won’t be for a few more years).

For software development, the problem is similar: it is extremely difficult to be able to automate the task of software development considering the complexity of the task. It’s easy to suggest code (like your word processor suggests completing your sentences), it’s much more difficult to automate the production of code. The main reason is simple: software development goes far beyond code and covers many aspects: architecture, technological choices, deployment, security constraints, etc.

Code helpers use artificial intelligence that has been available for a few years (like tabnine) and already offer help to the developer by suggesting code. These technologies, which are based on several models of artificial intelligence, offer real-time code elements but do not allow software development to be completely automated (and are very far from achieving this goal). GitHub CoPilot, on the other hand, suggests more code: where existing products suggest a line of code, CoPilot suggests a block of code (eg a function, method or class). Put simply, CoPilot suggests more code than its competitors. Does this mean that it replaces the developers?

Towards a replacement of developers?

Certainly, technologies based on artificial intelligence help developers to write code faster, but that’s also without counting all the problems they can introduce. A recent study suggests that 40% of the code offered by GitHub CoPilot contains vulnerabilities and could therefore expose developers using it to produce vulnerable code. Other issues were raised, specifically legal issues or developers working in companies (and writing proprietary code) could then introduce code suggested by GitHub CoPilot released under open-source license.

What GitHub CoPilot and its competitors provide is better developer support and suggestions that go beyond a single line of code. But the wizard does not help in the definition of a software architecture, in the creation of tests or even the deployment of an application. These professions are still specific, difficult to automate and require very specific skills. And even before being able to automate them, new technologies must emerge (such as the specification of software architecture, the formalization of specifications and business needs in a form other than natural language).

If artificial intelligence does indeed help to improve the productivity of developers, it is still far from replacing them completely. And for a long time.

We would love to say thanks to the author of this write-up for this amazing content

Will artificial intelligence replace developers? – The Computer World

Find here our social media accounts as well as other pages that are related to them.https://www.ai-magazine.com/related-pages/