Future Software Programming Languages

blog single post

There are many ways to rank programming languages, like the number of websites built with them, Google search results, GitHub projects or StackOverflow questions. We pored through data from job search engine Indeed.com for the number of job postings that contained the name of a programming language.

We did the same analysis and here are the current most in-demand programming languages of 2017.

1. SQL

The number of Indeed job descriptions including SQL (Structured Query Language) increased by nearly 50,000 this year over last year, giving SQL a dramatic lead over the other languages. It’s unclear if this is entirely due to more SQL jobs in the market or a change in how Indeed works. Either way, SQL is still the clear leader in our analysis. SQL is used to communicate with and manipulate databases. It is extremely common, with many variations like MySQL and Microsoft SQL. Microsoft released SQL Server 2016 in the past year, which proved to be surprisingly popular and introduced several new features to make the language more open-source like integration with R, the popular data analysis programming language, and a Linux version.


2. Java

The number of Java positions available on Indeed went up by almost 30,000 in 2017 compared to 2016. This is possibly due to the rise in Android users in the market, the steady growth of its developer community, and some of the inherit characteristics of Java that make it worthwhile to learn. After all, Java is a simple, readable programming language used by millions of developers and billions of devices worldwide. All native Android apps are built in Java and 90 percent of Fortune 500 companies use Java as a server-side language for backend development. User have been getting excited about the upcoming Java 9 launch in July 2017, although Java Enterprise Edition declined in popularity in 2016.


3. Python

Python continued to grow in popularity in 2016 and moved up two places in our rankings to be the third-most common language by job posting. Furthermore, as highlighted in our most recent guide to learning Python, it’s also a general purpose programming language that emphasizes code readability and increasing developer productivity, used for desktop apps, web apps and data mining. In October 2016, Microsoft launched the beta version 2.0 of its Cognitive Toolkit open source deep-learning framework, which includes support for Python.


4. JavaScript

JavaScript (different from Java and mean stack development) moved down one place in our ranking compared to 2016, but otherwise the number of job postings stayed roughly the same. It’s a mainly client-side, dynamic scripting language used for front-end development. JavaScript is compatible across all browsers, used in over 90 percent of all web pages and is the most popular language on StackOverflow. Compatibility and adoption of JavaScript 6 continued to grow in 2016 and Progressive Web Apps became more usable, allowing offline-first functionality for web apps.


#5 C++

C++ grew by about 20,000 job postings over 2016 and passed pori to take fifth place. Built on C, the grandfather of all programming languages, C++ is a powerful, high-performance language used to build system software, games engines and desktop and web apps. Many beginners find C++ harder to learn than dynamically typed languages like Python or JavaScript.


6. C#

“C Sharp” saw a small increase in popularity in 2017, but not enough to keep it from falling behind C++. The language was developed for Microsoft’s .NET software framework and can now be used on non-Windows machines since the release of the new .NET Core open-source development platform in June 2016. Its main use is building Microsoft enterprise software. Most of the features in C# 7.0 were released last year, including language support for Tuples, local functions, pattern matching and many more.

For more info, check-out our beginner’s guide to .NET Core!


7. Perl

Perl made a big jump in popularity this year to move ahead of iOS and PHP and knock Ruby off of our list. Perl, or “the duct tape that holds the Internet together,” as it’s been named, is actually two languages now; Perl 5 and Perl 6, which launched in Dec. 2015. Both of them are general-purpose dynamic programming languages that see a lot of use in CGI, graphics, network, and finance programming. Some think the growth of DevOps triggered this popularity surge because Perl is versatile and works well with other languages, making it a good DevOps tool.


8. iOS Family

Most developers writing for the iOS operating system use Objective-C, C, or Apple’s new Swift programming language. We counted any job postings that included “iOS” in our ranking and saw little change from 2016. Swift launched in 2014 and it rose quickly in popularity due to its scalability, speed, ease of use and strong demand from the mobile app marketplace. Apple released Swift 3.0 in Sept 2016 with new features including better translation of Objective-C APIs, modernizations of debugging identifiers and a new model for collections and indices. Apple plans to release Swift 3.1 and Swift 4 in 2017.


9. PHP

