Autocoding platforms are now at the forefront of emerging technologies for programmers, offering an AI-powered alternative to churning out a large number of code snippets. This advancement, spurred by Microsoft’s GitHub Copilot platform, has changed the paradigm for developers all over the world.
As these ever-improving algorithms begin to take on more coding tasks, developers are slowly losing the skill of coding. Many past alternatives to coding, such as no-code and low-code platforms, were a good fit for non-technical users, attracting ire from so-called ‘hardcore coders’. However, even the most seasoned veteran of coding will benefit from an autocoding algorithm as it will vastly cut down the amount of code a dev actually needs to type.
Andrej Karpathy, the former Director of AI at Tesla and OpenAI, captured this sentiment perfectly with his tweet, where he said,
“Copilot has dramatically accelerated my coding, it’s hard to imagine going back to “manual coding”. Still learning to use it but it already writes ~80% of my code, ~80% accuracy. I don’t even really code, I prompt. & edit.”
This sentiment is echoed by a majority of the developer space, as auto coding platforms free up time that can be used to work on the other parts of the application. Autocoding platforms have been adopted with alarming speed, as seen by GitHub Copilot’s launch, which attracted 400,000 paying subscriptions within a month. With the widespread adoption of these platforms, the question remains; have developers forgotten how to code?
Eroding Coding Knowledge
Let’s be honest, anyone who has used Copilot knows that it autocompletes code that’s far from perfect. While the syntax of suggested code snippets might not have any issues, it is written in a non-efficient way that might cause issues with dependencies. Aryamaan, a user from the YCombinator news forums, had this to say about using ‘Ghostwriter’, an auto coding platform offered by Replit.
“It blew my mind half of the times. It was like it knew what I was going to do. The other times it was dumber than the standard auto complete. It doesn’t have any awareness of already defined variables and doesn’t use them to complete half-written variables.”
These kinds of responses to auto coding platforms are ever-present. On the other hand, these platforms are based on AI algorithms, which means they will only get better with time. For new developers, autocoding platforms might as well become an indispensable tool. Someone who is learning to become a developer today will enter the field in a few years’ time, but it is likely that autocoding platforms would have caught up to human coders during that time. Therefore, the upcoming generations of developers will slowly stop coding and the generation after that might even forget that coding exists.
Coders today are required to have a deep knowledge of the language of their choosing, along with knowledge on how to actually code a solution to a problem. However, coders of the future need to only know how a language works, as they can then combine this knowledge with prompt engineering to generate code snippets. Prompt engineering is the process of using NLP techniques to ask the right question to an LLM, thus prompting the best possible response from the algorithm.
As with other AI applications disrupting the education sector, there needs to be a consensus on how programming languages must be taught. New students will either need to learn how to extract the most out of autocoding platforms through prompt engineering or stick with the current method of learning a language inside out only to lose out to AI in the coming years.
What’s Next For Autocoders?
Even as the adoption of autocoding platforms continues to increase, the companies behind these offerings are innovating to add new features and optimise the user experience. While Github Copilot has come under fire for harvesting users’ code and using it to train their algorithms, the fact remains that it continues to improve with every snippet of good code added to its database.
However, other companies have taken a more responsible approach to data usage. Take Tabnine for example, which only uses publicly permissible data to train its algorithms. Tabnine’s models can also learn from the coding style of the user. By running algorithms locally on the users’ computer, the model can pick up on the style of the programmer in question, offering snippet suggestions that align more closely with the users’ requirement. This also prevents all the data from being sent back to a centralised repository, preserving privacy while providing additional value.
As opposed to the current approach of creating one huge model which can serve suggestions in multiple languages, like Codex, future autocoding platforms might take multiple models and plug them into the language that best suits them. Tabnine has already found success in using various open-source models for different programming languages. Brandon Jung, VP Ecosystem and Business Development at Tabnine, stated,
“We are taking the best models that are coming out of everywhere else, they’re open source, they’re great. We take the very large models, which are really expensive to train, and we specialise those on code based off of what’s best for each language. So, as it turns out, some of these are better for some languages than others.”
Taking this approach can not only make autocoding platforms more accurate, it can also make it more viable for companies to run and fine-tune them on their personal code repositories. Currently, a large amount of data is siloed with service providers like GitHub, AWS, and GCP, but moving away from such platforms can democratise access to autocoding. This, in turn, will encourage more people to utilise autocoders as tools more effectively, thereby increasing the accuracy of their predictions.
GitHub Copilot might be setting a dangerous precedent for the future of autocoding platforms, but the benefits it offers to programmers is undeniable. More advanced AI pair programmers can not only vastly improve the efficiency of code, but may also relieve pressure on coders who are routinely overworked. Conversely, educational and training institutions must also recognise the utility of having an autocoding platform in a developers’ toolkit and equip them with the tools they need to programme for the future.