Can machines code in the future? Yes. If we look at it on a broader prospect we will realize that this is achievable.
It can all be a step by step evolution –
Help – Start integrating open source repositories and forums on a click from IDE. This is different from the API documentation that any programming language provides. This will help developer understand the real time problems that other developers are facing and view the solutions provided by experts across the globe.
Suggest/Recommend – Auto suggest a block of code based on what developer might want to achieve. Auto-Identify the programming languages that developer is trying to develop with.
Auto-Code – A developer assistant or a developer bot that would get the user requirements in plain simple language and then do analysis on the open source codes to provide final block of code.
Let’s look at opportunities we have in making this work –
1) Open source repository pooling –
Making use of code from many open source contributors like GitHub, Microsoft, Facebook, Docker, etc to identify the best suitable code for scoped problem.
My way of seeing how it is possible and what we are actually automating with intelligence?
Q1 :: What is happening in most cases?
A1 :: Many a times, a developer breaks a single bigger problem and breaks into multiple minor blocks and tries to look for help from stack overflow, GitHub, etc to identify the best possible solution for his minor problems. Later, all these minor solutions are integrated and stitched to solve a bigger problem.
Q2 :: What are we trying to solve here?
A2 :: Rather than developers searching for lines of code to solve their problems by going online, an algorithm takes care of looking at the lines of code – execute all at once and then find the best suited code and then keeps on adding these minor solutions one after the other to solve the bigger problem.
2) Language free coding –
Programming languages are a medium for the software developers to interact with machines and tell machines on what they have to do. Open source repositories have enough code to solve the same problem in many languages. This helps mainly when you already have an existing functionality written is some particular language and you are looking to either extend the feature or enhance it.
3) Pick the best code based on their ratings –
Any piece of code should be tagged with multiple parameters like performance, speed, execution, etc. There will always be different solutions to solve a problem. Open source repository might have blocks of code solving the same problem. The better way to pick and select the best code is by picking the code based on the ratings.
While google and other big companies are trying to do lots of AI experiments like AutoDraw, AIY, api.ai, converse.ai and many other things – There might be a chance for Code.ai in the near future.
Truly, AI is going to create a new way of coding rather than sweeping away developers. It’s not that no developer is needed – There is going to be new set of roles and responsibilities for the developers(like competing with other developers, Code optimization, Better code performance and so on) apart from simply developing code.