The December 2022 issue of IEEE Spectrum is here!

Close bar

Top Programming Languages 2017: Focus on Jobs

We analyze the languages that are in demand by employers

3 min read
Opening illustration
Illustration: Alamy

While the default IEEE Spectrum ranking in the Top Programming Languages interactive gives a good aggregate signal of language popularity, here we are taking a deep dive into the metrics related to job demand. Two of our data sources, Dice and CareerBuilder, measure job openings for the languages included in the interactive, and consequently we have a preset for “Jobs” that weighs the rankings heavily toward those metrics. So, if you want to build up your tech chops before looking for a programming job, what languages should you focus on?

Although Python has moved to the top of the default Spectrum ranking, if we instead go purely by the volume of openings that mention a language, we find that C beats Python by a ratio of 3.5 to 1, or about 19,300 job openings versus 5,400 across Dice and CareerBuilder combined. The Swiss army knife of database languages, SQL, is also highly in demand (15,400 openings), as are Web technologies like JavaScript (9,300 openings), HTML (7,000 openings), ASP.NET (2,700 openings), and PHP (2,400 openings). R, the increasingly indispensable language for data scientists, saw its zenith in 2016 but had some light contraction in 2017, shedding about 12 percent, to 353 openings. (As a caveat, we should note these numbers reflect job openings as of mid-June 2017, indexed for a 30-day window.)

In the mobile coding space, one of the clearest trends in the default ranking is the rise of Swift at the cost of Objective-C. We can see this in the jobs numbers too: openings for Objective-C shrank by slightly more than 19 percent, whereas those for Swift rose by almost 19 percent. And for the first time, there were more openings for Swift (439 openings) than for Objective-C (394 openings).

There are some significant changes further down the job rankings that are worth keeping an eye on too, even though the absolute number of job advertisements that cite these language is still relatively small. Both CUDA, a general-purpose language for coding GPUs, and Rust, which would feel familiar to most C / C++ programmers, fall into this category. Since 2016, CUDA has moved up four spots to 23 in the Jobs ranking, while Rust moved up a solid 10 positions to 25. Still, the absolute number of job openings was just 40 for CUDA and 23 for Rust. These are niche languages still, but Rust is growing quickly—going from being used in 10,900 new GitHub repositories in 2016 to almost 17,100 in 2017.

This article wouldn’t be complete without mentioning some of the losers in the programming language jobs calculus. Once a dominant Web programming language, Ruby is still used widely but it is slipping; the number of job openings for Ruby shrank by a full third since 2016, to about 1,600. We aren’t the first to report the slump in popularity of Ruby, and it’s far from dead, but this will be one to keep an eye on in the future as coders may already be shifting to alternatives like Python and Go. Demand for other languages like Clojure, Haskell, and Visual Basic is also on the wane. When we started the rankings in 2014, ActionScript still clocked 87 job openings, but in 2017 it continues the downward spiral, with only 20 openings, and it’s unlikely to make the Top Programming Languages at all next year. RIP, ActionScript.

About the Author

Nick Diakopoulos is a pioneering data journalist and is currently an an assistant professor at the University of Maryland, College Park College of Journalism. His research interest focus on algorithmic accountability and how newsrooms can use social technologies. Previously he cofounded a program in computational journalism at the School of Interactive computing at Georgia Tech.

The Conversation (0)

Practical Solid-State Batteries Using Pressure

Mechanical stress exploits workaround to electrochemical failure

4 min read
Illustration shows a grey disk  with two metal circles on each end and a thin piece of metal attached to each. Thin grey strips branch out of one of them. Above and below the disk are illustrative red arrows facing the disk.

Researchers solved a problem facing solid-state lithium batteries, which can be shorted out by dendrites, metal filaments that cross the gap between metal electrodes. They found that applying a compression force across a solid electrolyte material [gray disk] caused the dendrite [dark line at left] to stop moving from one electrode toward the other [the round metallic patches at each side] and instead veer harmlessly sideways, toward the direction of the force.

MIT

Solid-state lithium-ion batteries promise to be more safe, lightweight, and compact than their conventional counterparts. However, metal spikes can grow inside them, leading to short-circuit breakdowns. Now a new study finds that applying pressure on these batteries may be a simple way to prevent such failures.

Conventional batteries supply electricity via chemical reactions between two electrodes, the anode and cathode, which typically interact through liquid or gel electrolytes. Solid-state batteries instead employ solid electrolytes such as ceramics.

Keep Reading ↓Show less

IEEE President’s Note: Looking to 2050 and Beyond

The importance of future-proofing IEEE

4 min read
Photo of K. J. Ray Liu
IEEE

What will the future of the world look like? Everything in the world evolves. Therefore, IEEE also must evolve, not only to survive but to thrive.

How will people build communities and engage with one another and with IEEE in the future? How will knowledge be acquired? How will content be curated, shared, and accessed? What issues will influence the development of technical standards? How should IEEE be organized to be most impactful?

Keep Reading ↓Show less

Learn How Global Configuration Management and IBM CLM Work Together

In this presentation we will build the case for component-based requirements management

2 min read

This is a sponsored article brought to you by 321 Gang.

To fully support Requirements Management (RM) best practices, a tool needs to support traceability, versioning, reuse, and Product Line Engineering (PLE). This is especially true when designing large complex systems or systems that follow standards and regulations. Most modern requirement tools do a decent job of capturing requirements and related metadata. Some tools also support rudimentary mechanisms for baselining and traceability capabilities (“linking” requirements). The earlier versions of IBM DOORS Next supported a rich configurable traceability and even a rudimentary form of reuse. DOORS Next became a complete solution for managing requirements a few years ago when IBM invented and implemented Global Configuration Management (GCM) as part of its Engineering Lifecycle Management (ELM, formerly known as Collaborative Lifecycle Management or simply CLM) suite of integrated tools. On the surface, it seems that GCM just provides versioning capability, but it is so much more than that. GCM arms product/system development organizations with support for advanced requirement reuse, traceability that supports versioning, release management and variant management. It is also possible to manage collections of related Application Lifecycle Management (ALM) and Systems Engineering artifacts in a single configuration.

Keep Reading ↓Show less