The future of code; an ever-changing story
Baptiste Bouffaut, our CTO here at Ponicode, recently joined us for a chat about programming languages and what we can expect them to look like in the future. Here are the main areas we covered:
The history of computer science is one of continuous evolution and innovation, with new programming languages appearing constantly. Natural selection eliminates a large portion of these but the emergence of AI and quantum computers could very well change that.
PHP, Ruby, Java, Swift, Python… For 20 years new languages have been appearing year on year. Following structured languages, object languages and languages dedicated to a specific domain, trends have evolved in a very natural way. Every developer who gains experience in existing languages comes to understand what is and isn’t practical to achieve with a language and envisions how they can improve it in terms of readability or code quality. Every language has its pros and cons and every developer has their own opinion on what these should be.
AI and No-Code aren’t going to kill programming languages
New languages will continue to emerge for a long time to come and the “No-Code” movement causing the buzz nowadays will certainly not be putting an end to the role of the developer, nor will it be putting an end to programming languages for that matter. To the contrary, the “No-Code” or “Low-Code” concepts are new tools which add to the means available to companies in creating their applications but these approaches are unlikely to mark a breakthrough in the world of development - even more so considering the fact that these solutions must themselves be developed using “traditional” coding languages.
In 10, 20 or even 30 years time will the whole world be able to create a software application without mastering the most basic language? This will probably be the case thanks to Artificial Intelligence, but “No-Code” is only one of the additional tools that will be required to meet these very specific needs. As such, “No-Code” is but another evolution in the history of computer code, originating in the perforated cardboard boxes of the 19th century Jacquard looms!
Back to the basics of languages with the explosion of IoT
In the early days of microcomputing, the power available was very limited and a language like C, invented in the 1970’s, made it possible to exploit the components existing at the time. Since then, the available computing capacity has logically pushed languages towards more abstraction, in order to get closer to the human way of thinking.
However, the evolution of computer languages is not linear and the most recent languages don’t necessarily drive out the older ones. Thus, the C language is far from being dead, and, with the rise of connected objects and IoT we are even seeing a renewed interest in the language. It is being used to develop applications that will run on inexpensive, low-power components that consume as little electrical current as possible in order to save energy. These applications must be ultra optimised and so, the use of a language close to the software has become important again.
A new line of languages for quantum physics
The environmental impact of IT could also lead to the development of new languages, more specifically oriented towards energy saving, even though, as we have seen, this same problem in IoT is becoming a trend again.
The developer will collaborate with many AI’s
The development of artificial intelligence technologies will have a direct impact on the work of developers. Thus, a whole new trend is emerging in “AI on Code”, i.e. developing artificial intelligence models capable of writing code. This is an extremely complex issue. Some languages lend themselves more to automatic generation than others and we might see a selection of languages well suited to training artificial intelligence on code. For the moment we are only at the beginning of this concept, but as soon as convincing use cases emerge, we can be ready to expect a very high level of interest. In the near future, the developer will likely collaborate with several AI to write and debug their code.
A good developer must know how to keep an open mind
In response to this new wave, a developer will have to be able to change language multiple times over the course of their career. This is a common debate when hiring a developer: should you choose a person who is very talented in their preferred language or someone who is stronger in terms of their language design skills and can switch easily between languages? I tend to go with the latter; I’m wary of gurus defending their preferred language tooth and nail no matter what the use or circumstance. The best developer is open minded and always ready to learn a new language.
For the IT Department there is no one answer. IT Department’s need to limit the number of languages they use, even if only to avoid overloading the learning of its developers’. From my point of view, a startup in the rapid growth phase should focus on its product and not introduce new languages to simplify its skills management without hindering its development. Only very large companies and, of course, GAFAM can manage multiple projects regardless of the language chosen by the developers. Even though the vast majority of companies do not have the resources to follow such an opportunistic model in technological terms, an IT manager must always keep an open mind to developments and know when they will need to change language.
Thank you to Baptiste for keeping us up to date on what's happening in the programming world!
If you want an insight into the future trends of AI, you can check out Hamza's article here. 🦄 🌈