Will Artificial Intelligence Replace Computer Programmers?
With the continuous advancements in technology, as well as organizations investing more and more into AI and robotics, the inevitable question remains: will AI replace programmers in the future?
Over the past few years, several studies have been pointing out to the significant threat automation processes pose, often sensationalizing the potential threat that AI poses to developers, subsequently aggravating programmers’ fears.
While the need for human programmers has not subsided, the remarkable advances in AI cannot be ignored.
Anyone who reads the news and keeps up with the latest in tech will notice the constant new developments, reported on in, an almost daily, bases.
AI is able to handle more and more tasks humans have been doing, and the progress is accelerating.
So, will AI render programmers obsolete?
Before we address this question, it is essential that we first understand how AI has gradually transformed over the years, its history, as well as the hype surrounding it.
Early AI and old school Programming
The first mention of AI can be traced back to the 1950s, notably computers that played checkers. From then onwards, the ante kept increasing with computers eventually beating humans at checkers, chess, backgammon, and finally even beating us at Go! This initial AI wave saw computers apply basic rules to beat humans at various games using a finite number of moves and subsequent clear outcomes.
While this is great, it is hardly an existential threat for developers. Computer programs that are proficient at a board game are cool for sure, but nowadays this is hardly ground-breaking news. Developing a set of rules as well as steps to make solid decisions in a given situation runs into limitations in the wild. Many of the real-life problems’ programmers are trying to find solutions for these days are not as straightforward as a board game.
Traditional Coding and its complexity
When it comes to conventional programming, codes are a distinct set of rule-based decisions that are nested in increasingly intricate conditionals. While this works quite well in simple, predictable scenarios, the bigger and more complex a project gets, the more the limits to this method become noticeable.
Testing traditional coding must anticipate each possible situation, and this process grows exponentially. As a program grows, scalability issue can develop, and at some stage, it can get too unwieldy to keep adding more code lines to the original code base.
The fragility of relatively large programs is something we all have to deal with as we use computers. Most of us have probably had the experience of installing an update to a program which was meant to give us all the latest and greatest features, only to find it buggy as hell. Adding code often breaks another seemingly unrelated thing, I’ve made that mistake in my programs many times, and this can result in frustrating consequences. The point is… there is a hard limit to how large traditional, non-AI programs can become.
Black Box Characteristic of AI
The basic approach of machine learning is to look at data and learn as opposed to writing a ton of rules. This approach eradicates the testing and scalability concerns that can plaque rule-based programming.
The most significant setback with machine learning is that it is a black box, even the developers of the machine learning algorithm don’t have a clue as to how decisions are actually made!
When machine learning makes much more sense than traditionally programmed code
There are many examples of AI and machine learning in use today, I’ll just mention a few which are used by most people on a regular basis.
Recommendation engines used by ecommerce stores and content providers, such as Netflix, use machine learning to make suggestions to new and existing customers, and have proven to be more effective than traditionally programmed engines of old. Machine learning is well suited to recommendation engines because it can uncover opportunities not immediately apparent to human developers.
Some other types of programs are simply not feasible without using machine learning. For example, image recognition software, such as that developed by Google. As a developer, I couldn’t fathom how to write such a program and make it remotely accurate without using machine learning, as well as lots and lots of data!
Other examples of ML assisted programs are those used by Google Home, Siri, Alexa etc. The voice recognition systems are heavily reliant on machine learning techniques. Deep neural networks are also employed in these voice recognition systems to make them more effective. Training from millions of users makes them appear smarter, and the technology is heading towards a point in the future where they’ll be able to hold a conversation with you – if that’s your thing :)
Why Is AI Such A Hot Topic Now?
Google search volume for 'machine learning' from March 2009 to March 2019
Many of the algorithms being used for machine learning are from the 80s and 90s, for an industry fascinated with the newest thing, the underlying artificial intelligence logic is pretty old.
However, three relatively recent things have happened which is making machine learning more practical:
- Storing data is now cheap
- Increase in computer processing power
- The exponential growth of accessible information
Automating Tech Jobs
It can be quite worrisome to check out raw data on job automation, and employees are concerned. Here on this website we poll our readers, and ask the question:
“How likely do you think computer programmers will be taken over by AI within the next 20 years?”
Our poll currently shows a probability of 0%.
Realistically speaking though, I do not think that if you are a programmer you need to head to the hills just yet!
The actual future of AI, especially in engineering, is utilizing technology to facilitate the more efficient and faster working of human engineers, not to mention lesser bugs. As such, AI is expected to transform human developers into better and more robust programmers as opposed to entirely replacing them.
Will AI help programmers, and how?
AI is expected to enhance every stage of the software development journey. In the planning phase, projects will see a better technological selection, better analysis, as well as opportunities to reuse code from other projects. Similarly, when it comes to testing, the process will become more rigorous and comprehensive since AI will aid QA engineers. What’s more, with AI assistance, automating deployments will be faster and less prone to error.
One great example is the Accenture myWizard, an exclusive platform which hosts intelligent virtual agents using machine learning to collaborate with human co-workers. Harvard Business Review outlines that with this platform, the AI project manager is already assisting Accenture in delivering projects through correct prediction of red flags a whopping 80% of the time.
Programmers are already getting help from AI
AI is already assisting programmers. For instance, DeepCode is already making use of machine learning in assessing and cleaning up existing code. Experts hail it as the Grammarly’ of code! Similar to how grammar and spelling checkers haven’t wiped out editors and proof-readers, AI is also working to aid programmers.
What’s more, some other start-ups are taking AI one step ahead. For example, Logojoy is utilizing machine learning to produce simple designs and logos while UIzard is now converting handwritten designs into CSS and HTML.
Will AI replace Programmers?
Although the industry is considerably evolving and the workflow will include more automation in the future, it is unlikely that AI will completely wipe out the need for human programmers any time soon.
Without a doubt, numerous aspects of programming will eventually be automated. However, this won’t necessarily result in job loss.
Automation decreases costs for firms that develop software. How? These firms can effectively generate more software in a relatively shorter time span. With the demand for programs and software increasing significantly, not to mention automation cutting down the overall production costs, it is inevitable that business opportunities will continue to increase.
Work to be better
The takeaway from all this is that we have no reason for cowering in fear of an impending replacement. Instead, it is essential that we shift our focus on the skill sets that are the least automatable.
As programmers, it is essential that we take time to study both traditional programming and machine learning and identify when a particular approach is better suited to a given problem.
Non-technical abilities and skills which are not easy to automate will be the unique factor which distinguishes programmers. Creativity and domain expertise are the elements which will have more significance. Better intelligence and soft skills are also factors which will set engineers apart.
In essence, what would be the best move for programmers is to continue learning and honing their skills. What’s more, programmers should also be more willing and open to the idea of working in tandem with AI in the future.