TIOBE Calculates C++, C, and Python Rose the Most in Popularity in 2022 (infoworld.com) 84
"The Tiobe index gauges language popularity using a formula that assesses searches on programming languages in Google, Bing, Yahoo, Wikipedia, and other search engines," writes InfoWorld. And they add that this year the "vaunted" C++ programming language was the index's biggest gainer in 2022.
TIOBE's announcement includes their calculation that C++ rose 4.62% in popularity in 2022: Runners up are C (+3.82%) and Python (+2.78%). Interestingly, C++ surpassed Java to become the number 3 of the TIOBE index in November 2022. The reason for C++'s popularity is its excellent performance while being a high level object-oriented language. Because of this, it is possible to develop fast and vast software systems (over millions of lines of code) in C++ without necessarily ending up in a maintenance nightmare.
So which programming languages are most popular now? For what it's worth, here's TIOBE's latest ranking:
- Python
- C
- C++
- Java
- C#
- Visual Basic
- JavaScript
- SQL
- Assembly Language
- PHP
InfoWorld adds that "Helping C++ popularity was the publication of new language standards with interesting features, such as C++ 11 and C++ 20."
More from TIOBE: What else happened in 2022? Performance seemed to be important. C++ competitor Rust entered the top 20 again (being at position #26 one year ago), but this time it seems to be for real. Lua, which is known for its easy interfacing with C, jumped from position #30 to #24. F# is another language that made an interesting move: from position #74 to position #33 in one years' time. Promising languages such as Kotlin (from #29 to #25), Julia (from #28 to #29) and Dart (from #37 to #38) still have a long way to go before they reach the top 20. Let's see what happens in 2023.
TIOBE's announcement includes their calculation that C++ rose 4.62% in popularity in 2022: Runners up are C (+3.82%) and Python (+2.78%). Interestingly, C++ surpassed Java to become the number 3 of the TIOBE index in November 2022. The reason for C++'s popularity is its excellent performance while being a high level object-oriented language. Because of this, it is possible to develop fast and vast software systems (over millions of lines of code) in C++ without necessarily ending up in a maintenance nightmare.
So which programming languages are most popular now? For what it's worth, here's TIOBE's latest ranking:
- Python
- C
- C++
- Java
- C#
- Visual Basic
- JavaScript
- SQL
- Assembly Language
- PHP
InfoWorld adds that "Helping C++ popularity was the publication of new language standards with interesting features, such as C++ 11 and C++ 20."
More from TIOBE: What else happened in 2022? Performance seemed to be important. C++ competitor Rust entered the top 20 again (being at position #26 one year ago), but this time it seems to be for real. Lua, which is known for its easy interfacing with C, jumped from position #30 to #24. F# is another language that made an interesting move: from position #74 to position #33 in one years' time. Promising languages such as Kotlin (from #29 to #25), Julia (from #28 to #29) and Dart (from #37 to #38) still have a long way to go before they reach the top 20. Let's see what happens in 2023.
C++ for ever and ever (Score:1, Flamebait)
Re: (Score:2)
Common sense was bound to prevail in the end.
Re: (Score:2)
C++ was never going to be replaced by Java. They are for 2 different sets of problems...
Rust (Score:3, Insightful)
Rust is actually pretty good, but you have to get used to it; which is likely why nobody wants to use it. Still what I think the best order to learn programming is assembly, C, C++, JavaScript, Python. A few months of assembly first so you know how a computer works. Prove me wrong.
Re:Rust (Score:5, Interesting)
Still what I think the best order to learn programming is assembly, C, C++, JavaScript, Python. A few months of assembly first so you know how a computer works. Prove me wrong.
It really depends on the person. Some people (many?) like to start from a higher level, like Javascript, actionscript (back in the day), MATLAB if they're engineers, BASIC for kids of the 80s, Scratch for kids now, python for some. It's neat because you can get stuff to work and fill in the gaps. Other people don't believe the magic and can't accept big gaps they need to fill in later and prefer assembly first. Though having taught programming, IME the ratio is about 100:1 against assembly first.
You're not wrong because there's no right way to learn, but you're not right either for the same reason. What you're proposing works well for a certain type of person.
I learned BASIC (BBC variety) then ASM then a bit of shell scripting, then C, then a ton more shell scripting and unixy stuff and C++, then others.
Re: (Score:2)
For now I'd have to agree, but give it time.
It offers the real promise of solving an entire class of problems that memory-unsafe languages simply do not.
If it fulfills that promise, then within a decade, I think it's going to be everywhere.
If not, then back to the drawing board, I guess.
But I for one know that if I can create Heisenbugs by accidentally crapping on memory I don't own, then, sooner or later, I will.
So I simply won't ever choose to work in a language like C++ that not only allows that sort of
Re:Rust (Score:4, Insightful)
Rust is actually pretty good, but you have to get used to it; which is likely why nobody wants to use it. Still what I think the best order to learn programming is assembly, C, C++, JavaScript, Python. A few months of assembly first so you know how a computer works. Prove me wrong.
The reason nobody /wants/ to use it is because it is currently catch 22, employers don't have the pool of potential candidates, few candidates invest because few employers offer. Why invest in a software stack that is hard to maintain, since Rust should be easier to maintain?
Of late though, I do see some jobs in the local area that feature Rust in some way. Give it time, there's lots of reasons to use it. If you're in a job that's programming, start new projects in Rust, don't migrate old things unless there's good reason.
Re: Rust (Score:2)
My experience differs. My knowledge of rust is directly responsible for getting me into the best job I've ever had with a fantastic company that many apply for and very few get accepted.
Re: (Score:2)
Re: (Score:2)
Even in a good job market this still applies. They're one of the largest privately held companies in the world by market cap, and yet have relatively few employees (when compared to similar market cap private companies, they have toughly 10 times fewer.) Though if you look up the largest privately held companies by market cap, they won't show up in any lists. But if you look up, you might see them.
Learning order (Score:2)
I almost agree...
Assembly, C, C++, Python, JavaScript
As for assembly, as far as I'm concerned, if you're not comfortable there, you're missing the foundation you need to actually understand what is going on in any high(er) level language.
Re: (Score:2)
It's hard to write meaningful/useful programs in assembly language these days though. Desktop CPUs are too complex, anything more than a few thousand lines needs you to really grok programming before you even start typing.
It would probably have to be via. some sort of emulator with a graphical view of the RAM, etc.
Re: Learning order (Score:2)
I'd argue it's impossible to write a useful asm program at all on x86 now beyond tiny utils. The modern instruction set is vast , SSE* alone must be over 100 opcodes and that's before you have to worry about FMA, AVX, gpus, pipelining and intel/amd differences. I doubt anyone could better a modern C ++ compiler for generating efficient assembler on x86 now.
Re: (Score:2)
I'd argue it's impossible to write a useful asm program at all on x86 now beyond tiny utils. The modern instruction set is vast
I would agree.
Even the 286 instruction set was over-complex with all the segmentation and stuff but the modern x64 instruction set is mind-bottling.
Maybe this is the Arduino can help: The AVR instruction set is very reasonable and you can get instant feedback from flashing LEDs, etc.
Re:Learning order (Score:4, Interesting)
I learned languages in the exact opposite order. I went BASIC -> Pascal -> C++ -> C. At each stage, I learned more about how the underlying hardware actually worked.I work mostly in C++ these days. Never bothered learning assembly, although you tend to pick up some of that simply by looking at disassembly in the debugger anyhow.
I don't think it's necessary to learn in a particular order, nor do I think you necessarily need to understand assembly to truly understand what's going on under the hood. You tend to pick that up when working with C or C++ anyhow, since they are a pretty low-level abstraction over the hardware to begin with, and you pick up a deeper understanding over time somewhat naturally. Also, these days, assembly language is an abstraction as well, and doesn't really represent what the CPU is truly doing on the hood (especially x64)..
The entire notion of "really understand what's going on under the hood" feels a bit like gatekeeping to me, though. Or maybe a bit of "no true Scotsman?" For a JavaScript programmer, understanding what's going on at the near-hardware level seems kind of pointless - far more valuable to understand the complex software stack you're working in, which is pretty far removed from the hardware. It's more valuable if you're working on embedded programming for tiny devices, or need top performance in C++, so you can understand how to make your code more cache friendly, etc.
Re: (Score:2)
Regarding learning, I'd absolutely agree. I'd go even a step earlier and build flip-flops and NAND gates and counters and stuff on a breadboard. Then working on a simple non-pipelined, old-school CPU like an 8086 or 68000, or maybe today an Arduino. They did all that back in CS programs back in the day; I'm not sure why they ever stopped.
Then, you can know not just on a logical level but on a physical level what your CPU's op codes are doing. You understand, at least on a basic level, every abstraction
No need. (Score:2)
Prove me wrong.
This is not how the burden of proof [wikipedia.org] works.
Re: (Score:2)
Too bad slashdot basically ignores that these days. The last two days of my posts on slashdot basically involve somebody (DamnOregonian) saying that I've said things that I never said, so I ask him to prove it, so his ultimate reply is to call me a bullshitter as if that is some sort of vindication of his viewpoint.
Kids these days...
Re: (Score:2)
Ok professor. This isn't academia. I'm not forcing anyone to believe me, nor did I claim to have proof. I provide no evidence. However I applied some logic to some empirical/anecdotal evidence to make my conclusion. I could very well be wrong. Anyway, I provided a hypothesis/speculation. If someone wants to blindly believe me, that's on them, and they'll likely be doing so based not just on what I said but also their own (possibly biased) experiences. If you're interested in the truth you can find evidence
Re: (Score:2)
I'm not forcing anyone to believe me, nor did I claim to have proof. I provide no evidence.
So it's settled: there is no reason to believe you.
Re: (Score:2)
No, there are still reasons to believe me. Interpretation of existing evidence, logic etc.
Re:Rust (Score:4, Interesting)
Re: (Score:2)
Most programmers barely know assembly. It does not make them bad. Interest and investment in assembly skills probably correlates with general proficiency, but it is not a causation.
Let's hear it for the bottom 50! (Score:5, Informative)
ActionScript, Alice, Apex, B4X, bc, Bourne shell, C shell, Chapel, CL (OS/400), Clojure, Common Lisp, Crystal, cT, Elixir, Emacs Lisp, Erlang, Forth, GAMS, Hack, Icon, IDL, Inform, Io, J#, JScript, Korn shell, Ladder Logic, Limbo, LPC, ML, Modula-2, MQL5, NATURAL, OpenEdge ABL, PL/I, Pony, Processing, Programming Without Coding Technology, Q, Racket, Raku, Ring, S, Solidity, SPARK, Tcl, VBScript, VHDL, X++, Zig
Delphi edges out Rust (Score:2)
A Charles Dickens' Ghost of Coders Past of a Pascal dialect is ahead of Rust?
Sad!
Re: Delphi edges out Rust (Score:2)
You, clearly, have not had the privilege of working in Delphi because of you obvious bias.
Those doing web development wonâ(TM)t find Delphi appealing unless the buy one of 3rd party libraries. And, the code isnâ(TM)t industry standard or portable across companies.
But, I donâ(TM)t do web development.
My biggest gripe about it is that the dev environment still only runs in Windows and cross-compiles for the other platforms. I work in a Windows VM on my Mac.
Porting the IDE to Mac and Li
Re: Delphi edges out Rust (Score:2)
It run under WINEâ¦still Windows.
It wasnâ(TM)t a native LINUX tool. That, and their license is why it failed out of the gate.
Dishwashing liquid? (Score:2)
Relax, it's Palmolive!
You have to be old enough to have started out programming in Pascal to remember that meme.
Privilege of working in Delphi? Brother-man, I learned Pascal from Brinch Hansen, himself.
I started work with Anders Hejlsberg's creation going back to Turbo Pascal Version 2, running it on a dual floppy disk IBM PC.
Delphi and the things leading up to it have been around for a long time. I was remarking that something that is dismissed by most as an ancient relic is slightly ahead of Ru
Re: (Score:2)
I wouldn't be the man I am today with out VBScript. VBScript, the language men call for byRef and byVal.
Re: (Score:2)
I used it a lot back in my Windows-only days (employer's choice, definitely not mine) because it was pretty much the only scripting language that was more or less guaranteed to exist on any Windows machine at the time.
A horrid beast of a language, but, still, sometimes better than nothing.
Powershell fills a similar role today. Also horrid, just in a different way.
Good to know... (Score:2)
SQL is not a programming language (Score:2)
Re: (Score:3)
I say this is a primarily-C++ programmer, who doesn't have a gate-keeping complex about languages that don't fit the imperative mould.
Re: (Score:2)
I wrote a batch file to find a string in a pile of txt files, Imma real programmer now right?
Re: (Score:2)
Re: (Score:2)
Now then I wonder why are all the SQL dialects are lumped together as SQL, but shell scripts are listed separately? Oh well.
Completely irrelevant. OP's idiotic complaint was that SQL doesn't count as a programming language.
It doesn't matter, in that context, how they're categorized and counted.
Re: (Score:1)
I mainly agree with you, but if it is Turing complete it is a coding language, I heard MS even made Excel statements complete and if that's a programming language why not just get over it and not be so rigid.
Re: (Score:2)
I think my issue with having SQL in the list is because it's not something most coders are working with directly - they're typically going to be interacting with an SQL database via one of the other languages, which often have some amount of an abstraction layer between the language and SQL itself.
Admittedly I work directly in MariaDB fairly regularly, but I assume that's atypical (maybe I'm wrong).
So Python is harder than Assembly Language? (Score:3)
The problem is that people search for different reasons. Clearly assembly language is harder than PHP, so there's a lot of searching and Assembly is higher up than PHP. But that's not why Python is higher up than Assembly.
Basically this survey tells us nothing very clearly; it certainly doesn't tell us which languages are most "popular".
Re: (Score:2)
You should disagree with their methodology, not merely their use of the word "popular".
Rust entered the top 20 again (Score:1)
Rust entered the top 20 again
Number 10 is PHP with 1.39%
Does it really make sense to watch for popularity of languages at a sub- percent level? The question may sound rhetorical but I tried to dig up the absolute numbers of "number of skilled engineers world-wide, courses and third party vendors", didn't find any in the two links.
https://www.future-processing.... [future-processing.com] says "there were 26.8 million active software developers in the world at the end of 2021"
So Rust with its 0.61% would roughly translate into 130
Re: (Score:2)
The percentages don't represent distinct developer groups, so your numbers are wrong and low.
Re: (Score:1)
You are right. The "ratings" only approximately represent percentage of people knowing the language, but they might be closer to the representation of the percentage of people for whom Rust is some sort of "main" programming language.
Which does not change the nature of the question: how important are these numbers?
Re: (Score:2)
Honestly I don't think there is truly a good measurement of the popularity of a programming language. Only three years ago it was hard as hell to find rust crates for specific things, and as of March of last year, every single use case I was at some point looking for is now covered by at least one crate. Among them was generating excel documents, ldap authentication with gssapi, PCSC, PIV, and a few others I can't think of at the moment. At the time I was wanting to learn Rust, golang had these covered bett
I take full responsibility (Score:1)
For C's popularity, without me the language would die a slow atrophying death in a hospice somewhere.
Jokes aside; I would not use C for web development, PHP is made for that purpose. I would likewise not use C for app development, java cornered that market (on android, I heard there's another environment) now there's talk about a new fad called Kotlin, haven't really got around to look at it yet.
And there is a lot of hype concerning Go, use that if you aren't confident you can handle your memory.
But for a C
Re: (Score:3)
Every time I think "I could totally use C for this", my next thought is "sure, but if I use C++ I'll get RAII/constructors/destructors as well, so I won't have to worry (much) about memory/resource leaks. And I'll just ignore all of the other stuff in C++ that I have no use for."
Where do APL, SNOBOL, Algol, Fortran, & COBOL (Score:1)
I had to program in all of them at one point of time. (Mostly in school assignments in the distant past I admit. Also Dynamo and a simulation language I don't remember the name of.)
Oh, and then there's Ada (which I never programmed in but I did write a parser for it using Bison one time.)
How many of these languages will be remembered as well as the ones I just mentioned.
Re: (Score:2)
Where indeed:
So yeah, Fortran beat out some of the "trendy" languages in the headlines including Julia, F/#, and Dart. ADA and Kotlin were nearly tied. Just proving once again that Tiobe ratings are "sound and fury, signifying nothing."
Nim (Score:3)
Sad that Nim isn't even on the list. :(
I'm puzzled as to why C++ is *increasing*, and even more by assembly language beating out PHP.
Also why is Java so high when Kotlin exists?
Re: (Score:2)
Java is high because backwards compatibility. Too many enterprise things - expensively developed things - are written with the various Java enterprise ecosystems. The people with money are not going to upend all of that to lean on a language created by a small IDE company.
Re: JAVA is seriously fast (Score:2)
Java is so fast that any java software has a 10 second splash screen.
What does is means anyways "enterprise" use case? And why would Java somehow succeed in these types of workloads and fail at "non-enterprise" use cases?
Re: (Score:1)
Re: (Score:2)
These systems are designed to process many transactions per second, e.g. serving web pages, or pament transactions, or processing online forms data, processing business rules / business logic, or big data processing, etc. etc. This is something that C or C++ is not suited to at all. That's where the big money is, and that's the domain of Java.
General purpose language choice is mostly irrelevant. If you want to process business rules you would use a suitable abstraction/DSL not C or Java. It's design that matters not underlying language.
Also, Java has evolved a lot since it had a bad reputation.
It has an even worse one now under Oracles leadership.
Re: (Score:1)
Re: JAVA is seriously fast (Score:2)
Have a guess what language Oracles JVM is written in. That's right, C++. So whatever java can do C++ can do faster.
Re: (Score:1)
Re: JAVA is seriously fast (Score:2)
You havent worked in many financial corps. Theres a fuckton of C and C++ used in HFT and performance networking. I know , I worked on it. Java would be left for dead.
Re: (Score:1)
Re: JAVA is seriously fast (Score:2)
JIT can be done by C++ or the JVM by definition couldnt do it given it's written in C++. Yes, I'll grant you its feckin hard.
Yes I know about the LSE debarcle. They believed the MS salesdroids about how Windows 2003 and .NET was 24/7 enterprise ready. Turned out, not so much.
Re: (Score:2)
HFT is a fairly unique niche, and it really only exists between Jersey City and lower Manhattan, and maybe their London and Singapore equivalents, because latencies are much too high anyplace else.
A lot of what people call HFT really isn't. It's just program trading. That still needs low latency, but not necessarily sub-microsecond. And for the same reason, it may not necessarily require everything being coded in C or C++. Tight loops, absolutely. Core logic? It would depend.
(Disclaimer: not a bro
Speaking of coding... (Score:4, Insightful)
Many times when opening Slashdot I am greeted with the following advertisement:
Now. Given that SourceForge is being maintained by the same people who maintain (cough) Slashdot, I can't imagine why I would be motivated to trust anything I've written to SourceForge.
I mean, seriously. Slashdot doesn't even support unicode in 20-frigging-23, and the list of unsupported but useful HTML is long and distinguished. The people over at the other Slash-based site have all that stuff done, and more.
Perhaps if they want developers to use SourceForge, they should show that they know how to maintain a website first.
</RANT>
Re: (Score:2)
Perhaps if they want developers to use SourceForge, they should show that they know how to maintain a website first.
They'd also have to take the name of their business out of the word filter here, and also reverse their ban on stories critical of Elno. You can't trust them not to remove your projects if they conflict with their agenda. Then again, you can't trust github either, e.g. they recently removed AUTOMATIC1111's SD webui repo for links to content that didn't align with their values (probably waifu diffusion or something.) I moved to gitlab when M$ bought github, SFSG.
Visual Basic (Score:3)
The Language C (Score:2)
Re: (Score:1)
Re: (Score:2)
My guess would be Python, because it supposedly has a set of string processing functions like Perl. But python wouldn't be my choice.
Re: (Score:2)
Largely PHP on the Web side since its early syntax resembled Perl.
I long ago switched to Python, but other scripting languages generally end to have similar features (and flaws). Most, however, are more readable than Perl.
Although Gentoo Linux, which is my primary OS, is Python-based, I somehow have over 150 packages that depend on Perl. Some of them include the C and C++ build chain.
This list is seriously flawed. (Score:2)
The dataset for these statistics must be tiny, or maybe their methodology includes the use of a random number generator, good for clickbait.
Re: (Score:2)
TIOBE themselves explained what they do: https://www.tiobe.com/tiobe-in... [tiobe.com]
TL;DR: "They google for +" programming" and extract the "X million results" stat. That's it.
So yeah, I wouldn't trust that this is good for anything. It's vulnerable to all kinds of errors -- whether one refers to "Go" as "Go" or "golang", whether the search engine considers "C++" to be mostly the same thing as "C", whether the particular culture in a given community results in the expression "$LANG programming" to be used more often
Objective-C, anyone? (Score:1)
Tiobe's annual (Score:2)
..."Get Devs Panties In A Bunch" list.
Wage (Score:1)