Developers working in the field for even just a few years have already seen the rise and fall of several programming languages and tools. Software development is a dynamic field, and job needs are constantly shifting, so it's key to keep an eye on future trends and technologies that could aid the process.
A universal language and AI-based systems could revolutionize developer work in the future.
Here are five predictions for what programming will look like 10 years from now.
1. Programming will be more abstract
Trends like serverless technologies, containers, and low code platforms suggest that many developers may work at higher levels of abstraction in the future, removed from lower-level details of coding, said Forrester vice president and principal analyst Jeff Hammond.
"In theory, we should have to care less about the infrastructure of how cloud-native applications are built," Hammond said.
Hammond predicts that we will see more augmented reality (AR) and virtual reality (VR) on the front end, which means developers will need to gain the skills to build those applications, along with voice and natural language processing capabilities built in. "We're going to have to get used to doing things other than pixel-based developments with frameworks that we're comfortable with today to build web apps and mobile apps," Hammond said.
2. AI will become part of every developer's toolkit - but won't replace them
AI is beginning to infuse itself into developer tools today, Hammond said. For example, Microsoft added an AI platform into its Windows 10 update so that every developer building app on the OS will be able to use pre-trained machine learning models. Rice University researchers created an application called BAYOU that uses deep learning to act as a search engine for coding, allowing developers to enter a few keywords and see code in Java that will help with their task.
"I think we'll see more examples where development tools will try to predict developers' intent, and make it quicker for them to express that intent, which in the end, becomes another form of abstraction," Hammond said.
It's unlikely that these technologies replace developers, Hammond said.
"I think it's going to enable them to develop solutions even quicker than they are today, which is good, because there doesn't seem to be any shortage of people wanting additional applications in these services and new software," Hammond said. "I'm pretty bullish on that idea of those technologies becoming an aid to developers as opposed to a replacement to developers. There always enough low level stuff to do, and not enough time to do the high level stuff. Maybe it will give us more time to spend testing what we code."
3. A universal programming language will arise
To reap the benefits of emerging technologies like AI, programming has to be easy to learn and easy to build upon, said Karen Panetta, an IEEE fellow and dean of graduate engineering at Tufts University.
"Python may be remembered as being the great-great-great grandmother of languages of the future, which underneath the hood may look like the English language, but are far easier to use," Panetta said. "Programs will be built using coding blocks, like the wooden alphabet blocks we used when we were children. Developers will be able to connect the blocks to implement whatever functionality they need, and the blocks may not even be required to be written in a textual form."
Languages of the future may include visual images of data transformations, such as an image of a calendar to say, "This block allows the user to select and set dates," Panetta predicted. They might also involve blocks that enable tactile sensory devices to be included, so that even individuals with vision impairments would be able to develop programs, she added.
The dominant programming language of the future will also be universal, in that it will support all developers regardless of their spoken language, Panetta said.
4. Every developer will need to work with data
Developers of the future will need to learn more skills, particularly in data analysis, said Kristen Sosulski, clinical associate professor of information, operations, and management sciences in the Leonard N. Stern School of Business at New York University, and author of Data Visualization Made Simple.
"Everything from statistical data analysis, to non-linear and linear data analysis, to machine learning and even artificial intelligence," Sosulski said. "It's really not just learning how to code, it's also learning how to analyze data and sell different models."
5. Programming will be a core tenet of the education system
For students, programming will join reading, writing, and arithmetic to become a principle of education, Panetta said. "Every professional career of the future will require proficiency in providing data analysis for large data sets, machine learning and using simulation to reduce the cost of testing and manufacturing."
Sosulski recommends that those interested in becoming a developer start with an object-oriented programming language like Python, to give yourself a foundation to build on.
For developers entering or working in the field right now, it's important to understand the architecture behind the tools and frameworks you are using to prepare yourself for the future, Hammond said.
"What I found over the past almost 30 years is, the languages change, the frameworks change, the vendors change, but these implementation patterns tend to repeat themselves in each era," Hammond said. "If you understand that, you can begin to see the differences as new technologies come out and apply what you already know in these new contexts."