Could AI Replace Programmers?

Publié le - Dernière modification le

Machine language experts have recently painted a future for the world that we've only read about in science fiction. They say that soon Artificial Intelligence will replace humans in jobs with low wages. Driverless vehicles will put delivery drivers out of jobs. In less than one hundred years, even surgeons and novelists will be bested by machines.

Such forecasts have shaken up everyone, from salespersons to programmers. Machine learning teaches robots to think about problems and find solutions just like humans do.

Artificial Intelligence (AI) can already beat the best poker and Chinese Go players in the world. Marl/O can play Mario, and each time it plays it finds better, newer paths through the levels.

If you've looked at Google Photos lately, you'll see that the AI behind it has automatically tagged your pictures into different classes. It's not accurate one hundred percent of the time, but it is accurate enough to recognize forests, selfies, dogs, cats, streets, nightclubs and so on.

Will machines do all of the programmings in the future?

The answer is not quite so simple. It will not happen with the current hardware. Looking at the hardware and the level of sophistication that machines have today, experts say that it's not possible for them to think independently without a little help from humans. A good analogy to explain the level that they are at today is to think of Deep Thought, the AI in The Hitchhiker's Guide to the Galaxy.

Douglas Adams thought up this seemingly sentient machine Deep Thought, which had the task of finding the answer to the ultimate question of the universe, life, and everything. To complete the task, Deep Thought was inputted with every piece of information that existed in the universe. Deep Thought spent seven million years pondering this question before it came up with an answer (which happens to be 42).

Deep Thought is very similar in levels of sophistication to the AI we have today. The similarity lies in the fact that for machines to 'think' and solve problems, we have to feed them significant amounts of data.

Peter Norvig of Google Inc. will tell you that to get an AI algorithm to correctly identify the difference between a panda and a gibbon in photos; it first has to be given images of pandas and gibbons. Furthermore, these pictures have to be labeled correctly.

Identification is only a small example of what AI does or can do today, with supervised machine learning. According to Norvig, one day we might be able to have AI write code without the involvement of developers at all. But that day is not going to come in our lifetime. Interest in AI has ebbed and flowed for a long time, in cycles. Some experts suggest that even before we can see AI reach levels of sophistication where they could code without human supervision, there might be an AI winter. AI winter is the phrase used for periods of limited funding and interest in AI research.

AI Can Help Programmers

Artificial Intelligence may not be able to write code anytime soon. But machines can and have helped coders solve problems with great ease and assisted with thousands of lines of coding. Compare the differences between spell-check in word processors - which are written with traditional programs - versus search engines - which are written using machine language. Only twenty lines of code and lots of example may be enough for the intelligent algorithm to throw up accurate results for your wrongly spelled searches. The spell check in word processors is not as accurate as Google's search algorithm since the man-made word processor programs do not recognize words outside of the dictionary. Plus, it needs a few thousand lines of code to complete the task.

In the future, we may have a Siri-like natural language processor that will respond to a simple command to carry out tasks. Note that there will still need to be a human in the loop, to decide what needs to be created. As it is, the tools that programmers have to help them carry out millions and billions of iterations in the backends are already quite sophisticated.

How sophisticated will AI be when it can write programs on its own?

Of course, programming is still in its infancy. Some programmers are keeping an open mind about the fact that how we create software may dramatically change in the future. Until then, platforms like Freelancer will continue to be home to programmers who can build programs and applications that businesses need. Until AI goes mainstream, programmers can still use their existing skills.

We also don't entirely understand AI today. The mystery of AI comes from the fact that while we feed machines data, we still don't comprehend how it sees this data and processes it. Outputs are often surprising to some of the smartest people in the world. This is especially true of unsupervised machine learning, in which the AI is told to create its own model of the world and find a solution to a problem based on it.

Does AlphaGo Foreshadow the Programmer of the Future?

Take a look at the AlphaGo algorithm. It is the algorithm that beat the world champion in one of the most complicated games in the world, Chinese Go. Go is a modern game, similar in some respects to chess. There are two players. There is no dice involved, so there are no random elements. Twenty years ago, IBM's Deep Blue defeated Garry Kasparov. In 2017, AlphaGo  defeated Go champion Ke Jie in what became a very significant breakthrough for AI. Unlike chess, which starts with sixteen pieces of six different types and each piece moving differently, Go starts with no pieces on the board. Each player places a stone on the board, and every stone follows the same rules. Each player has to take over as much territory as possible. On the face of it, it appears that the rules of Go are simpler than chess. But if you look closely, Go is more complex.There are numerous possibilities for the player at endgame in Go, as opposed to chess's fewer options. Go has more positions for the computer to consider (10^761) versus 10^120 for chess.

How AI Play Games like Chess and Go?

AIs usually play such games by anticipating possible scenarios several moves deep after the opponent plays, and choosing the next move which is furthest from the worst-case scenario. It 'thinks' via a human-constructed method called an evaluation function.

In 1997, Deep Blue had to be fed chess knowledge and a library of opening moves by grandmasters. People at IBM also designed a special evaluation function for the machine. Coders fed a lot of the game's possible states into the supercomputer, but chess has so many moves the computer can't 'see' all the possible game states to end-game at once. Go has a larger number of possible moves, and the old way wouldn't work for AlphaGo. So coders set AlphaGo up with a complex system of neural networks, similar to the neural pathways in the human brain. These networks are trained layer by layer to make intuitive decisions. AlphaGo uses these neural networks, along with a system of searching potential game moves like Deep Blue. But the difference between AlphaGo and Deep Blue is that while people designed Deep Blue's evaluation function, AlphaGo's neural pathways 'learned' to predict human moves in Go, after having played against itself millions of times.

AlphaGo played against Lee Sedol in 2016 and defeated him. In 2017, he played against Ke Jie, also defeating him. According to the players, the AI showed vast improvements since its first game. We can only expect AI will get better at learning how to look for relevant patterns, and this would be similar to what programmers do.                                                                             

Programming of the Future

Like AlphaGo, programmers think ahead many levels to anticipate and remove problems that aren't visible yet. If we could automate these steps with AI, we would be free of simple logic, syntax and design errors that the AI would never make, but humans do. Plus, the AI would learn from past mistakes.

Do you think programmers stand a chance against AI? Let us know in the comments below. 

 

Publié 11 août, 2017

LucyKarinsky

Software Developer

Lucy is the Development & Programming Correspondent for Freelancer.com. She is currently based in Sydney.

Article suivant

Do You Need A Portfolio?