PHP stayed in the same place in our rankings from 2016 to 2017 with little change in popularity. It’s a server-side programming language used on more than 80 percent of websites today including Facebook, Wikipedia, Tumblr and WordPress. It wasn’t the buzziest language in 2016, but the sheer number of websites still built with it ensure it’s still a useful skill for developers, especially when paired with Javascript and SQL.


1. R

At heart, R is a programming language, but it's more of a standard bearer for the world's current obsession with using statistics to unlock patterns in large blocks of data. R was designed by statisticians and scientists to make their work easier. It comes with most standard functions used in data analysis and many of the most useful statistical algorithms are already implemented as freely distributed libraries. It's got most of what data scientists need to do data-driven science.

Many people end up using R inside an IDE as a high-powered scratchpad for playing with data. R Studio and R Commander are two popular front ends that let you load up your data and play with it. They make it less of a compile-and-run language and more of an interactive world in which to do your work.

Highlights: Clever expressions for selecting a subset of the data and analyzing it

Headaches: Aimed at desktops, not the world of big data where technologies like Hadoop rule.

2. Java 8

Java isn't a new language. It's often everyone's first language, thanks to its role as the lingua franca for AP Computer Science. There are billions of JAR files floating around running the world.

But Java 8 is a bit different. It comes with new features aimed at offering functional techniques that can unlock the parallelism in your code. You don't have to use them. You could stick with all the old Java because it still works. But if you don't use it, you'll be missing the chance to offer the Java virtual machine (JVM) even more structure for optimizing the execution. You'll miss the chance to think functionally and write cleaner, faster, and less buggy code.

Highlights: Lambda expressions and concurrent code

Headaches: A bolted-on feeling makes us want to jump in with both feet and use Scala (see below).

3. Swift

Apple saw an opportunity when programming newbies complained about the endless mess of writing in Objective C. So they introduced Swift and strongly implied that it would replace Objective C for writing for the Mac or the iPhone. They recognized that creating header files and juggling pointers was antiquated. Swift hides this information, making it much more like writing in a modern language like Java or Python. Finally, the language is doing all the scut work, just like the modern code.

The language specification is broad. It's not just a syntactic cleanup of Objective C. There are plenty of new features, so many that they're hard to list. Some coders might even complain that there's too much to learn, and Swift will make life more complicated for teams who need to read each other's code. But let's not focus too much on that. iPhone coders can now spin out code as quickly as others. They can work with a cleaner syntax and let the language do the busy work.

Highlights: Dramatically cleaner syntax and less low-level juggling of pointers

Headaches: The backward compatibility requires thinking about bits and bytes occasionally.

4. Go

When Google set out to build a new language to power its server farms, it decided to build something simple by throwing out many of the more clever ideas often found in other languages. They wanted to keep everything, as one creator said, "simple enough to hold in one programmer's head." There are no complex abstractions or clever metaprogramming in Go—just basic features specified in a straightforward syntax.

This can make things easier for everyone on a team because no one has to fret when someone else digs up a neat idea from the nether reaches of the language specification.

Highlights: Just a clean, simple language for manipulating data.

Headaches: Sometimes a clever feature is needed.

5. CoffeeScript

Somewhere along the line, some JavaScript programmers grew tiredof typing all those semicolons and curly brackets. So they created CoffeeScript, a preprocessing tool that turns their syntactic shorthand back into regular JavaScript. It's not as much a language as a way to save time hitting all those semicolons and curly bracket keys.

Jokers may claim that CoffeeScript is little more than a way to rest your right hand's pinkie, but they're missing the point. Cleaner code is easier to read, and we all benefit when we can parse the code quickly in our brain. CoffeeScript makes it easier for everyone to understand the code, and that benefits everyone.

Highlights: Cleaner code

Headaches: Sometimes those brackets make it easier to understand deeply nested code.

6. D

For many programmers, there's nothing like the very clean, simple world of C. The syntax is minimal and the structure maps cleanly to the CPU. Some call it portable Assembly. Even for all these advantages, some C programmers feel like they're missing out on the advantages built into newer languages.

That's why D is being built. It's meant to update all the logical purity of C and C++ while adding in modern conveniences such as memory management, type inference, and bounds checking.

