Artificial Intelligence in Programming and the Future of Programmers
In 1956, When John McCarty coined the term "Artificial Intelligence (AI)" at the Dartmouth conference, we had no idea it would be part of every industry in 60 years.
Be it a Healthcare or Education or Financial Sector, or Manufacturing or any other industry, there are barely any unaffected by AI. If I have to define Artificial Intelligence (AI) most simply, I would say it's a Technology where a machine behaves as if it has human intelligence programmed in it.
Every individual can develop their version of the definition, but the most common takeaway is "It's a computer science," which can think like a human. The question is, How is this program help Programmers if AI has made its way?
Table of Content
- Talk of the Year: Copilot
- History: AI in Programming
- The New beginning: AI Pair Programming
- Moving forward: With Copilot
- To The Future: Superintelligence
Talk of the Year: Copilot
Copilot grabbed everyone’s attention as soon as it was announced by GitHub. It is an AI pair programmer which helps programmers write better code.
Copilot learns from comments, the existing code, and the newly written half statements. Based on it, it suggests new lines and implementation of the whole function. It's a project by Open AI and Microsoft; they never miss a chance to fascinate tech minds.
While the AI-powered Copilot is still a work in progress, it provides some interesting hints about the future directions of the software development company.
This is not the first time; AI is contributing to programming. Last year, AWS launched its CLI, which does the creation and configuration of the load balancer, creation of deployment pipeline, running containers, and many more, also Involved the AI.
Source: https://twitter.com/github/status/1409883156333879300
History: AI in Programming
It all started in 1996 when Microsoft introduced IntelliSense with a visual studio. In 1981, Borland Launched the first IDE with the "WordStar" menu or from 1957 when IBM Introduced the first commercially available compiler. Tracing back to when AI started helping in programming is difficult because many AI applications are not perceived as AI.
We often tend to think of artificial intelligence as Magic, and when Magic becomes part of daily life, it loses its magical charm. But the truth is, AI had found its way into programming long ago, probably before the term AI was coined in 1953 when we first had the first high-level programming language. It has become so general that even programmers don't realize they use it all the time.
For Instance, take a look at the sublime text. It has helped programmers to write faster codes. Using colour formatting has helped programmers write clean code and made it easy to interpret it.
Most of the AI systems we have been using in programming are a kind of an Oracle: You give it an input, and it reverts with the correct answer. This is a single directional flow from the intake to output. With time, the complexity of programming has reached a level where getting answers is not enough. Programmers need an AI system with which they can have a conversation, and that necessity has opened the door for the invention of AI Pair programming.
The New beginning: AI Pair Programming
AI has mainly two roles to play, Human-Analogs and Human-Amplifiers. The compilers, the IntelliSense, the CLI, the sublime text, and more are amplifying the programmer's performance. Pair programming on other hand is Human-Analog.
AI system which tells us something obvious or something we can search on Stack Overflow is not “AI” level enough for programming. Programmers need an AI when the obvious answer is not the right one but the other possible or rejected by other programmers is the one. Extreme programming and other agile approaches are not unidirectional.
An (Artificial) Intelligent Partner, which can convert the code into pseudocode so the programmers can have better insight and can identify possible loopholes. for this, we have a less popular tool called Pseudogene. (http://www.phontron.com/paper/fudaba15asedemo.pdf).
AI Pair programming within IDE, where programmers might start with a rough description of what is needed in an imprecise language and AI brings solutions that might look like pseudocode or real compliable code. For this, the AI partner needs knowledge with its intelligence and that knowledge comes from data.
Source:
*https://en.wikipedia.org/wiki/Timeline_of_GitHub
GitHub, with the world's largest number of public software repositories, becomes the talk of the town when it announced an AI-powered pair programmer - Copilot.
Moving forward: With Copilot
Behind the Copilot, there are billions of lines of public code, deep multiplex learning and machine learning algorithms, and all the general technologies it takes to build any VSCode extension.
The code of our AI Pair programmer- Copilot, is a descendent of GPT-3 (Generative Pre-trained Transformer 3). In 2020, GPT-3 was licensed exclusively to Microsoft.
GPT-3 was initially designed to process and learn general human language and is very good at finding and suggesting patterns from an extensive training database. With this context, it makes sense to use GPT-3 to help programmers find solutions from a huge database of publicly available source code of GitHub.
Github has mentioned on its website: "Copilot tries to understand you're intent and to generate the best code it can, but the code it suggests my not always work, or even make sense."
There is mixed feedback from those who have tried the Copilot, but we can't deny that it has opened the new door of involving AI as a pair programmer.
It might sometimes fail to provide the exact output programmers want but will improve over time; after all, that is what AI is. It learns with time; It improves with time.
To The Future: Superintelligence
The goal of AI is to provide a support system to humans who can operate by themselves, AI Pair programming is the future of programming as it promises precisely this.
AI pair programming will soon become a programmer's habit, but there is nothing to worry about.
If you can see the launching videos of the copilot, you will notice that the human programmer is typing the function name describing what it should do; the AI is just bringing the function. Those programmers know that the hard part here is to decide what we want this code to do.
AI has excellent memory power and amazing processing power; it is nothing without humans' superintelligence. Remember, the goal of AI is to help humans, and that's what it's going to do with programmers. Use your super intelligence to get the best use of it. Embrace it!