C# (and C) Grew in Popularity in 2025, Says TIOBE (tiobe.com) 187
For a quarter century, the TIOBE Index has attempted to rank the popularity of programming languages by the number of search engine results they bring up — and this week they had an announcement.
Over the last year the language showing the largest increase in its share of TIOBE's results was C#.
TIOBE founder/CEO Paul Jansen looks back at how C++ evolved: From a language-design perspective, C# has often been an early adopter of new trends among mainstream languages. At the same time, it successfully made two major paradigm shifts: from Windows-only to cross-platform, and from Microsoft-owned to open source. C# has consistently evolved at the right moment.
For many years now, there has been a direct battle between Java and C# for dominance in the business software market. I always assumed Java would eventually prevail, but after all this time the contest remains undecided. It is an open question whether Java — with its verbose, boilerplate-heavy style and Oracle ownership — can continue to keep C# at bay.
While C# remains stuck in the same #5 position it was in a year ago, its share of TIOBE's results rose 2.94% — the largest increase of the 100 languages in their rankngs.
But TIOBE's CEO notes that his rankings for the top 10 highest-scoring languages delivered "some interesting movements" in 2025: C and C++ swapped positions. [C rose to the #2 position — behind Python — while C++ dropped from #2 to the #4 rank that C held in January of 2025]. Although C++ is evolving faster than ever, some of its more radical changes — such as the modules concept — have yet to see widespread industry adoption. Meanwhile, C remains simple, fast, and extremely well suited to the ever-growing market of small embedded systems. Even Rust has struggled to penetrate this space, despite reaching an all-time high of position #13 this month.
So who were the other winners of 2025, besides C#? Perl made a surprising comeback, jumping from position #32 to #11 and re-entering the top 20. Another language returning to the top 10 is R, driven largely by continued growth in data science and statistical computing.
Of course, where there are winners, there are also losers. Go appears to have permanently lost its place in the top 10 during 2025. The same seems true for Ruby, which fell out of the top 20 and is unlikely to return anytime soon.
What can we expect from 2026? I have a long history of making incorrect predictions, but I suspect that TypeScript will finally break into the top 20. Additionally, Zig, which climbed from position #61 to #42 in 2025, looks like a strong candidate to enter the TIOBE top 30.
Here's how TIOBE estimated the 10 most popularity programming languages at the end of 2025
Over the last year the language showing the largest increase in its share of TIOBE's results was C#.
TIOBE founder/CEO Paul Jansen looks back at how C++ evolved: From a language-design perspective, C# has often been an early adopter of new trends among mainstream languages. At the same time, it successfully made two major paradigm shifts: from Windows-only to cross-platform, and from Microsoft-owned to open source. C# has consistently evolved at the right moment.
For many years now, there has been a direct battle between Java and C# for dominance in the business software market. I always assumed Java would eventually prevail, but after all this time the contest remains undecided. It is an open question whether Java — with its verbose, boilerplate-heavy style and Oracle ownership — can continue to keep C# at bay.
While C# remains stuck in the same #5 position it was in a year ago, its share of TIOBE's results rose 2.94% — the largest increase of the 100 languages in their rankngs.
But TIOBE's CEO notes that his rankings for the top 10 highest-scoring languages delivered "some interesting movements" in 2025: C and C++ swapped positions. [C rose to the #2 position — behind Python — while C++ dropped from #2 to the #4 rank that C held in January of 2025]. Although C++ is evolving faster than ever, some of its more radical changes — such as the modules concept — have yet to see widespread industry adoption. Meanwhile, C remains simple, fast, and extremely well suited to the ever-growing market of small embedded systems. Even Rust has struggled to penetrate this space, despite reaching an all-time high of position #13 this month.
So who were the other winners of 2025, besides C#? Perl made a surprising comeback, jumping from position #32 to #11 and re-entering the top 20. Another language returning to the top 10 is R, driven largely by continued growth in data science and statistical computing.
Of course, where there are winners, there are also losers. Go appears to have permanently lost its place in the top 10 during 2025. The same seems true for Ruby, which fell out of the top 20 and is unlikely to return anytime soon.
What can we expect from 2026? I have a long history of making incorrect predictions, but I suspect that TypeScript will finally break into the top 20. Additionally, Zig, which climbed from position #61 to #42 in 2025, looks like a strong candidate to enter the TIOBE top 30.
Here's how TIOBE estimated the 10 most popularity programming languages at the end of 2025
- Python
- C
- Java
- C++
- C#
- JavaScript
- Visual Basic
- SQL
- Delphi/Object Pascal
- R
Python (Score:5, Interesting)
The advantage of using Python to teach beginners is its simplicity: you don't have to know object oriented programming, or structured programming, to start out.
People choose Python because it's what they know, not because they've looked around to see what they like. Similarly people choose C# because if you want to program on Windows, that's the language.
Re: (Score:2)
Python is popular because it caters to those who do not program for a living, and have no intention of ever doing so seriously.
About that... (Score:5, Interesting)
Python is the top language solely because it is used to teach beginners, and those beginners never move on.
I consider myself to be a seasoned programmer, and my language of choice these days is Python, for purely practical reasons.
For reference, I earned my first money off that by the end of last millenium, in my late teens. I started out seriously learning programming with C in self-learning, if we ignore the brief first contact I had with BASIC in 3rd grade. (It said C++ on the book cover, but it was actually a bad style of C -- I realized that many years later.) I eventually learned "real" C++ and spent literally decades writing software, in C or C++. And I still love C and prefer it for occasional projects.
But my goto everyday language, unless I have a specific reason to choose something else, is Python. It was just about phasing out its 2.7 versions when I started writing serious software in it.
Reason is simple: interoperability owing to its "duck typing". The module dependency system is a joke, yes. But look at the science world: there's at least half a dozen array / numerical calculations systems out there in Pyhton, and they all play ball. Meanwhile no other general-purpose application language has ever reached that.
And it's not just calculations, it's many other things like data access ("file" paradigm), I/O etc.
Python is not really a "lanugage", it's more of an interface. If you need some specific thing, you go ahead and implement it in whatever you need (Fortran, C, C++, ...) and slap a Python API layer on it: *boom*, instant access to a huge ecosystem of whatever, from cluster computations, to GUIs, to device programming, to databases, to web, ...
(I do have a bad conscience for not having learned Rust yet though, FWIW.)
Re:About that... (Score:4, Insightful)
it's more of an interface
Logic glue. I personally refuse to work on large python projects unless mypy and ruff are strictly enforced.
I do have a bad conscience for not having learned Rust yet though, FWIW
I personally write everything in it. Embedded or application. Rust's enum system is a godsend, a feature it borrows from ocaml, haskell, etc. Combined with exhaustive pattern matching and destructuring means you end up with one hell of an expressive language. The easy concurrency/parallelism and memory safety while having C performance is just the cherry on top.
Re: (Score:3)
I personally refuse to work on large python projects unless mypy and ruff are strictly enforced.
I've seen people (actually sent patches to GitHub projects) that got hard-ons about static code checking and linters... and rejected my code multiple times over simple whitespace issues. Yet had the most horrible, most insane flow and architecture: not robust, easily destroyed by (likely to occur) future benign changes in input data etc.
So consider me biased.
Also, there are those who absolutely love strong typing, and those who don't. Don't get me wrong... I "grew up" with it. I know how to handle it. And I
Re: (Score:3)
and rejected my code multiple times over simple whitespace issues
Whitespace pedantry is a scourge of modern software development.
Re: (Score:2)
Unless you program in Whitespace, ofc.
Re: (Score:3)
But I've also spent countless hours of my life -- time I'm never getting back -- refactoring software only to satisfy the type checker because I built the object hiearrchy on the wrong side of a 50:50 decision...
Yes satisfying type systems feels like busy work a lot of the time. In exchange for a number of “false alerts” about real bugs it also finds a few real bugs that otherwise don’t surface until you happen to write the right integration test, or until QA discovers it, or your users. If the particular software you write doesn’t really have “production” or “users”, for example you write software to find “the answer” and “the answer” is the
Re:About that... (Score:4, Interesting)
Duck typing and unit tests does a lot better job at finding bugs per developer hour spent.
If all you do is write code, then possibly, but that really depends on what kind of project you're dealing with. To wit, in the real world, that is to say, it is your day job rather than a hobby project, you're not just writing code, rather you're maintaining code. Which also means being able to easily understand not only code that somebody else wrote, but also even a big, massive codebase you wrote over a year ago and haven't touched since.
The point of type systems is to enable better performance from compiling your code not to check your code is correct.
Not at all. Even compiled languages like C and C++ that are weakly typed don't really benefit from this, rather for these languages, type checking just helps the compiler understand, semantically, whatever the hell it is you're trying to do. In most languages, once your code ends up as machine code, there's really only one data type. The only exception to this I can think of is C# where the reflection API does give data types meaning at runtime. I'd say the same for Java, except for the whole type erasure bit. But it's really for the best if we just forget that Java ever existed, and it's always been Kotlin, which has the same problem due to that being a JVM limitation, but Kotlin doesn't suffer from the immense number of other problems that Java has.
So at the end of the day, for most languages, data types are akin to comments. Python especially so, because the interpreter just straight up ignores them, just as with comments in python and every other language. And types are important for the developer for the same reason that comments are important. They also provide the additional benefit of being able to automatically sanity check your code via static analysis. One of the main benefits of having code that is well documented is that somebody else (or even you, for code you haven't touched in a good while) can easily grok what your code does without having to run it through a debugger or temporarily add print statements.
Assuming that unit tests somehow make up for this is a bad idea. Unit tests do not and are not supposed to tell you how your code does what it does, rather they're only supposed to tell you what outputs to expect. In other words, they tell you the "what" but not the "how". The how part of it is quite important when you're maintaining code.
Another benefit of data types, by the way, comes from the dot completion that many editors offer. When I'm using a new API for the first time, it is a massive time saver when I can quickly see what fields and methods are provided by a data type I've never worked with before. I vastly prefer having code that works as its own documentation vs code with no types, or even strongly typed of code full of opaque types. When people use my APIs, it's incredibly easy for them to figure out how they work without even having to consult the readme I provided. For example, anywhere there is a field with or logic, rather than exposing a string field where the string can only be one of a number of inputs and leave it up to the user to search through documentation for what is allowed in it, instead I expose enums with meaningful names in their variants, which their editor will show them right away. Even when those end up as strings in say web APIs, at least swagger keeps a record of what options are available so that the API consumer doesn't have to guess what strings are accepted for that field.
I cannot stress enough the importance of well-documented code.
Re: (Score:2)
Did you really mix up strong typing versus weak typing with dynamic typing versus static typing, or was that just a glitch of yours?
Re: (Score:2)
Either of those will do just fine in the context he provided. You're not a real developer, stop nitpicking at those who are.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
I got the impression that there's more to rust than just memory safety.
Re: (Score:2)
'Python is not really a "lanugage", it's more of an interface.'
That's not how you spell TCL.
Re: (Score:2)
Alright alright, I'll get off your lawn already... :-p
Re: About that... (Score:2)
To me Python is on the same page as Basic was in the 80's. Easy to learn, easy to create a bad architecture and you need to run tests with 100% coverage all the time because it's interpreting instead of compiling. This means that you don't find typing bugs at compile time but at runtime.
Re: About that... (Score:2)
Python the programming language (as opposed to Python the syntax) isn't "easy to learn", it's fucking hard. No offense, but crappy code in Python usually comes from people who think it was easy to learn. What they write isn't Python, it's horse shit with a Python syntax.
Python has very specific paradigms and ways of doing things; a lot or advanced concepts, very different from C/C++. And if you don't understand those to the core (which BTW takes 1-2 years if you were a good programmer to begin with, several
It Just Works (Score:5, Interesting)
C++ dev here. However in my recent job I've been pivoted (not my choice) to Python and to be honest, I don't have a problem with it. Yes the indentation-has-syntactic meaning is annoying and the language is slooooow (compared to C/C++ anyway), but it does the job, is easy to read and there are libraries for pretty much any common backend task (frontend GUI side not so much but thats not my area so not my problem).
Also regards to C++, frankly I was getting tired of playing catch up with every idiotic ivory tower ever more niche features that are currently being shoved into the language which seems to me some kind of Make Work for the steering committee rather than what users want. No doubt some will say "well you don't need to use it if you don't want". Sure, but I *DO* need to learn this crap as it will inevitably come up in job interviews and someone will use it in code I'll have to work on eventually.
Re: (Score:3)
Similar here, although, to be honest, I prefer C# for a lot of stuff because dynamic typing irks me and Python can be clunky for stuff like enums. For writing something quickly Python is difficult to beat, though.
Re:It Just Works (Score:4, Insightful)
Re: (Score:2)
Re: (Score:2)
You think using invisible characters to denote program semantics is a good idea? Why not just various control characters while you're at it. Eg: If the code beeps when examined thats a for loop! Sorted!
Re: (Score:2)
90% or even 95% of the people complaining about Python's syntax relevance of white spaces:
would indent their code exactly the same way as Python demands it.
So that argument: makes no sense at all.
Secondly: Python is not the only language where white space is significant. The simplest example is any damn old school shell, or make. And there are literally hundreds of other languages, like FORTRAN ... but no one complains.
Re: It Just Works (Score:2)
It is in all visual editors unless you switch on special modes and even then they wont show you all the various control chars. But hey, perhaps you like coding in hex editors. Have fun!
Re: (Score:2)
People who are _scared_ about this, use text editors that "show white spaces".
Every IDE has a switch to activate that.
People who have _problems_ with that: write unit tests.
Tracking Irrelevance. (Score:2)
Python is the top language solely because it is used to teach beginners, and those beginners never move on.
In the Real World, the 'top' language is the one that fucking works to meet the requirements.
Tracking the popularity of C after fifty fucking years? Why? Because you're worried it going somewhere? The COBOL support team still on the bank payroll hasn't stopped laughing about that since being dragged out of retirement for Y2K.
The logic of choosing the applicable solution when coding, doesn't really need the irrelevance of a cheerleading squad. What's next? TIOBE trading cards?
Re: (Score:2)
In the Real World, the 'top' language is the one that fucking works to meet the requirements.
That's why an engineer would choose the language. Look at all the benefits and drawbacks, choose what works best.
In the real world, people choose what they know. They don't look at anything else.
Re: (Score:2)
Re: (Score:2)
Choosing what people already know is one of the benefits that should be weighted. Making it the only criteria is dumb, making it the most important criteria isn’t so dumb.
If I was going to start a new embedded project I currently know C, C++, and Swift all of which are viable depending on how beefy the embedded platform is. I don’t know Rust which might in the abstract be a better choice (less likely to leak memory then C or C++, and while memory leaks in Swift are uncommon embedded Swift is
Re: (Score:3)
Python is the top language solely because it is used to teach beginners, and those beginners never move on.
And also because python (via libraries and frameworks such as PyTorch and TensorFlow and NumPy) provide a large ecosystem for AI/ML development.
Re: (Score:2)
beginners never move on
So in other words, they become experts and find out they can still do everything they need to with Python and don't have a motivation to make the switch.
Re: Python (Score:5, Insightful)
Re: (Score:2)
Wrong: I choose Python because it works and give me results faster in development time. For numerical stuff.
What you are saying is that Python has libraries. Which means that you didn't choose it because you like the language, you chose it because other people chose to write stuff in it. So you're just a copycat (which is how we programmers are).
Re: (Score:2)
"you chose it because other people chose to write stuff in it"
This is predominately how language selection works, one way or another.
Re: (Score:3)
Nope I chose Python because it has libraries and it's fast to get things done. I like the syntax a lot. The combination of executable pseudocode and the right blend of LISP's finer points (list processing) makes it very expressive and powerful for me. That's why I chose it. The batteries included standard library is a huge advantage too. I briefly worked on a couple of projects (not my own) in flutter/dart and also rust and the need to dip into third party libraries was a bit of a turn off frankly. You
Re: Python (Score:2)
Re: Python (Score:2)
I do not like the language though. I notice kids struggling with how a processor handles code. In times of AI, a lot of beginners see a programming language as chat gpt input.
If a and b and c > 0:
is a common mistake.
I wonder if a simp
Re: (Score:2)
My colleague argues that kids do not need to know how a computer works.
That's not a helpful argument though, because kids also don't need to know how to program.
You really need to look at what you are trying to teach, and how well the kids are learning it. If a significant number of students are having trouble, then you need to change things. I've seen kids who are not traditionally "smart" (and also very young kids) do amazing things with LOGO. In the modern era, Scratch.mit.edu seems to work really well for kids, and most all of them are able to figure it out. So if you wa
Re: (Score:2)
My colleague argues that kids do not need to know how a computer works. That is a good point, but I believe it hampers them in understanding of what they are doing. Any thoughts on this?
From my point of view teaching “computer stuff” to high school or younger kids is in large part exposing them to a potential category of things that haven’t really thought much about, and maybe seeing it they will like it, or maybe not. So giving kids that assume “computers is math stuff and I hate math stuff, so that isn’t what I want in my life” enough information to decide for themselves “ok, it is sort of math stuff, but I like it! Maybe not all of math sucks
Re: (Score:3)
Python is indeed popular amongst beginners, however not just beginners. The majority of programmers at Google are far beyond beginners, and a ton of Google’s internal tooling is Python. Probably almost anything that isn’t performance sensitive is in Python with a few occasional shell script exceptions. Have a project ready to launch? Run a python script that walks through the checklist
Re: (Score:2)
Python is the top language solely because it is used to teach beginners, and those beginners never move on.
I don't think it's quite as simple as that, but I do think there's a good bit of truth in what you say. Python has a low learning curve, and it's very usable for people who need to know "enough coding to get things done" but don't really want to take the time to master the practice - like the engineering students I interact with.
And while Python is definitely slower than other scripting languages - for the sorts of things many people use it for, the language's speed doesn't really matter.
Disclaimer: If I ne
Re: (Score:2)
Not true. Python is excellent when the actual Python only serves as glue and most activity is in the libraries. I have done that a few times, prototyping some really complex algos in Python until they worked, then porting the core to C and doing randomized comparison of Pythoin and C code with great success.
Python also has something that you otherwise only find in Fortran: Great math libraries, including R bindings, ML libraries and a lot of other stuff. But unlike Fortran, you also have all the modern stu
Re: (Score:2)
I'm no Python fan, but in pursuing software development I've accepted that I'm a student for life. The idea that some tool is for beginners and another is for professionals has so many real-world counter examples that I'm not certain if your argument was made in jest or not. Ultimately, the results have more to do with the people who do the work than with the tools they use.
I usually choose C because that's what I know best. Sometimes I do go or rush to work, but it's not the first thing I reach for. Ultima
Re: (Score:2)
Nearly all - and I mean "all", not most - programs used in Scientific institutes are written in Python.
And in case you forgot it, Python is OO and such ...
Similarly people choose C# because if you want to program on Windows, that's the language. .Net. ... or Python.
Only if the only thing you know is C# and/or
Otherwise you use Java, Dart or C++
Re: Python (Score:2)
All the schools I knew of in the 90s were teaching Pascal, because that was the language for the AP Computer Science exam up until 98.
who's using C ? (Score:2)
C is always so high in these ranking things.
what am i missing ? loads of driver work ? embedded systems ? why would you use C when there's Rust ?
Re: (Score:3)
the rankings are fucking bullshit, no matter which language you think should be top or bottom.
their "metric" is "we went to google, and used google's estimated number of pages referencing this language"
that's it. that's the entire fucking index. google de-listed a fuckton of older pages on the internet. google changes their algo all the time. this "popularity" contest has absolutely fucking nothing to do w/ actual usage, and is entirely at the whims of google's day to day enshitification of their search eng
Re: (Score:2)
their "metric" is "we went to google, and used google's estimated number of pages referencing this language”
I thought the metric was “we got google to tell us how many actual queries were about X or Y” which is indeed a measure of popularity and likely more valuable then what you describe, but it also means “languages that confuse people more” get a higher ranking. Which has always been my quibble with the value of TIBOE’s index. That is measures things that are popular and confusing.
If you are right, sure it measures the amount of raw material out there about various languages,
Re:who's using C ? (Score:5, Interesting)
I prefer to write Python for purely practical reasons; but as someone who routinely chooses C whenever they don't write Python (...and I used to be very proficient in C++ back in the day, maybe until 2020-ish), here's why: it's simply a fun language to write software in. It's like driving a go-cart :-)
Any alternative out there is blown out of proportion, brings in little value, for a cartload of WTFs in return.
C++? What does it offer above C? Objects and exceptions, you can have most those in C too (just takes a bit of time of writing some simple frameworks, but exception propagation is a feature of the CPU, not the language; there are C system calls for that). Memory management? C++ doesn't really manage memory, you just get better tools to do it yourself. If you're disciplined, you can do it in C. More stringent typing? Yeah, that introduces a lot of restrictions (again, without real benefit), that C++ then spends half of its overwhelming might on solving again... if you're a "safe programmer" by design, C is just as nice to write as C++, just less of a headache. And if you aren't, C++ won't prevent from shooting yourself in the foot -- it will just give you a railgun to do so instead of a rifle.
Java? Don't know Java (intimately), but any language that can't be written with a text editor seems like a waste of brain cycles.
What else is on the list? C#? I never quite shook the idea that it's an MS-only party (yes I know, there's a Linux version of that ecosystem), but... what problem does it actually solve that C++ or Python doesn't?
SQL is not a "programming lanugage".
JavaScript neither, but people keep trying... (inconsistent type system, global namespace pollution, scoping hell...).
Rust is probably interesting. This is why it's gaining. But the software world is much, much larger today than it was in the '90s, so... it takes some sweet time.
Re: (Score:2)
"C++? What does it offer above C?"
Ther than what you mentioned - the STL. In my line of work I use internal program data storage a lot and frankly the thought of having to roll my own dynamic array, linked list (for the 10^6th time) or worse a map/dictionary to do basic stuff that comes for free in C++ and other languages puts me off C for all but low level systems and network utility work these days.
Re: (Score:2)
Re: (Score:2)
Agreed. IIRC there is a set of posix hash table functions (forget the names, too lazy to google) but bizarrely they only allow for one global table making them effectively useless for any non trivial application.
Re: (Score:2)
I do not understand this comment "for the 10^6th" time. Even if you do not want to use someone else's library, you write it once and then reuse it. The idea that is has to be in the standard library or you have to rewrite it from scratch all the time is very weird.
Re: (Score:2)
For “currency objects” it makes a big difference if it is in the standard library or not. If I make my own hash table that is fine when I want hash tables. If I use any library that might end up wanting to take a hash table as and argument or provide one as a result it isn’t going to use my hash table, it’ll use one they wrote or picked from elsewhere. Ditto for a set, a tree, and everything else.
It isn’t the end of the world, but it will distort interfaces away from usin
Re: (Score:2)
I agree, but this was not the argument I was replying to.
Re: (Score:2)
In principle yes... and no.
I understand your point, but I have two objections. First, it's "just a library". Yes, part of the standard, but... pick a C string / vector / whatever library and make it "part of the standard", and we're there. There's nothing inherently magical about the STL.
The the actual use case and impact on the community: what use is it really, given C++'s underlying language peculiarities?
Take vectors and lists for example: the last I looked (admittedly >5 years ago), if you had Boost
Re: (Score:2)
Boost has been falling out of favour for years since most of the used functionality was ported to newer versions of C++ (so yes your rant is obselete), you're a bit behind the times. I haven't seen Boost used in new code for about a decade now. And the STL is a de facto standard library which comes with every major C++ compiler (don't know about embedded but they do things their own way over there) so there's zero reason not to use it.
Re: (Score:3)
Java? Don't know Java (intimately), but any language that can't be written with a text editor seems like a waste of brain cycles.
The advantage of Java (and c#) is that it can be used by large teams without messing things up too badly. A large project written in Javascript ends up with almost intractable type errors (which is why Typescript has become more popular), and a large program written in Python has almost intractable type errors and maddening versioning issues.
With a large team, C++ will inevitably have someone incompetent adding a bunch of memory errors (or adding friend classes or something; overwriting an operator with
Re: (Score:3)
Re: (Score:3)
Java has its own WTFs. (I don't have first hand experience, but I managed a team of Java programmers at one point in my career.) With Java, you end up building factories upon factories upon factories upon diagrams in the end. Large OO projects in general tend to blow up simply because 2 years down the line, you realize that your 50:50 decision about how to start a class hierarchy should've swayed the other way.
Sooner or later you end up with "quick" 3k lines of code copy & paste & slight modificatio
Re: (Score:2)
try writing Java without massive help from autocomplete
Try reading code written without help from autocomplete: "int i, j, k, l" vs "int category, row, column, total"
When you write significantly more readable code while typing only a few more characters, why not?
Re: who's using C ? (Score:2)
Exactly, jusy the other way around: the more help your IDE offers, the crappier the code we write.
I never had any problems whatsoever knowingly precisely what my current j, j, k... means: because I get nervous if my fuctions don't fit on an 80x25 terminal, and outright frantic if they pass 50 lines. More than 2 levels of indentation (full level, 8 char tab, or 4 char if I'm in Python), and I'm shifting restlessly in my chair. Try doing that will all your code for the whole project, and you'll realize qualit
Re: (Score:2)
Java's problem isn't that you have to do any of this crap, it's that it practically encourages it.
I had to restart a project recently because I realized I had built 20+ classes SO FAR for what was basically a smart proxy, just by constantly going "Wait, I'll need X", and spending time writing that. If I'd written it in, say, PHP (yes, PHP!) I'd be surprised if it'd have been more than 2-3 files in size and not mostly functions passing associative arrays around.
It's not that you have to do any of this, it's
Re: (Score:2)
With Java, you end up building factories upon factories upon factories
a) what has that to do with the language?
b) who would anyone ever have a factory returning a factory?
c) never seen that in any language!
Large OO projects in general tend to blow up simply because 2 years down the line, you realize that your 50:50 decision about how to start a class hierarchy should've swayed the other way.
That does not make any sense. And has nothing to do with any language anyway.
Re: (Score:2)
The advantage of Java (and c#) is that it can be used by large teams without messing things up too badly.
Hahaha.
Oh, wait, you were serious. Let me laugh harder.
Hahahahahahaha.
Bad programmers will write bad code in any language. Good programmers will write good code in pretty much any language. No language will force bad programmers to write good code.
Re: (Score:3)
What does your simplistic, over-generalized, smug argument have to do with anything GP said?
GP was talking about large teams working together. Not making bad programmers into good ones.
Yes, Java is good for helping large teams to work together without messing it up. You try managing a large Python project with skilled Python programmers and you'll quickly learn why Java is one of the most popular corporate back-end languages there is (and why C# is pretty much its only real rival.)
Re: (Score:2)
and a large program written in Python has almost intractable type errors and maddening versioning issues.
This is one reason why I refuse to work on large python projects without strict ruff and mypy enforcement. Mypy effectively turns python into a statically typed language, but only if enforced.
Re: (Score:2)
I prefer to write Python for purely practical reasons; but as someone who routinely chooses C whenever they don't write Python (...and I used to be very proficient in C++ back in the day, maybe until 2020-ish), here's why: it's simply a fun language to write software in. It's like driving a go-cart :-)
Any alternative out there is blown out of proportion, brings in little value, for a cartload of WTFs in return.
C++? What does it offer above C? Objects and exceptions, you can have most those in C too (just takes a bit of time of writing some simple frameworks, but exception propagation is a feature of the CPU, not the language; there are C system calls for that). Memory management? C++ doesn't really manage memory, you just get better tools to do it yourself. If you're disciplined, you can do it in C. More stringent typing? Yeah, that introduces a lot of restrictions (again, without real benefit), that C++ then spends half of its overwhelming might on solving again... if you're a "safe programmer" by design, C is just as nice to write as C++, just less of a headache. And if you aren't, C++ won't prevent from shooting yourself in the foot -- it will just give you a railgun to do so instead of a rifle.
Java? Don't know Java (intimately), but any language that can't be written with a text editor seems like a waste of brain cycles.
What else is on the list? C#? I never quite shook the idea that it's an MS-only party (yes I know, there's a Linux version of that ecosystem), but... what problem does it actually solve that C++ or Python doesn't?
SQL is not a "programming lanugage".
JavaScript neither, but people keep trying... (inconsistent type system, global namespace pollution, scoping hell...).
Rust is probably interesting. This is why it's gaining. But the software world is much, much larger today than it was in the '90s, so... it takes some sweet time.
> prefer to write Python for purely practical reasons . . . but C . . . it's simply a fun language to write software in. It's like driving a go-cart :-) Any alternative out there is blown out of proportion, brings in little value, for a cartload of WTFs in return . . . C++ . . . will just give you a railgun to do so instead of a rifle
Couldn’t agree more, all the way from the deep O/S level to the app level, but I quibble with:
> Java? Don't know Java (intimately), but any language that can't be
Re: who's using C ? (Score:2)
FORTRAN wasn't on my list because it's strictly speaking not a "real" language, pretty much like SQL. You don't write GUIs, wrb servers, or DB connectivity plugs in FORTRAN. It's a language specifically for "math stuff", to me...
The name gives it away :-)
And when you've written your math stuff, you slap a decently modern API layer on it and call it "numpy" or something :-p
Re: (Score:2)
I prefer C over Rust anytime because of much less complexity, more portability, higher stability, more tooling, far less supply chain issues, fast compilation times, proper dynamic libraries, less ugly syntax.
why not Rust (Score:2)
Re: (Score:2)
Re: (Score:2)
The things Rust is used for are things C stopped being used for decades ago. Nobody writes a word processor in C and haven't since the 1980s. Even the first Web Browsers were written in Objective C and C++. So you'd expect C to not really change where it is in the rankings, mostly used for low level stuff like device drivers, and embedded stuff where space is at a premium.
Yes, Rust can, now, be used for device drivers, but for some reason Rust's presence in the Linux kernel is still controversial and most k
I read some articles & comments (Score:2)
Re: (Score:3)
Yes you did read such an article.
Perhaps it was the one from some MS guy. Luckily it turned out to be nonsense. It was just some MicroSoft droid talking about some job offering working on some research project he had dreamed up.
Or it could have been one about DARPA (I think), again just an announcement of an AI drive translation research project.
As it happens by way of fun and experiment I have been getting LLMs to create Rust applications for me for the last couple of months. Nothing very big and not essen
Re: (Score:2)
I'm amazed at how well they have worked out.
It could be the ratio of good versus bad Rust code is higher than others that have been available on the internet for a longer time. Then the LLMs will spit out statistically better code.
Re: (Score:2)
What idiots. Everyone knows Assembly is the fastest and the AIs just give you the working code, so all vibe coders should be working in Assembly!
Joke ranking (Score:2)
Re: (Score:2)
There must be a more serious ranking than this. Can we get posts about that instead?
I'd rather take a vote as to why anyone still gives a shit about TIOBE rankings.
Would defenders of TIOBE prefer to wait until AI is doing the rankings, or is there a more valid reason we suspect it is doing that now. With vibe coding.
The sig worked! Yes! (Score:4, Funny)
C++ dropped from #2 to the #4 rank that C held
Thanks, Slashdot!
Between Completely Useless and Mildly Interesting (Score:4, Insightful)
This index is a quarterly (?) ritual for Slashdot and its between completely useless and midly interesting ever since 2001. We don't know what the exact metrics are, what statements we can derive from it and for which audience it could be really important (if ever).
We don't know what that kind of "popularity" actually means: only the top 2 of the list are over 10%, no. 9 is already under 2% of popularity.
If you are long enough in the SW engineering field, you'll meet some language, whether you like them or not. The exact kind depends on your field you are specializing in. You absolutely WILL meet SQL (8) in some form, not sure you ever will see Delphi / Object Pascal these days (9). If you are a Windows admin of any form (but not only there), you absolutely will meet Powershell (#44) in some form, not sure about LabVIEW (#46), even if you are a long-time EE engineer.
This index cannot say, whether you _should_ learn another language. It also does not say, how many projects are developed in it. There must be better metrics out there than this?
Re: (Score:3)
This index is a quarterly (?) ritual for Slashdot and its between completely useless and midly interesting ever since 2001.
If it were only quarterly, I don't think so many people would complain so much when it shows up.
It seems to vary for whatever reason, but - I'm pretty sure I've seen TIOBE stories on Slashdot sometimes as frequently as every other week.
Re: (Score:2)
Makes No Sense (Score:2)
I know it's anecdotal, but when I look around, it seems that the top languages are C#, JavaScript, Python, and SQL. The order may be different but those are in the top, for sure.
Who the fuck is using Visual Basic, Object Pascal, or R in 2025? That's nonsense.
Re: (Score:3)
Who the fuck is using Visual Basic
*Raises hand.* This is VB.NET, not "classic" Visual Basic (that's much farther down on the list). I maintain a crapload of ancient (15+ years old) but still useful ASP.NET apps using VB. Could rewrite them in C#, but why bother?
Re: (Score:2)
Same. Everyone of course is doing all their new .NET work in C#, but if you have a legacy enterprise app in VB.NET that works fine and is still supported in a modern operating environment, your company isn't paying for a rewrite, and you aren't doing it on your own time.
Re: (Score:3)
TIOBE's methodology is to plug "$LANG programming" into a bunch of search engines (including oddly enough Amazon and ebay), apparently take the "1.2 million results" stats in the corner at face value, apply some magical fudge factors and call that good.
I'm constantly mystified why this nonsense gets this amount of prominence when there's better data sources. Look at employment offers, Github or something at least.
Re: (Score:2)
Their results are going to get more and more distorted as people turn to asking AIs for help.
Re: Makes No Sense (Score:2)
C# slightly on the rise due to Blazor? (Score:2)
C# Java (Score:4, Interesting)
Having used both at different jobs, I'd pick C# over Java for any new project, and it's not even close.
Native support for async/await is sufficient reason all by itself. Java's Mono library is roughly equivalent to how things were done in C# a decade ago. It's tedious enough that the C# designers adopted language features that make 90% of that tedium just disappear.
C#'s run-time type information enables some convenient things that are impossible in Java due to type erasure.
C# has language-level support for nullability and definite assignment. Java has hacks that come close, but it's not on the same level.
For microservices, the Micronaut framework (Java) is really nice... It's just not nice enough to put up with Java's shortcomings.
And for client apps, Uno Platform (C#) is the closest thing I've seen to Java's original "write once, run anywhere" goal.
The Fire and the Light (Score:2)
I feel validated. C and Python are the fire and the light, the only two general-purpose programming languages the world truly needs. All others should justify their existence by filling more specialized roles.
C is timeless, and not just because it's ancient, but more because it's so agnostic. No matter what comp-sci fad is making the rounds this year, you can implement it in C.
Python is like Dr. Jekyll and Mr. Hyde, if Jekyll was the son of BASIC: interpreted, easy to learn, easy to read, popular with the m
No licensing issue with Oracle (Score:2)
Re: (Score:3)
Java has seen improvements over the years, but it's also had a lot of hacks bolted on because Oracle didn't want to create a Java 2.0 that wasn't 100% compatible with Java 1.x. So it's still boiler plate heavy despite the slight improvements with things like var, like it not needing you to define a whole new class just to pass a lambda, and like being able to do a set of angle brackets rather than specify types, there's still a huge amount of boilerplate shit that has to be written for a simple Hello World
Re: (Score:2)
Not sure why you got voted down. I agree with your Java comment, that plus it was first out of the gate to "run everywhere" so there was an early lock in. I was on board for while but the verbosity and boilerplate just wore me down. Like FORTRAN it was the first to do what it did before valid alternatives arose, and like FORTRAN it will linger long time.
Re: (Score:2)
Java got high rankings because it was the #1 choice for corporate back end development until relatively recently. It also was the primary Android development language until Google started pushing Kotlin. It has nothing to do with what might have been taught in colleges.
Re: also (Score:2)
Re: (Score:2)
Swift is #22 on the list according to the article. Seems about right to me.