Highlights: Some of the most essential new features in languages.

Headaches: You trade some power away for the safety net.

7. Less.js

Just like CoffeeScript, Less.js is really just a preprocessor for your files, one that makes it easier to create elaborate CSS files. Anyone who has tried to build a list of layout rules for even the simplest website knows that creating basic CSS requires plenty of repetition; Less.js handles all this repetition with loops, variables, and other basic programming constructs. You can, for instance, create a variable to hold that shade of green used as both a background and a highlight color. If the boss wants to change it, you only need to update one spot.

There are more elaborate constructs such as mixins and nested rules that effectively create blocks of standard layout commands that can be included in any number of CSS classes. If someone decides that the bold typeface needs to go, you only need to fix it at the root and Less.js will push the new rule into all the other definitions.

Highlights: Simpler code

Headaches: A few good constructs leave you asking for more.


Once upon a time, MATLAB was a hardcore language for hardcore mathematicians and scientists who needed to juggle complex systems of equations and find solutions. It's still that, and more of today's projects need those complex skills. So MATLAB is finding its way into more applications as developers start pushing deeper into complex mathematical and statistical analysis. The core has been tested over the decades by mathematicians and now it's able to help mere mortals.

Highlights: Fast, stable, and solid algorithms for complex math

Headaches: The math is still complex.

9. Arduino

The Internet of Things is coming. More and more devices have embedded chips just waiting to be told what to do. Arduino isn't so much a new language as a set of C or C++ functions that you string together. The compiler does the rest of the work.

Many of these functions will be a real novelty for programmers, especially programmers used to creating user interfaces for general computers. You can read voltages, check the status of pins on the board, and of course, control just how those LEDs flash to send inscrutable messages to the people staring at the device.

Highlights: The world of devices is your oyster.

Headaches: It's largely C and C++.

10. CUDA

Most people take the power of their video cards for granted. They don't even think about how many triangles the video card is juggling, as long as their world is a complex, first-person shooter game. But if they would only look under the hood, they would find a great deal of power ready to be unlocked by the right programmer. The CUDAlanguage is a way for Nvidia to open up the power of their graphics processing units (GPUs) to work in ways other than killing zombies or robots.

The key challenge to using CUDA is learning to identify the parallel parts of your algorithm. Once you find them, you can set up the CUDA code to blast through these sections using all the inherent parallel power of the video card. Some jobs, like mining Bitcoins, are pretty simple, but other challenges, like sorting and molecular dynamics, may take a bit more thinking. Scientists love using CUDA code for their large, multidimensional simulations.

Highlights: Very fast performance, at least for parallel code.

Headaches: Identifying the easily parallelizable sections of code isn't always easy.

11. Scala

Everyone who's taken an advanced course in programming languages knows the academic world loves the idea of functional programming, which insists that each function have well-defined inputs and outputs but no way of messing with other variables. There are dozens of good functional languages, and it would be impossible to add all of them here. Scala is one of the best-known, with one of the larger user bases. It was engineered to run on the JVM, so anything you write in Scala can run anywhere that Java runs—which is almost everywhere.

There are good reasons to believe that functional programming precepts, when followed, can build stronger code that's easier to optimize and often free of some of the most maddening bugs. Scala is one way to dip your toe into these waters.

Highlights: Functional, but flexible enough to play well with others using the JVM

Headaches: Thinking functionally can be difficult for some tasks and applications.

12. Haskell

Scala isn't the only functional language with a serious fan base. One of the most popular functional languages, Haskell, is another good place for programmers to begin. It's already being used for major projects at companies like Facebook. It's delivering real performance on real projects, something that often isn't the case for academic code.

Highlights: Already battle tested

Headaches: Thinking functionally can require fixing some bad habits.

13. Jolt

When XML was the big data format, a functional language called XSLT was one of the better tools for fiddling with large datasets coded in XML. Now that JSON has taken over the world, Jolt is one of the options for massaging your JSON data and transforming it. You can write simple filters that extract attributes and JOLT will find them and morph them as you desire. See also Tempo and using XSLTitself.

Highlights: Very simple for many common JSON problems

Headaches: Some JSON transformations are close to impossible.