When you hover over the languages in the bar chart, the descriptions are pretty wonky...
Python: 100; Description: C is used to write software where speed and flexibility is important, such as in embedded systems or high-performance computing.
C: 96.8; Description: An object-oriented language that creates code intended to be run on a virtual machine, allowing it to run on different platforms with little or no modification. Java is a popular choice for Web applications.
C++: 88.58; Description: An object-oriented, interpreted language that gains much of its power from a large constellation of libraries, including popular modules for machine learning and scientific computing.
Hey, I'm the author. Nice catch! Somehow the descriptions of the first five languages got permuted somewhere towards the end of our process, likely because they lived in a separate doc from the data and then merged in the presentation engine we use to make our interactive charts. The fix should propagate shortly. Many thanks, S.
That's what I thought happened too: that I had slipped by one combining the descriptions with the numerical data, but it turns out that the first five were permuted when I looked in the data for the presentation engine! Don't quite know how that happened, I suspect a sort went awry at some point and the data and the descriptions fell out of synch. In previous years we just shoveled it all into the interactive app's logic and let it sort it out, but now we preprocess it for reasons explained in the accompanying article. Cheers, S (author of article)
> People really like Python, much more than the professional developer community does.
Just to be clear, I'm not intending to pick a fight in asking this - who do we believe is using python, if not the professional developer community?
I think there are plenty of people in academia and research who are not principally programmers using it, but job postings et. al. would certainly seem to express that a whole lot of professional programmers are using it. Though perhaps less use at FAANG? - maybe that's the defining criteria here?
Don't intend to pick a fight either, but Python seems to be more liked by people who aren't primarily developers (researchers and academics, but also other technical figures like sysadmins, data scientists, analysts, etc.) probably because Python's advantages are very obvious and Python's downsides only start to become apparent to more experienced users. An alternative reason could be that it's starting to get traction as a "CS 101 language", where those classes would have used Java before (or C before that); more people have heard of Python than they have heard of, say Go or Rust.
Obviously both professional developers and "not primarily developers" generally like and use Python. I meant this as a comparison rather than "developers don't use Python".
FAANGs, I really don't know, but I would find it odd if they didn't use Python to at least some extent.
This is heavily biased toward developers who store code on GitHub.
A lot of larger companies and institutions either run GitHub on-prem or use some other versioning solution. I think that those companies would also be more likely to use older and more strictly typed languages than Python/JS/TS, and have larger code bases in those languages because they are larger and older organizations.
> For a different source, although not representative of all code, the repositories for a Linux distro like Debian or Arch would give interesting data.
Source code from Linux distro repos should be different but far from representative or meaningful, specially as it leans heavily towards legacy C libraries and tooling. I hardly see how that could be a meaningful rejection of GitHub as a statistically significant sample of what real world projects are actively being developed by real world developers.
It's everywhere in job listings, just largely as a nice-to-have on jobs that are primarily in something else but need the odd script putting together here and there.
This list is from the IEEE Spectrum, an electrical and electronics engineering trade journal. It's probably weighted heavily towards embedded programming.
Only two of the top six languages they list (C and C++) are associated with embedded programming.
They list their sources, it goes far beyond just IEEE's own job listings and publications. And even then, a casual perusal of IEEE's publications on the topics of computers and software will show they have a lot of non-embedded programming content. Check out the IEEE Computer Society, in particular, which has a lot of content in common with ACM's publications (in theme, at least).
> That just demonstrates how GitHub is out of touch with the real world of programming.
Do you actually have any objective and statistically meaningful source of data that supports your personal assertion of what the real world is supposed to be?
Wherever I look, I see Java in the server and smartphones, C# in desktop and nowadays servers, and C++ in desktop and tooling and performance components. For each JavaScript SPA project I've worked with, there were at least 2 Java or C# server projects.
Where exactly do you base your personal assertion?
These rankings are always strange to me. SQL is a declarative query syntax, and may be Turing complete but building complete software in SQL is not done. It's a domain-specific language. I'm not sure I'd call myself a programmer if I only knew SQL, I would probably say I was a DBA.
If you're going to toss SQL in on a programming list with C and C++, ok go for it, but I don't see how you can then leave off Bash or Powershell.
Either way on my nitpicks, the overall language used within the article is strange, like it's from a complete outsider to the industry.
Indeed, the combined popularity of C and the big C-like languages—C++, and C#—would outrank Python by some margin.
Everyone in this industry knows Python is C-like. Java is C-like. JS.
While most developers don't really know SQL and employers want it, that part is true. They don't want you enjoying those ORMs, and I am an ORM fan until it doesn't work. Even then when I'm writing SPs, I remain an ORM fan.
An aside, frontend development is where I see most people lacking that I know rather than SQL, including myself. Too many flavors of the month. I try to stay in the C# lane and have settled on Razor Pages/MVC and Blazor.
I'm a bit surprised that the article doesn't connect the rising popularity of SQL to the central role SQL has in data analytics and to some extent data science, both of which AFAIS are both quickly growing fields, slowly chewing away on the normal business IT systems.
If you want to talk genealogy, maybe, but is that normally what people mean when they say "C-like"? When I think of C-like languages I think of languages that use similar syntax, such as C++ or Java. Python is a high-level scripting language with totally different syntax, a totally different type system, and a mandatory run-time environment. I write Python and C on a daily basis and I'm flabbergasted anyone could find them similar. One of the reasons Python is so popular is that it's not like C.
Haskell is a ML-like, there is no direct genealogical relationship between Haskell and any of the lisps other than what was between ML and purely functional lisps (i.e. Scheme-likes).
What you linked to is SO's "most loved" where the question asked is: "Which programming, scripting, and markup languages have you done extensive development work in over the past year, and which do you want to work in over the next year? (If you both worked with the language and want to continue to do so, please check both boxes in that row.)"
As of now, Rust is beloved, but there are few jobs (outside of crypto grifting), especially relative to the hype and relative to other languages, and most projects are 1-person projects or a handful at most.
I wonder if the difference in results between the IEEE and Stackoverflow surveys might be due primarily to the different demographics.
You would expect working electrical engineers to more heavily favor languages like MATLAB or R, which shows in the IEEE rankings. But that doesn’t explain Julia being more popular in Stackoverflow, though — unless some working engineers still consider it too experimental for production use?
Different methodologies. SO's most loved metric is % of people using the language who want ot keep using it. If you look at the most popular languages (as in used by most people) in SO's survey, the top 3 are JavaScript, HTML/CSS and Python.
As far as IEEE's methodology - it's not even described which makes the whole article kind of pointless.
They have three sets of weights to adjust the scores across nine different metrics. Here is their 2021 version which did the same but let you alter the weights yourself (would be nice if they'd still offered it this year, but they had their reasons not to):
Understandable. There are a number of organizational or technical reasons why a system would use Cobol in 2022, and each of them would be a good reason to dread being assigned to it
At least with VBA people are probably scarred by having to modify auto-generated macros, the atrocious error system, GOTOs, and the terrible excel IDE.
I'll defend GOTOs! Everything is a GOTO, just in a different code construct. I find myself thinking in "GOTOs" all the time, and use bools in nearly the exact same way.
That said, I started programming in the 80s in BASIC and crack a loving smirk when I see a GOTO.
> 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 towards the interests of IEEE members, while Trending puts more weight on forums and social media metrics
So they looked at sources, calculated metrics, and then weighed them by rankings? Still no idea what they've actually done.
Okay, to be technical, we get the raw values for each metric: say the number of job ad that mention language X, or the number of Google search results. Then, using R/R Studio, we normalize the the raw values so they range from 0 to 100, with 100 fixed as the highest valued language in each group. Then the metrics are summed, using different weights for the Spectrum default, Jobs, and Trending. The results are normalized again to produce the 3 rankings. In previous years all this weighting and combining was done client-side, so you could try your own weights if you didn't like ours, but for the reasons I give the article we dropped this feature in favor of precomputed results this time out. Cheers, S. (article author)
What’s the point of these lists? I feel like everyone can predict the members of the top 10 or so and the tail is too noisy to be taken seriously. Essentially the bucket of metrics used to measure the top 10 of each category is chosen such that the obvious choices are a part of it, but those same metrics get pretty bad at detecting any meaningful ordering of the bottom, say, 20 or 30.
I don't understand how D is anywhere near Rust, and I say this as a D fan. Maybe because of the name D is positioned better because it gets more matches in searches? Rust ecosystem seems far more vibrant, with lots of libraries, new ones every day, and many new projects announcing moves to Rust. Also Rust is a very powerful contender in the WASM environment. Meanwhile D, while not dead, is fairly stagnant. There are constant improvements to the language, and new libraries pop up every week, but in a much smaller volume.
I've been programming for about 15 years - started with PHP and I'm ever since mainly using PHP.
I tried C#, Python, Dart and some others. I will still use them from time to time if a job or library that has no eqivalent counterpart requires it. And I like it.
However I feel most comfortable with PHP - it has some quirks but the team behind increased the DX a lot over the past few years.
And I believe I got a better programmer by learning a framework - Symfony in my case.
I've been using PHP/SQL professionally for about 3 years with a custom framework at my workplace, and about 10 years as a hobbyist.
Today I learned there was a new company pretty much doing the SAAS we are doing, but using Firebase. I don't have that much experience with Firebase, but it got me wondering if the work we do to get data to and from the database with PHP is much more difficult than with a document like store that is used with Firebase. Do you think development platforms like Firebase have a advantages of development speed over our more traditional stack?
I think for people in need to get started quickly Firebase is perfectly suited to start without much hassle. For me personally I can get my personal PHP stack (Percona mysql server, nginx, php8.1-fpm) running on a fresh debian server within 10 minutes.
However I don't have the experience (yet) what I need to change in my setup to scale up to very many concurrent users. So far I assume my setup should be able to handle few hundreds connections in the same second.
I really liked it up until 4.4. Version 5 marked a general departure from its dynamic, practical nature as it started to mimic "proper OO" from Java. Today, it feels like a bloated and patched-up language that has incrementally copied all the "good" features of other popular languages.
I don't care how painless "deployment" is when I have to manually update the ~5 different places in a single PHP script where a particular data schema is expected to be synchronized (SQL, HTML, JS).
It's really really easy to write and deploy unmaintainable code in PHP. Frankly, a little bit of friction in deployment is probably a good thing for code quality.
It is not only HN bubble. It is also the dark developers in the corporations. Yet another bubble. However these two are not a lot intersecting and are both huge bubbles.
An interesting idea: Do the programming languages in the IEEE top list match the languages most often discussed on HN's front page? Some languages on HN's front home reflect popularity (or oversized influence?) - the inverse of the IEEE rankings.
Just to be clear, overall HN stories reflect very varied programming language discussions.
Because…it is? I’m a senior dev that’s mostly worked with Java and JS and my Java skills are in HIGH demand. Java may be passé in the startup world but so many businesses run on Java.
Not to mention Android development. Cross-platform apps haven’t fully filled all the lofty promises they made. Many apps are still being written and maintained in Java, Kotlin, Objective-C, and Swift.
Its pretty popular. A lot of people who are not writing Javascript and derivatives and working on Java based applications. E.g place I work would be a couple of applications in .net, some legacy stuff in Perl, data piplines in Go. Remaining 98% projects are all Java based.
The world runs on Java, think banks, airlines, trains networks, stock exchanges, goverment web services, emergency systems. Some you might know that are heavy users are netflix, stripe.
you'd be hard pressed to not use Java in the world of financial services, and there are lots of boring, back-end systems in financial services that run Java
Why wouldn't it? Contrary to what some very narrow circles believe, it's by far one of the most safe and mature ways to build scalable, performant, reliable, and long lived software. Especially on the middleware and backend side.
You can tell this is more real than most lists you see posted by that Rust is down there in the weeds with Swift and Dart, and that JavaScript is not at the top.
Rust is picking up incredible steam and is being used in production. At present, there are a lot of "cool" jobs that use it, so in a way it's kind of a filter for "fun". Within a decade it will be a substantial player.
FWIW, I'm hiring for Rust in production [1]. Send me an email if you're interested.
[1] Rust monorepo with ~10 apps. We need to start using Bazel. Mostly server, but we're now building a cross-platform native desktop app for real time voice conversion and a WASM client for the browser. We've also given Rust-Unreal Engine bindings a try and have a bunch of cool photogrammetry/NeRF stuff.
I’ve had roles in Rust-focused companies, most of my interviews have at least mentioned Rust, and work at a company using C but with some internal support for Rust. This is all coming from someone who isn’t particularly interested in Rust lol. It’s seemingly becoming very dominant in systems programming.
It stands some chance of becoming that in ten years, but odds are still strongly against it. It would need to pick up a thousand users for every existing user, completely swamping all existing users. But probably a substantial fraction of all programmers willing to use it as it is already do. There seems to be little appetite to change it in any way that would appeal to the larger number.
What I meant was that I, as a non-Rust-fanboy (it's okay but I don't care that much about the language I use), am constantly coming across Rust in almost every job and interview I do across the crypto/defense/security domains. I'm not out there looking for Rust but it's been there in the last 3 or 4 contracts I've had and all but one interview I had when last looking for a job. Admittedly these are all startups, but still. It's far more common, from my experience, than these surveys seem to suggest.
Python: 100; Description: C is used to write software where speed and flexibility is important, such as in embedded systems or high-performance computing.
C: 96.8; Description: An object-oriented language that creates code intended to be run on a virtual machine, allowing it to run on different platforms with little or no modification. Java is a popular choice for Web applications.
C++: 88.58; Description: An object-oriented, interpreted language that gains much of its power from a large constellation of libraries, including popular modules for machine learning and scientific computing.