The 2015 Top Ten Programming Languages

New languages enter the scene, and big data makes its mark

2 min read
The 2015 Top Ten Programming Languages
Illustration: iStockphoto

What are the most popular programming languages? The only honest answer: It depends. Are you trying to land a job at a hot mobile app startup, model electricity flows across a continent, or create an electronic art project? Languages are tools, and what’s a “must have” in one domain can be a “whatever” in another. So for the second year in a row, IEEE Spectrum has teamed up with computational journalist Nick Diakopoulos to give you a popularity ranking that you can adjust to meet your own needs.

Our ranking system is driven by weighting and combining 12 metrics from 10 data sources. We believe these sources—such as the IEEE Xplore digital library, GitHub, and CareerBuilder—are good proxies for the popularity of 48 languages along a number of different dimensions. The weighting of these sources can be adjusted in our interactive Web app to give, say, more importance to languages that have turned up in job ads. Filters can be applied so that you can see only languages relevant to mobile or embedded development, for example. (Access to the Web app is US $0.99.)

We put a number of preset weightings into the app for convenience; the default is the IEEE Spectrum ranking, with weights chosen to broadly represent the interests of IEEE members, and here are this year’s top 10 languages from that weighting. (The column on the left is the 2015 ranking; the column on the right is the 2014 ranking for comparison.)

1: Java; 2: C; 3: C++; 4: Python; 5: C#; 6: &; 7: PHP; 8: Javascript; 9: Ruby; 10: Matlab

The big five—Java, C, C++, Python, and C#—remain on top, with their ranking undisturbed, but C has edged to within a whisper of knocking Java off the top spot. The big mover is R, a statistical computing language that’s handy for analyzing and visualizing big data, which comes in at sixth place. Last year it was in ninth place, and its move reflects the growing importance of big data to a number of fields. A significant amount of movement has occurred further down in the rankings, as languages like Go, Perl, and even Assembly jockey for position.

A few languages have dropped off the rankings compared with last year’s. Mostly this is due to an insufficient presence in this year’s data to justify keeping them in. But in one case, an entry was dropped because we agreed with comments on last year’s ranking that said we had made a mistake in categorizing it as a language rather than just a framework. This was ASP.NET, and we had originally included it because of our pragmatic approach to the definition of programming language—a lack of Turing completeness is not an absolute bar, and we make no apologies for including things like HTML—but we were too broad on that one.

A number of languages have entered the rankings for the first time. Swift, Apple’s new language, has already gained enough traction to make a strong appearance despite being released only 13 months ago. Cuda is another interesting entry—it’s a language created by graphics chip company Nvidia that’s designed for general-purpose computing using the company’s powerful but specialized graphics processors, which can be found in many desktop and mobile devices. Seven languages in all are appearing for the first time.

The Conversation (0)

Golf Robot Learns To Putt Like A Pro

Watch out Tiger Woods, Golfi has a mean short game

4 min read
Golf Robot Learns To Putt Like A Pro

While being able to drive the ball 300 yards might get the fans excited, a solid putting game is often what separates a golf champion from the journeymen. A robot built by German researchers is quickly becoming a master of this short game using a clever combination of classical control engineering and machine learning.

In golf tournaments, players often scout out the greens the day beforehand to think through how they are going to play their shots, says Annika Junker, a doctoral student at Paderborn University in Germany. So she and her colleagues decided to see if giving a robot similar capabilities could help it to sink a putt from anywhere on the green, without assistance from a human.

Keep Reading ↓Show less

Tickle Pill Bug Toes With These Haptic Microfingers

Balloon actuators and liquid metal sensors enable tactile human-insect interactions

4 min read
A gif showing a live pill bug on its back wiggling its body and feet as a very small robot hand touches it

All things considered, we humans are kind of big, which is very limiting to how we can comfortably interact with the world. The practical effect of this is that we tend to prioritize things that we can see and touch and otherwise directly experience, even if those things are only a small part of the world in which we live. A recent study conservatively estimates that there are 2.5 million ants for every one human on Earth. And that’s just ants. There are probably something like 7 million different species of terrestrial insects, and humans have only even noticed like 10 percent of them. The result of this disconnect is that when (for example) insect populations around the world start to crater, it takes us much longer to first notice, care, and act.

To give the small scale the attention that it deserves, we need a way of interacting with it. In a paper recently published in Scientific Reports, roboticists from Ritsumeikan University in Japan demonstrate a haptic teleoperation system that connects a human hand on one end with microfingers on the other, letting the user feel what it’s like to give a pill bug a tummy rub.

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