Welcome to IEEE Spectrum’s ninth annual ranking of the Top Programming Languages! This year we’ve revamped and streamlined our interactive ranking tool and made other changes under the hood, but the goal remains the same—to combine multiple metrics from different sources to estimate the relative popularity of different languages.

You can get into the details of our methodological changes below (the TL;DR is that we eliminated the need for folks to run a giant ball of floating-point math in their browser), but first let’s get into what the rankings tell us this year.

IEEE Spectrum’s Top Programming Languages 2022

Python remains on top but is closely followed by C. Indeed, the combined popularity of C and the big C-like languages—C++ and C#—would outrank Python by some margin. Java also remains popular, as does Javascript, the latter buoyed by the ever-increasing complexity of websites and in-browser tools (although it’s worth noting that in some quarters, the cool thing is now deliberately stripped-down static sites built with just HTML and simple CSS).

But among these stalwarts is the rising popularity of SQL. In fact, it’s at No. 1 in our Jobs ranking, which looks solely at metrics from the IEEE Job Site and CareerBuilder. Having looked through literally hundreds and hundreds of job listings in the course of compiling these rankings for you, dear reader, I can say that the strength of the SQL signal is not because there are a lot of employers looking for just SQL coders, in the way that they advertise for Java experts or C++ developers. They want a given language plus SQL. And lots of them want that “plus SQL.”

It may not be the most glamorous language...but some experience with SQL is a valuable arrow to have in your quiver.

This is likely because so many applications today involve a front-end or middleware layer talking to a back-end database, often over a network to eliminate local resource constraints. Why reinvent the wheel and try to hack your own database and accompanying network interface protocol when so many SQL implementations are available? Chances are there’s probably already one that fits your use case. And even when a networked back end isn’t practical, embedded and single-board computers can be found with enough oomph to run a SQL database locally. (For more on the rise of SQL, see our accompanying article.)

So it may not be the most glamorous language or what you’re going to use to implement the next Great Algorithm, but some experience with SQL is a valuable arrow to have in your quiver.

Looking at complete jobs listings also shows that if you’re interested in cyberwarfare (both offensive and defensive), then getting handy with assembly code is a pretty good in. Previously, I generally just associated assembly code with things like device drivers, tweaking the guts of operating systems, or retrocomputing. But many of the job listings calling for expertise in assembly were posted by the kinds of low-profile cybersecurity contractors that orbit Washington, D.C., and even one government agency—the NSA.

Job listings are of course not the only metrics we look at in Spectrum. A complete list of our sources is here, but in a nutshell we look at nine metrics that we think are good proxies for measuring what languages people are programming in. Sources include GitHub, Google, Stack Overflow, Twitter, and IEEE Xplore. The raw data is normalized and weighted according to the different rankings offered—for example, the Spectrum default ranking is heavily weighted toward the interests of IEEE members, while Trending puts more weight on forums and social-media metrics.

In previous years, we allowed readers to bypass these preset rankings and create a custom ranking by adjusting the weights however they pleased. However, it turned out that very few people were taking advantage of this feature. Taking it out allows us to precompute the preset rankings instead of serving an app that contained the data from all the metrics and then computed the rankings in the browser on the fly. Quite apart from making the app large, and thus slower to load, we also ran into the problem that different browsers could produce slightly different results, thanks to variations in floating-point implementations! (This problem of different implementations giving different results was largely solved by the IEEE-754 standard for floating-point numbers, so it would be interesting to go back and find out which browser versions are noncompliant. But for now let’s just all agree to not run any, say, nuclear reactors with a Web app, okay?)

Creating the rankings also pulls us into the typical dilemmas faced by any taxonomist—you might think you’ve got a straightforward and unambiguous way to classify things, but then edge cases and weird hybrids invariably slither into view. Plus there’s the eternal struggle between “lumping” and “splitting”—is it best to focus on similarities and thus put multiple things under fewer labels overall, or focus on differences and break things up as much as possible and have more fine-grained labels?

For us this question starts with considering just what is a programming language. This causes a lot of folks to shout at us, especially with regard to HTML/CSS. Although not Turing-complete except under highly artificial conditions, we do consider HTML/CSS a programming language because the tags in its source code are primarily intended as imperatives to do things such as “present this text in a table format” or “make this heading larger than the body text.” Another question that crops up is when do you decide that a superset or subset of one language has become distinct enough to be considered separately?

