Pour le moment, cette page n'est disponible qu'en anglais.

When developers start exploring the world, they often encounter people speaking languages they don’t know. We’re not talking about a trip to Europe, of course, we're talking about the world of startups, agencies, and enterprise IT, where one shop might speak Python while another is fluent in Java. It's a veritable Babel out there. Assuming you can’t be fluent in every programming language, which ones are the most important or advantageous to know? One way to answer that question is to ask what languages do the people who hire programmers most want from the candidates they interview? That is, what languages do most of today's programming jobs speak? To find out, we looked into educational data, job listings, and the in-the-trenches experiences of IT placement specialists.

Schools like Python

One indication of what's popular—or at least what constitutes a baseline standard—is the languages educational institutions choose for their introductory programming courses. In a post on Blog@CACM, Philip Guo, an assistant professor of computer science at the University of Rochester, looked at the top 39 computer science departments among U.S. universities (as ranked by U.S. News.) After crunching the numbers, Guo found that Python is the most frequently taught programming language, with 27 classes, followed by Java with 22 and MATLAB a distant third at 8. (The total adds up to more than 39 because Guo looked at courses required for Computer Science majors as well as those for a more general audience.) According to Guo, Java has been in the lead for most of the past decade, only recently being surpassed by Python. Top39-700.4 (The chart above was used with permission from blog@CACM.)

Job boards favor Java

Of course, schools have different needs than real-world employers. Schools often prefer to start students out with a high-level, easy-to-read language like Python. That’s especially true for intro-to-programming courses designed for students not majoring in CS, to make it easier to teach the concepts behind programming. A better indication of what actual development shops are looking for might be the skills mentioned on developer-oriented job boards like Dice.com. According to Dice's July, 2014 data, Java (including Java Platform Enterprise Edition, Oracle's extended version) and various flavors of C (including C++ and C#) are out in front by a large margin, with 17,393 and 16,172 job postings asking for those skills this month. JavaScript, .NET, HTML, and XML round out the top five. Python comes in eighth, with 5,142 requests. Dice chart Another site that tracks programming-language popularity is IEEE Spectrum, the flagship magazine of the professional technology organization. Its ranking draws on 12 metrics from 10 sources, including requests for information on Google Trends, the number of new repositories for each language on GitHub, and questions asked about the language on Stack Overflow. (The IEEE also relies on Dice’s job listings.) The IEEE mashed it all up to produce an interactive Web application for ranking the popularity of various languages. Here is the app’s overall top ten list as of July 2014:

  1. Java
  2. C
  3. C++
  4. Python
  5. C#
  6. PHP
  7. Javascript
  8. Ruby
  9. R
  10. MATLAB

Focusing on Web development moves JavaScript and PHP into the top five, displacing C and C++, while for mobile development, JavaScript replaces Python but the three flavors of C are back in. Interestingly, the “Trending” classification adds some new contenders to the top ten, with Shell at Number 9 and Go at Number 10.

Real-world reality check

Is this hierarchy popularity borne out by the experience of IT placement specialists who actually find jobs for programmers? Yes, with the addition of .NET to the mix, according to Debbi Reiger, principal of Reiger Technical Search in Columbus, Ohio. In her market, it's "a lot of Java, a lot of .NET. We can't keep up with any type of Java developer, whether it's a business application developer or a Web developer or a mobile developer. Anything in the Java and the .NET space, I don't have enough hours in the day to find them." Reiger believes that's true nationally as well, based on what she's heard from other recruiters in the Top Echelon Network, a national network of 1,600 recruiters. The driving force behind the popularity of these languages, says Reiger, is Web applications. "You're not just seeing traditional internal business applications—though there are plenty of those. Companies are trying to get more and more presence on the Web, no matter what the size of the company." Betsy Elliott, principal at Walker Elliott in Houston, Texas, sees a slightly different picture, with even more emphasis on .NET. "What we see in the Houston market is a big demand for anything .NET based (C#). And for SQL Server—I know a lot of people might not call SQL true programming, but we get lots of assignments for people with a SQL Server background working in the Microsoft business intelligence stack." "Java is pretty strong out there," she allows, "and across the country it may be stronger than .NET demand. It's just in [Texas], we tend to have more corporate offices that are run SQL Server vs. Oracle.” Elliott sees significant demand for C and C++ skills in the oil and gas industry. "Anything to do with real-time controls or low-level seismic work, we still see quite a bit of that." Finally, both developer placement specialists note the increasing demand for Web-oriented languages such as Python, JavaScript, and Ruby.

What does it all mean to you?

Clearly, if all you’re looking for is a job in programming, you can’t go wrong being fluent in Java. Apparently, Java’s "run anywhere" quality applies to location and industry as well as platform. After that, it depends on a combination of what kinds of applications you want to work on and where you want to work. Brush up on C and C++ if you want to develop control systems for utilities and heavy industry. Keeping up to date on .NET will help land a job anywhere as long as Microsoft remains strong. And Python will equip you to work on increasingly popular Web development projects—or, failing that, it seems, to teach programing to college freshmen. Of course, this post doesn’t address the issue of which languages you like best and are most productive using. Those factors could be far more important to your language and career choices than which ones happen to be most in demand.