Could C# Overtake Java in TIOBE's Programming Language Popularity Rankings? (techrepublic.com) 81
It's been trying to measure the popularity of programming languages since 2000 using metrics like the number of engineers, courses, and third-party vendors. And "The November 2025 TIOBE Index brings another twist below Python's familiar lead," writes TechRepublic. "C solidifies its position as runner-up, C++ and Java lose some ground, and C# moves sharply upward, narrowing the gap with Java to less than a percentage point..."
TIO CEO Paul Jansen said this month that "Instead of Python, programming language C# is now the fastest rising language," How did C# achieve this? Java and C# are battling for a long time in the same areas. Right now it seems like C# has removed every reason why not to use C# instead of Java: it is cross platform nowadays, it is open source and it contains all new language features a developer wants. While the financial world is still dominated by Java, all other terrains show equal shares between Java and C#. Besides this, Microsoft is going strong and C# is still their most backed programming language.
Interesting note: C# has never been higher than Java in the TIOBE index. Currently the difference between the two rivals is less than 1%. There are exciting times ahead of us. Is C# going to surpass Java for the first time in the TIOBE index history?
"The fact that C# has been in the news for the successive betas and pre-release candidates prior to the release of C# 14 may have bumped up its percentage share in the last few months," notes a post on the site i-Programmer. But they also point out that by TIOBE's reckoning, Java — having been overtaken by Python in 2021 — "has been in decline ever since."
TechRepublic summarizes the rest of the Top Ten: JavaScript stays in sixth place at 3.42%, and Visual Basic edges up to seventh with 3.31%. Delphi/Object Pascal nudges upward to eighth at 2.06%, while Perl returns to the top 10 in ninth at 1.84% after a sharp year-over-year climb. SQL rounds out the list at tenth with 1.80%, maintaining a foothold that shows the enduring centrality of relational databases. Go, which held eighth place in October, slips out of the top 10 entirely.
Here's how TIOBE's methodology ranks programming language popularity in November:
TIO CEO Paul Jansen said this month that "Instead of Python, programming language C# is now the fastest rising language," How did C# achieve this? Java and C# are battling for a long time in the same areas. Right now it seems like C# has removed every reason why not to use C# instead of Java: it is cross platform nowadays, it is open source and it contains all new language features a developer wants. While the financial world is still dominated by Java, all other terrains show equal shares between Java and C#. Besides this, Microsoft is going strong and C# is still their most backed programming language.
Interesting note: C# has never been higher than Java in the TIOBE index. Currently the difference between the two rivals is less than 1%. There are exciting times ahead of us. Is C# going to surpass Java for the first time in the TIOBE index history?
"The fact that C# has been in the news for the successive betas and pre-release candidates prior to the release of C# 14 may have bumped up its percentage share in the last few months," notes a post on the site i-Programmer. But they also point out that by TIOBE's reckoning, Java — having been overtaken by Python in 2021 — "has been in decline ever since."
TechRepublic summarizes the rest of the Top Ten: JavaScript stays in sixth place at 3.42%, and Visual Basic edges up to seventh with 3.31%. Delphi/Object Pascal nudges upward to eighth at 2.06%, while Perl returns to the top 10 in ninth at 1.84% after a sharp year-over-year climb. SQL rounds out the list at tenth with 1.80%, maintaining a foothold that shows the enduring centrality of relational databases. Go, which held eighth place in October, slips out of the top 10 entirely.
Here's how TIOBE's methodology ranks programming language popularity in November:
- Python
- C
- C++
- Java
- C#
- JavaScript
- Visual Basic
- Delphi/Object Pascal
- Perl
- SQL
Re: You are not an engineer. (Score:1)
programmers of some control systems have such concerns, such as power generation and distribution, medical, transport, military, manufacturing, and environmental hazard detection.
Re: (Score:2)
Re:You are not an engineer. (Score:4, Insightful)
In most of the world, an engineer designs engines - and/or their control systems. (Whether petrol, steam, or electric - or even hydrogen).
Re: (Score:2)
Re: (Score:2)
If you thought that, you are probably American, and therefore badly educated.
In most of the world, an engineer designs engines - and/or their control systems. (Whether petrol, steam, or electric - or even hydrogen).
Oh please, more the memss of universally stoopid 'murricans. Is your hatred of us overcoming what to 99.99 percent of us see is an obvious joke?
For what it is worth the person running the train is called an engineer. For what it is worth, part of the engineer's job is operating the old coal fired engines, their power transmissions, their water consumption, and boilers
This is not dissimilar to today, where engineers are responsible for smooth and safe operation of many facilities. And as a bit of educti
Re: (Score:3)
and therefore badly educated.
Kind of ironic to say given the incredibly faulty logic at work in these comments.
Re: (Score:3)
Wikipedia: the Fireman, stoker or boilerman was responsible for adding water... proper supply of fuel... starting the fire... raising or banking the fire... and performing other tasks for maintaining the locomotive according to the orders of the engineer (US) or driver (UK). https://en.wikipedia.org/wiki/... [wikipedia.org]
Re: (Score:2)
Coal-shovelers, usually called firemen, did not disappear the moment steam died.
On US diesel locomotives they stayed for decades because the job description was rewritten rather than abolished.
Steam officially began phasing out in the late 1940s and was largely gone by the late 1950s. Yet firemen remained on diesel and early electric engines through the 1960s and deep into the 1970s.
Re: (Score:3)
Re: (Score:2)
Legally speaking, you can not call yourself an engineer of any sort without belonging to an actual engineering license credential system (since there are things like civil engineers, computer engineers, mechanical engineers, etc, in the same way you can not call yourself Esquire unless you hold a lawyer license. You can not practice law without a license, but that doesn't stop you defending yourself in a court.
For all that matters, you can call yourself an engineer to other people if you are simply making s
Re: (Score:3)
Incorrect in the US. You can call yourself "engineer", or your company can designate a position as an "engineer" position if you're engaged in a non-regulated activity. We have things like "Process Engineers", which are internal to a company so are not regulated. Sound Engineers may hold privately issued certifications but are also not regulated so not licensed.
A true engineer in the US is called a "Professional Engineer" and holds licenses in the states that they work in. PEs usually start out as a degreed
Re: You are not an engineer. (Score:3)
Legally I'm a software engineer despite not having a degree in engineering or computer science.
Not much I can do about it. That's my job title and what I put down when I am told to provide accurate information to a government agency.
You may certainly petition the legislature of my state in order to force my employer to change their job titles. But it's out of my hands (I also do not care)
Re: (Score:3)
Legally I'm a software engineer despite not having a degree in engineering or computer science.
Not much I can do about it. That's my job title and what I put down when I am told to provide accurate information to a government agency.
You may certainly petition the legislature of my state in order to force my employer to change their job titles. But it's out of my hands (I also do not care)
People call me as they wish, you are right. Over the years, I've been called Optical engineer, Optical scientistElectromagnetics scientist, Systems design engineer, even process chemist! Depended on what I was doing at the time. Since it is a recognition of my abilities, and meant positively, I take it as a compliment. The Process chemist thing was a little weird, a strange short part of my career.
The only place where it really "matters" is in a courtroom, where the lawyers get all atwitter about degrees
Re: (Score:2)
I usually end up with a title like Staff Engineer or Software Engineer.
In a courtroom, I'm a software engineer in California. And it is what I report on taxes. What I report on census. And what I report when I apply for a mortgage.
My lack of a formal degree in the field makes it very unlikely that my company would call me to act as an expert witness. Even though at one time I was an automotive safety trainer and safety lead for regulated camera. What is good enough for a private company is often insufficien
Re: (Score:2)
I usually end up with a title like Staff Engineer or Software Engineer.
In a courtroom, I'm a software engineer in California. And it is what I report on taxes. What I report on census. And what I report when I apply for a mortgage. My lack of a formal degree in the field makes it very unlikely that my company would call me to act as an expert witness. Even though at one time I was an automotive safety trainer and safety lead for regulated camera. What is good enough for a private company is often insufficient in a courtroom or at least won't stand up to a well placed argument, which is ultimately what an attorney is all about.
So true, I'm not likely to testify in my field, but my employer likes what I do. A lot of experience in different areas, quick on my feet, and very hard to bullshit.
My boss once told a tech guy who was trying to do that with me - "Don't bullshit a bullshitter, you won't win that game with Ol. Do as he tells you." This was in response to a lighting system problem I had diagnosed.
Re: (Score:2)
Re: You are not an engineer. (Score:3)
Are you one of these pedantic folks that believes words have a single definition? Like organic is reserved as a chemistry term? Is someone with a doctorate in archeology not a doctor because they don't practice in the medical field?
While I do agree that many coders are improvised software engineers, especially the ones that never bothered learning about data structures and algorithms, the term Software Engineer is not a protected term AFAIK.
Personally I do have a government backed Engineering degree, and I
Re: (Score:2)
Engineers are not defined as people who are licensed.
Engineering is the practice of using natural science, mathematics, and the engineering design process[1] to solve problems within technology, increase efficiency and productivity, and improve systems.
https://en.wikipedia.org/wiki/... [wikipedia.org]
In some jurisdictions and in some disciplines, governments require licenses for engineers. But the lack of a licensing requirement, does not exclude a line of work from being "engineering."
Not all programmers are engineers. But all software engineers use programming to accomplish their goals.
Re: surprised it took this long (Score:2)
Re: (Score:2)
What saved Java was that it is cross-platform and that Google used it as base language for Android.
I have no opinion on how good java is verses C#. I just dislike both companies, but with Java you can at least completely ignore Oracle and only use the openJDK.
Re: (Score:2)
What saved Java was that it is cross-platform and that Google used it as base language for Android.
My understanding is that Google apps require Java for the interface, and that you can use a Java wrapper around the language of your choice,
AI/LLMs and language translation (Score:5, Interesting)
As time goes by, I hope programming editors and IDEs start doing language translation via AI.
Say, someone needs to edit a C program but is not very skilled in it. They could use their favourite language (say, C#), to quasi-edit the source program (which would be presented as C# to them). C# code changes would be auto-translated to C in a manner that fits the source codebase's conventions. Aspects of the C program that have no C# equivalent could summarised and edited by AI dialog.
I wonder how TIOBE would measure this sort of work. As activity in the source language (C)? Editing language (C#)? Or both?
Re: (Score:2)
You can do this today. You can also write natural language to the same effect. I get the sense you've never used AI for programming.
Re: (Score:2)
Re: AI/LLMs and language translation (Score:4, Insightful)
I'm not sure LLMs will be capable of doing this reliably, especially if the libraries of one language do not exist in the second language. We need something beyond LLMs in order to get to that level of planning and thinking.
Re: AI/LLMs and language translation (Score:3)
Clearly neither have you. AI code generation beyond simple programs is garbage.
Re: (Score:3)
It wouldn't. TIOBE is bullshit, I don't know why anyone uses it. Look at what it is: https://www.tiobe.com/tiobe-in... [tiobe.com]
It's just searching various engines for "$LANG programming" and applying magic fudge factors. It searches multiple languages versions of Google as well as for some reason Amazon and Ebay. And it relies on the "$NUM results found" provided by those sites.
So at best it's a
lol (Score:1)
C# deserves to be much higher (Score:5, Interesting)
Java's Mono library is a poor substitute for C#'s async/await keywords. Code is much simpler with that functionality built into the language.
Java's Optional library is a poor substitute for C#'s nullable features.
Java's import statements bring in a single type. C#'s using statements bring in an entire library, so there's less time wasted managing them.
I use Java because my current employer requires it, but that has only made me appreciate C# even more. For personal projects I'm still using C# everywhere I can, and C++ where I can't.
Re: (Score:3)
> Java's import statements bring in a single type.
import x.*;
Re: (Score:2)
Thanks for the tip. But a quick read seems to indicate that this doesn't bring in types from child packages of the wildcarded namespace.
Probably better than the default approach, though. Now the question is whether my teammates will tolerate it.
By making individual imports the default behavior, Java developers are stuck with extra tedium for every imported class, out of an overblown fear of the rare case where type names collide. Whereas C# reduces the friction in the common scenario, with no additional fr
Re: (Score:3)
To expand a bit. C# has been evolving quickly in recent years. Microsoft has been concentrating on making the language more succinct with less boilerplate code required. Java is horrible for the amount of boilerplate code it requires... to the point where someone created Lombok to literally rewrite code at compile-time to get similar features, but in a non-standard way.
They have also been concentrating on improving performance (I am not sure how it compares to the JVM, but each recent version of .Net has be
Re: (Score:3)
Java doesn't require boilerplate, but some of the lousy popular frameworks do.
Re: (Score:2)
I think you are too deeply immersed in the language if this is what you think. Java does indeed require a ton of boilerplate code. It's why I quit using it. Everything from initiating a background thread, to a simple lambda function, require boilerplate code. In both cases, C# has reduced the code required to a couple of words, rather than the old days when you had to write several lines of code for each. That might not sound like much, but when repeated at scale, those eliminated extra lines of code matter
Re: C# deserves to be much higher (Score:2)
Well, it's not about the subjective perception of who deserves what, is it? That's the domain of politics. This ranking is about popularity. Empirical evidence.
Async bloat (Score:1)
The Async/await stuff is just syntactical bloat for most typical CRUD apps. I suspect it's there to help MS save on cloud costs, rarely helps devs.
Re: (Score:2)
I guess I'm not working on "typical CRUD apps" then?
With C#, for the last decade or so, code that works with remote services or data stores or peripherals reads just like regular synchronous code, other than async and await keywords here and there.
With Java, most of our code is in these awkward nested chains of flatMap(whatever()).doOnSuccess(result -> nextThing()).doOnFailure(error -> handleIt()), etc.
Re: (Score:1)
Based on your description, no, you are not, other than maybe "data stores". Sounds like systems programming. And it's rare to need such for app-level database access (unless you did something wrong or bad).
It tends to force the need to parts that have nothing to do with asynchronous programming other than being referenced by parts that do. It pollutes and spreads like prions in a brain.
English (Score:2, Funny)
Just ask Claude or Replit to write your application. Coding is dumb. Software companies should fire all their autistic snooty computer science nerds and hire English majors instead.
Re: English (Score:3)
It's a lump sum (Score:4, Interesting)
Programming languages are used for different applications. So while you probably could write physical simulation software in PHP, a PHP user is way more likely to write some sort of web service.
Essentially most of what the TIOBE index shows is how much different areas of computation show up in search engine results.
Re: (Score:2)
Essentially most of what the TIOBE index shows is how much different areas of computation show up in search engine results.
not most, it's literally that:
Basically the calculation comes down to counting hits for the search query
+"(language) programming"
https://www.tiobe.com/tiobe-in... [tiobe.com]
besides "popularity" being hardly a relevant measure for language choice, that's how daftly they measure it, and no matter how often this gets pointed out every time this clickbait nonsense gets published, it keeps coming back. /. could at the very least add "... and guess what happened next" to the headline, that at least would be fun.
ok, there is the fun of watching opinionated fanbois vs haters erupt in dialectical flames, but that gets old
What is the point of this survey? (Score:3)
What is the point of this survey? How is one supposed to use this information?
I mean, saying that Java is "more popular" than SQL is of limited value, other than suggesting people are doing less database work than database work. The people who answer "SQL" are not necessarily saying they like it better than Java. It just means they do a lot of database work.
Besides that, one may not have a choice as to what to use. For example, they work in a "Java shop", well, they're using Java and not C. Not their choice and it doesn't mean that they like Java better than C.
Overall, I'm confused by what one is supposed to take away from this survey. I'm also not sure that "popularity" is the right term to describe the results. Not sure what IS the right term. I'm just not sure that "popularity" is it.
Re: (Score:2)
Re: (Score:2)
So, a "more popular" person is more used than a "less popular" person?
Re: (Score:3)
More popular means that you won't be left with a technology that nobody supports anymore (like Smalltalk or VB).
But for the top languages it doesn't matter, except some new programmers will refuse to work in what they perceive as "dying" languages.
Re: (Score:2)
I was surprised to see Delphi on the list, let alone ahead of SQL.
Wouldn't be surprising... (Score:4, Insightful)
Java is adopting a lot of C# features, with varying success[1]. As such, more developers are seeing the advantages of those features so why not just use C# where it is way more refined. The cross-platform story is pretty complete. The runtime and the tooling. VS Code works. IntelliJ fans have Rider. The dotnet command tool does the things you need it to.
Some things in Java are just clunky. Building and package management can really become a nightmare. You have choices where you don't really want them.
Microsoft is doing a better job stewarding the platform than Oracle, and as unpopular as Microsoft can be, it is nothing compared to the ill will that Oracle has brought. Microsoft has unhappy customers; Oracle has paying prisoners. The main challenge Microsoft has to overcome is the older versions of the platform itself. As an example, some developers think Entity Framework only works with SQL Server. That was never the case. EF Core works swimmingly with a lot of databases, with Postgres support becoming a notable highlight.
[1] Choices like type-erasure for generics, not having auto boxing and unboxing really makes for some clunky APIs. You have things like
C# has
where T can be int, string, whatever. Async and await alongside IO libraries that are non-blocking by default is another win. Sure, function coloring, but it's been a feature for ten years and it just works.
Re: (Score:2)
Re: (Score:2)
I'm glad Oracle is keeping the async pollution out of Java. Java is more of a business or admin domain language, and less for systems software. You don't really need that for biz/admin coding, and there are ways to still implement for the rare cases.
Engineers do C#, (Score:3)
can someone explain to me (Score:3)
What is the point of comparing languages as if they're sports teams?
I have never understood this. It seems like the most irrelevant thing.
Re: (Score:2)
I've been doing software development for 40 years, and it's been this way since the beginning. Languages have always had their enthusiasts. Let them have a little fun arguing!
Re: (Score:2)
Can you please explain to me what is fun about it?
No, I'm not being facetious. Not deliberately anyway. I genuinely cannot fathom what is fun about competing over which is the best language, and a list like this one just makes it more absurd.
If a person is arguing for using javascript to access an SQLdb, for example, I might simply be confused why they're very obviously trying to use the wrong tool for the job.
Re: (Score:2)
If you've been around slashdot for any length of time, you will notice that people on this site like to argue...about *everything.* People like to be right, they like to believe that other people are wrong. It's a sport, and it's not limited to slashdot. It's just human nature. Husbands and wives argue about who is right, brothers and sisters, coworkers, you name it. Arguing about which language is "best" is part of the desire to be "right."
Re: (Score:3)
Reminds me of that famous Frank Zappa quote;- "Comparing Guitarists is a stupid sport".
Now Zappa was no slouch on the guitar, considered by many as possibly the most inventive guitarists of the 1970s, but he was far less enamoured with virtuosity than his reputation suggested, eventually even giving up on playing it live, and handing over axe duties to his young apprentice, Steve Vai. For him it wasnt how well you could play the instrument, its what the music you played on it sounded like that interested hi
TIOBE vs Github (Score:3)
Comparing TIOBE with Github octoverse, for the top 10 languages.
TIOBE: Python, C, C++, Java, C#, JavaScript, Visual Basic, Delphi/Object Pascal, Perl, SQL
Github octoverse: TypeScript, Python, JavaScript, Java, C#, PHP, Shell, C++, HCL, Go
Common languages: C#, C++, Java, JavaScript, Python
TIOBE only: C, Delphi/Object Pascal, Perl, SQL, Visual Basic
Github octoverse only: Go, HCL, PHP, Shell, TypeScript
Intepretation
SQL statements are usually embedded in another language, so github probably counts them in the enclosing language.
Perl and Visual Basic programmers don't use git, so github ranks them low. HCL files are probably deployed via git, so they appear in Octoverse
TIOBE ranks Go lower, because Go has better offline documentation (go doc) than other languages, so Go programmers don't search the web so much for API documentation.
TIOBE has a low rank for TypeScript, because TypeScript APIs are really JavaScript APIs, so people search for JavaScript
I don't know how to explain C's absence from the Octoverse top-10
Who uses Delphi/Object Pascal?
Re: (Score:3)
Wait, VB is still around?
Also, Java needs to go the way of COBOL. Java was once a language with a lot of promise, then Struts and Springs came along and decided it would be even better with a large dollop of XML and DI on top. Everybody knows nothing is more stable and maintainable than hot-swappable runtime dependencies glued together by XML files. That's the point I relegated it to the trash pile of history.
I don't have strong opinions of C#, but I don't think it's a pretty language, largely because it ca
Pascal Case (Score:2)
My main objection with C# is I can't stand it's Pascal Case.
object.MyMethod()
Yuck.
how many TIOBE lists have we seen (Score:2)
I suppose I could search to find the first one.
Can we change it to a weekly list please.
Not really cross platform if you need UI (Score:2)
Microsoft's UI toolkits are mostly Windows only (WinForms, WPF), or are missing support for Linux (MAUI).
Only third-party projects (like Avalonia) support Windows, MacOS, Linux, and mobile, but those are not an official part of .NET.
Re: (Score:3)
The lack of the one cross platform UI framework to rule them all can be a downside, as has Microsoft's adventures with creating and abandoning modern UI frameworks. But on the flip side this has led to a proliferation of third party options.
Avalonia works everywhere, and they recently made MAUI run on top of Avalonia to give it Linux and WebASM support. They also have a commercial product to run WPF cross platform using Avalonia. So not only do they provide a good option, they have made two of Microsoft's f
Blazor (Score:2)
Could, should, would. (Score:2)
Could? Sure.
Should? Who cares?
Would? We'll see.
Isn't this due to Unity?...not server apps? (Score:2)
Re: (Score:2)
Welcome to EJBs or Enterprise Java Burgers, where you don’t just order a burger, you instantiate a BurgerOrderFactoryBuilderProvider that passes through the DiningRoomController to the PattyHeatProcessingService , the CheeseRepositoryImpl tries not to throw a MissingCheddarException, and your meal finally returns as a BurgerDTO wrapped by the BurgerRepresentationMapper, assuming the whole place doesn’t hit a ServiceUnavailableException.
Kewl Joke...would have been relevant 25 years ago (Score:2)
My Spring apps? They're really fucking lean...because I know what I'm doing...a Resource for HTTP/Security, a Service class, only if needed (which it isn't 75% of
Why is SQL even on this list? (Score:4, Interesting)
Why is SQL even on this list? That's comparing apples to oranges.
That proves this "survey" is worthless nonsense.
Re: (Score:2)
SQL is a Turing-complete programming language. https://www.datacamp.com/blog/... [datacamp.com] Why shouldn't it be included?
Sure, it's domain-specific.. But other languages on the list are also limited in scope. You can't write web front ends in C++ or Java, and you can't write operating systems with JavaScript. Just because the langue can't be used for any and every purpose, doesn't make it less of a language.
It should (Score:1)
Re: (Score:2)
These days, C# even beats Java in terms of cross-platform capabilities, a title once claimed exclusively by Java. It now runs on just about every OS, and even in the browser with Blazor.