Some experts at Oak Ridge National Laboratory in the United States predict that by 2040, AI technology will be strong enough to replace programmers. However, even if the machine can completely replace the work done by programmers today, this does not mean that they do not need human help.

Programmers and other types of IT work are undoubtedly the hottest jobs at the moment. However, this trend may not continue all the time.

Some experts at Oak Ridge National Laboratory in the US predict that by 2040, AI technology will be powerful enough to replace programmers, and AI writing software will be better and faster than human programmers. In other words, software written by software is better than humans.

How did this happen? Can AI really learn how to do highly creative intellectual work? After all, creativity has always been considered unique to humans. Can AI learn more than we teach it?

Using Artificial Neural Networks to Develop Writing Rules

An artificial neural network is a technique that attempts to imitate the learning mechanism of the human brain. It is inspired by real neural networks and partially simulates real neural networks. We can try to imagine the human nervous system as a very powerful computer.

In the above picture, each neuron has an input and an output. The input is actually a weighted combination of a series of signals. Each signal has its own mathematically expressible influence, and the sum of the signals determines the output. The special thing about human neural networks is that they can adapt and change based on learning and experience, which means that the same input does not always produce the same output.

This is done by changing the prioritization of different pulses and modifying the physical connections between the neurons. These changes are specified through learning algorithms and cost functions to improve the ability of humans to adapt to new environments and optimize future behavior.

Scientists and engineers working on artificial neural networks tried to replicate this mechanism and implemented it in software development. Specifically, this means that software will not be written in a traditional way, such as a series of "if... then" rules. In theory, we can imagine that through the process of gradual learning and optimization, artificial neural networks can learn how to formulate (or “write”) rules to obtain better output than humans. In AI science, this is called deep learning and usually depends partly on human feedback.

The following are several applications that can replace programmers.

Karpathy: Automatic generation of code using a recurrent neural network

As early as 2015, Andrej Karpathy, then a doctoral student in computer science at Stanford University, used a recurrent neural network to generate code. He used a Linux repository (all source files and headers files), combined it into a huge document (more than 400 MB of code), and used this code to train RNN.

He let the system run for a night. The next morning, he got this:

Sample code generated by AI

Literally, AI-generated code contains functions and function decorations. It has parameters, variables, loops, and the correct form of indentation. Parentheses include open and close brackets, and even notes.

In this code, AI certainly made some mistakes. Sometimes variables are never used. Other times, some variables are not defined earlier. But Karpathy is satisfied with this result.

"The code as a whole looks great. Of course, I don't think it will compile, but when you look at the generated code, it feels very much like a huge C code base," Karpathy wrote in his blog.

This project can be found on GitHub. It uses Torch7's deep learning library. Here's the entire output file Karpathy got:

Https://github.com/karpathy/char-rnn

DeepCoder

Researchers at Microsoft and Cambridge University have developed a machine learning system that can write code, called DeepCoder, which has the ability to learn.

DeepCoder can search in a large code base and then write effective code. The technology used by DeepCoder is called program synthesis, and a new program is formed by intercepting lines of code of existing software. Have to admit that many programmers do the same. By learning the input and output data of a series of code fragments, DeepCoder can automatically extract the code pieces that are useful for the target task.

DeepCoder can write programs that can run through in less than one second. As DeepCoder's programming experience increases, its ability to discern useful and useless code fragments increases, and the speed at which it generates programs will increase.

This does not mean that AI is stealing code, copying and pasting code from existing software, or searching for solutions on the Internet. The authors of DeepCoder expect it to participate in the programming contest in the near future.

Domain Specific Language (DSL) Sample Program Created by DeepCoder

One of DeepCoder's creators, Marc Brockschmidt, who participated in the Microsoft Research Project at Cambridge University, said: "The program will eventually allow non-programmers to obtain the desired program by describing their own programming ideas to the computer. The system will automatically write it."

You can find DeepCoder's documentation here:

https://openreview.net/pdf?id=ByldLrqlx

AI writing Python code

A French engineer published a blog post with the nickname of Benjamin TD explaining how he "teach an AI system how to write Python code in Python code."

He used the Long Term Memory Network (LSTM), one of the most popular recursive neural network structures. He uses a lot of Python code (using Pandas, Numpy, Scipy, Django, Scikit-Learn, PyBrain, Lasagne, Rasterio, etc.) to "feed" the network. The combined file size is 27MB.

The AI ​​then generates its own code. Here is the definition of initialization:

... using boolean expressions:

... and create an array:

If you look closely at the array, you will notice a syntax error. Benjamin TD's code is far from perfect, but he believes that this code looks good for a network that just learns from reading example code.

AI Programmer

In 2017, researchers from Bloomberg and Intel Labs claimed to have implemented the first AI system "AI Programmer" that can automatically generate a complete software program.

AI Programmer uses genetic algorithms in machine learning to simulate complex instructions. Although the program generated by AI Programmer now has the same level of complexity as that written by a novice programmer. However, researchers believe that the programs written by AI Programmer can completely go beyond the traditional categories and are not limited by human time and wisdom.

AI Programmer's software architecture. It can be seen from the figure that there are very few parts driven by humans. It is only necessary to input instructions at the beginning and finally receive the functions that apply to a certain task. The rest is entirely done by the machine.

Researchers say they can use AI Programmer to generate many software programs. The following table is a list of the generated programs.

Potential threats: Not sure how much the machine can do

Now that there are programs that can replace humans, the question that comes along is how much can they learn if machines can learn on their own? Where is the limit? Can this optimization process really teach software to write code better than humans? Will site development organizations and software companies use AI-driven programs to write code for themselves to save money? The fact is that we are not yet sure what the machine can do.

However, we know that artificial intelligence is already affecting some of the work of the IT industry. Wipro Ltd., a software consulting and outsourcing company in India, has used Holmes, an AI platform, to maintain software since June of last year. More than 3,000 engineers worry about their work. Needless to say, many of the technologies we use often use machine learning techniques—from speech recognition to machine translation.

AI and human programmers will play complementary roles in programming

One problem with artificial neural networks is that the algorithms they use are "black boxes," which means that their internal workings are too complex. Andrej Karpathy, AI Director of Tesla believes that for most applications, we can never get 100% accurate models driven entirely by AI. He believes that the accuracy of AI systems will exceed 90%, but they are not perfect, and they occasionally fail in unexpected ways.

In general, supervised and controlled deep learning systems perform better than unsupervised systems. This means that even the most complex AI software requires human participation and feedback to learn and adapt to the new environment. This fact provides a solution for future tensions between artificial intelligence and human programmers - working together.

We can be sure that in the near future, AI and human programmers will play a complementary role in programming. The AI's job may be to deal with repetitive, time-consuming tasks that require machine-excellent precision. The machine can avoid grammatical errors or design errors due to human factors. For example, one way in which AI can help is to automate functions. A programmer writes only a small part of the code, and then AI recognizes the programmer's intent and completes the rest of the code, saving mankind a lot of work.

Even if machines can completely replace the work done by programmers today, this does not mean that they do not need human help. But programmers must shift their attention from writing programs to monitoring the performance of the AI ​​and "feeding" the data to the AI. As Karpathy points out, programmers may become a data blessing—collecting, organizing, and analyzing data, then using them as inputs to AI, and letting AI do the rest.

Shore Power Source

SFC Converter,Shore Power Source,Shore Frequency Converter,SFC Static Frequency Converter

Jinan Xinyuhua Energy Technology Co.,Ltd , https://www.xyhenergy.com