Generally, we let pragmatism be our guide. You can argue that Arduino microcontrollers are programmed in a subset of Java (or C++), but if someone asked for help writing an Arduino project, giving them a book on Java would be of limited use. On the other hand, there are a lot of books with titles along the lines of Writing Arduino Programs Made EZ, so the Arduino language is listed separately. On the other hand, it doesn’t seem to make much sense to put, say, MicroPython and CircuitPython anywhere but firmly in the Python box, at least for now. Categorizations evolve. For example, previously we grouped Typescript with JavaScript, but adoption has grown enough that it makes more sense to break it out.

These are all essentially subjective decisions, as are the weights we assign to different metrics, so your mileage may vary. We simply offer this up as our approach to a tricky problem—after all, no one can directly measure what languages people are programming in.

We hope you find them useful, and if you think we need to be making different judgement calls, leave us a comment telling us why!
The Conversation (2)
Vitold S01 Sep, 2022

Look like you mixed programming language, DSL for document markup and data query language. Would be cool to see stats group by categories.

MAX LUGO29 Aug, 2022
INDV

great aport

The Spectacular Collapse of CryptoKitties, the First Big Blockchain Game

A cautionary tale of NFTs, Ethereum, and cryptocurrency security

8 min read
Vertical
Mountains and cresting waves made of cartoon cats and large green coins.
Frank Stockton
Pink

On 4 September 2018, someone known only as Rabono bought an angry cartoon cat named Dragon for 600 ether—an amount of Ethereum cryptocurrency worth about US $170,000 at the time, or $745,000 at the cryptocurrency’s value in July 2022.

It was by far the highest transaction yet for a nonfungible token (NFT), the then-new concept of a unique digital asset. And it was a headline-grabbing opportunity for CryptoKitties, the world’s first blockchain gaming hit. But the sky-high transaction obscured a more difficult truth: CryptoKitties was dying, and it had been for some time.

The launch of CryptoKitties drove up the value of Ether and the number of transactions on its blockchain. Even as the game's transaction volume plummeted, the number of Ethereum transactions continued to rise, possibly because of the arrival of multiple copycat NFT games.

That perhaps unrealistic wish becomes impossible once the downward spiral begins. Players, feeling no other attachment to the game than growing an investment, quickly flee and don’t return.

Whereas some blockchain games have seemingly ignored the perils of CryptoKitties’ quick growth and long decline, others have learned from the strain it placed on the Ethereum network. Most blockchain games now use a sidechain, a blockchain that exists independently but connects to another, more prominent “parent” blockchain. The chains are connected by a bridge that facilitates the transfer of tokens between each chain. This prevents a rise in fees on the primary blockchain, as all game activity occurs on the sidechain.

Yet even this new strategy comes with problems, because sidechains are proving to be less secure than the parent blockchain. An attack on Ronin, the sidechain used by Axie Infinity, let the hackers get away with the equivalent of $600 million. Polygon, another sidechain often used by blockchain games, had to patch an exploit that put $850 million at risk and pay a bug bounty of $2 million to the hacker who spotted the issue. Players who own NFTs on a sidechain are now warily eyeing its security.

Remember Dragon

The cryptocurrency wallet that owns the near million dollar kitten Dragon now holds barely 30 dollars’ worth of ether and hasn’t traded in NFTs for years. Wallets are anonymous, so it’s possible the person behind the wallet moved on to another. Still, it’s hard not to see the wallet’s inactivity as a sign that, for Rabono, the fun didn’t last.

Whether blockchain games and NFTs shoot to the moon or fall to zero, Bladon remains proud of what CryptoKitties accomplished and hopeful it nudged the blockchain industry in a more approachable direction.

“Before CryptoKitties, if you were to say ‘blockchain,’ everyone would have assumed you’re talking about cryptocurrency,” says Bladon. “What I’m proudest of is that it was something genuinely novel. There was real technical innovation, and seemingly, a real culture impact.”

This article was corrected on 11 August 2022 to give the correct date of Bryce Bladon's departure from Dapper Labs.

This article appears in the September 2022 print issue as “The Spectacular Collapse of CryptoKitties.”

Keep Reading ↓Show less
{"imageShortcodeIds":[]}