Introduction
Today we will discuss my point of view on The Future Of Programming with having over 25 years of programming knowledge.
Did you know that programming can be fully automated now?
Today I will break this down in the following way:
- Talk about programming and if it will be fully automated
- If computers will take over and produce programs on their own
- The future of programming jobs
I have had a lot of expertise in the field of programming over the years. I started with almost machine level coding such as assembly all the way to more recent high level programming languages such as Python, Java to even trying out a few no code frameworks.
Since I have gotten my hands dirty and leveraged a lot of different methods of machine learning and AI focused development I believe I can give you my point of view on what I think will happen in the next years.
One thing is for sure that no one can entirely predict at the rate that things are being developed and changed. There’s dramatic changes happening daily on this field and things can take a swing for the best or worst fairly fast.
Now that we have gotten this out of the way lets dive right into what I think, I will be starting with the simplest of things which is automation.
Will Programming Be Automated
This is one of the most difficult questions to answer but I believe sooner or later we will see some form of automation when it comes to coding. Let me explain though what I mean by automation as this could be to any extent.
In my opinion automation is already happening right now but it’s not what I would consider full automation and hands off the keyboard kind of thing. See this is simply a matter for a point of view from how each person understands the concept. In this scenario we will take particularly about being full automated where you as a user describe something at a high level and the system writes the code for you without any intervention or help.
So let’s look at an example of what this would look like:
Create a calculator application with a graphical user interface
The app will or system that performs the automation will write code that when built or generated has an executable file that runs on phones or computers that has a calculator app. Traditionally this is done using code to some extent now and some descriptive language, in the future the app or system that produces this will select something that ideally works with it and make the code for it. Once the code is made then the app will simply run.
I think you get the gist of what it really means by now. So let me give you some of the reasoning I have of why this is a possibility in the next 5-10 years maybe sooner.
- Artificial intelligence has made huge advancements these days and there’s already applications that write text and understand a lot of what you say. Understanding what you say is a precursor to writing the right thing.
- Since there’s a good precursor on understanding things we can now put the basis for implementing code. In programming there’s a huge movement of creating components and building structures so the next step to make this happen is to make a mapping of building structures and components with the AI that understands the requirements. Once this is built I believe it can deliver code.
- The complexity of applications has been on a rise so there’s a lot of investment lately on the no code movement and no code type applications. When there’s investment there’s also research and work that may yield results. Considering there’s money being poured into it I believe we will get the break through and get there.
- We have a lot of feature rich data models that have been trained to understand and already implement some pseudo code for training and other reasons. These rich data sets can be extended to the point that they produce valid and functional code without any user interaction.
The above list in my opinion is quite compelling and definitely is showing signs that we are headed there. If we take other areas of computing into account we will notice a general shift to automation and machine learning so I think code generation will be no exception to this.
Will Computers Write Code
Now that we have covered the basic concept of automating code generation we can visit if computers will be going off on their own and write code. Implementing code basically always starts with an idea. In order to have that idea on it’s own the artificial intelligence system has to get to a state that it’s so advanced that has some form of decision making on what kind of programs the user needs.
In this particular case we used earlier the example of a graphical user interface calculator. Offcourse coming up with this in our case was completely random but in most business cases there will be a reason to implement something (besides the case where you are learning and doing something for fun). This reason comes from a complicated train of thought of our own mind. It has reasoning along with a series of other factors that may influence our decision on it.
I believe our training models and datasets are many years away from such a thing happening. Having a computer autonomously making such decisions. Furthermore even if there’s software and technology that does that you will need a powerful computer that does it. Most conventional home PCs are still nowhere near having that processing and memory power to do this.
Finally I want to close with a riddle. Think of it this way it all starts with a train of thought and our brain conceives this in a fairly random order and based on our previous experiences. The computer even if it’s trained has no such concept built into it. The idea of random could be implemented sure that’s fairly easy but the idea of a past experience is definitely not there.
Will AI Replace Coding
Will artificial intelligence replace coding you may ask. The answer I believe is a subset on the advances we have been making as a society in machine learning. I brought up earlier a list of reasons of why I think we are very close that there’s going to be a platform that actually generates valid code. However will it replace it completely is a different story and I think the answer to that is not anytime soon.
Coding will always require some manual work to fine tune and customize things. We are visual human beings and the AI is basically blind. It cannot tell beauty apart from a functional application. So the app and code may be perfectly generated but visually it will never reach what the subject is expecting from it. Even the work Elon Musk is doing with neurolink where it translates signals on the brain and translates them into physical things is far from fully automating this and making it a reality.
Since there’s work towards that direction maybe in a few years if we have enough break throughs this will happen. If I have to ballpark it I’d say we are 10-15 years ago from starting to touch the surface of the ice berg of such a thing.
Will Programming Jobs Disappear
As a side effect and more of a continuation from the previous section I do not think programming jobs will disappear. There’s still a lot of work that needs to be done in order to have an AI completely replace programmers. I think we will get to the point very soon where the AI/Program is basically writing about 80-90% of the work but I think there’s going to be need for an instrumentor if you may.
By instrumentor I mean someone that tames and guides the artificial intelligence system on what and how to do it to finish up that last 10-20% of the code to make the application perfect. Since that 10-20% is very important in order to go to production I just don’t see programming jobs disappearing in the near future.
So now that we have come to a sort of agreement that a huge portion of code will be fully automated there’s one lingering question here and that is basically will the programming jobs be redefined as we know them today. The short answer in my opinion most definitely. This has already happened many times in the last 20 years we started with very low level languages such as assembly and now we are in high level rich frameworks that provide to the programmer everything around the sun.
However in this case I believe there’s going to be a biggest change that’s coming and that isn’t only going from a lower level language to a higher level language. I think the AI will be writing a lot of the code and we will be dictating to it what’s happening. So the programmer will be more like the maestro in an orchestra. He will be showing the path and then the AI will be marking it into a proper path walk.
As a programmer should you be ready for this in the near future? Absolutely you should you should start taking steps right now towards the right direction and following new technologies that are coming up. Staying completely up to date with new advancements will let you keep your career up to par with the new developments and also be able to take up this new landscape of programming jobs.
To close this a lot of people ask me what will happen if my job is completely redefined in the future should I stop learning and give up on existing languages? I would say flat out no because we really don’t know when and how this is going to happen which adds uncertainty and problems to your current growth. At least I can safely tell you I am not going to be spending too much time becoming an expert on one particular language or framework I rather spend more time becoming a better technologist which in my opinion is more important as it sits at a higher level on investment well spent and will pay dividends in the near future when the landscape is redefined.
Conclusion
If you found The Future Of Programming useful and you think it may have helped you please drop me a cheer below I would appreciate it.
If you have any questions, comments please post them below I check periodically and try to answer them in the priority they come in. Also if you have any corrections please do let me know and I’ll update the article with new updates or mistakes I did.
What are your thoughts? Will AI take over programming?
When people ask me this in real life I like to smile and leave it there, maybe the AI is trying to trick me into advocating for it!
If you would like to learn more about coding related stuff, I have a few articles below: