back to article C++ zooms past Java in programming popularity contest

Java is no longer among the top three most popular programming languages in the TIOBE Index, one of several not particularly definitive yardsticks by which such things are measured. According to Paul Jansen, CEO of Netherlands-based TIOBE Software, the rising popularity of C++ has pushed Java down a notch. The index's rankings …

  1. Doctor Tarr
    FAIL

    Damn Statistics

    "Popularity in this case is measured by queries related to programming languages that have been aggregated from 25 different search engines."

    That seems a very odd an inaccurate way to make an assessment. Those measures may work for 'who's the favourite love islander?' (Or some other media twaddling nonsense) but not for a skill set millions of people earn a living from.

    If I were (am) cynical I'd say the software company just wants some publicity from this.

    ================

    #BBD

    1. AMBxx Silver badge

      Re: Damn Statistics

      Don't you believe that Visual Basic is more popular than both SQL & JavaScript?

      It does look like a load of carp.

    2. EvilGardenGnome

      Re: Damn Statistics

      It screams survivor bias, like armouring the parts of planes that returned home in WW2. They had to armour the parts without the holes.

      Without context, we can't tell if the queries are positive (learning, best use cases), or negative (why doesn't this work?).

    3. bombastic bob Silver badge
      Devil

      Re: Damn Statistics

      well, I've based my own decisions about "learning what lingo" on TIOBE. It seems to be less biased towards ":new, shiny" than would, let's say, a Stack Overflow assessment.

      TIOBE is not perfect but it gives you a ballpark idea which is often good enough.

      And, it has always (more realistically) scored C-pound much lower than MS propaganda would have you believe.

      So yeah if you want a job or starting a new project:

      * C / C++ (I consider them similar enough to combine them in my head)

      * Java

      * Python [though as a scripting lingo is is brilliant, for applications it is cumbersome]

  2. Anonymous Coward
    Anonymous Coward

    I interpret those "numbers of queries" about a language a bit differently.

    I think the number of queries for C++ is because it is so insanely huge and confusing to most programmers compared to anything they've encountered previously. Of course they have a lot of questions!

    1. werdsmith Silver badge

      It would be reasonable to assume that language learners and students have more questions. A language that a lot of people are learning would create more questions.

      1. Blank Reg Silver badge

        That can certainly be a factor. but there are multiple reasons why a language would have a surge in queries.

        As already mentioned c++ 20 adoption would certainly have an impact, and as C++ is so complicated that compounds the problem. we might also be seeing the effects of older programmers retiring leaving others to carry on in an unfamiliar language. Python and Javascriot are poorly designed languages that are also very popular, especially among non-programmers, so it's no surprise seeing them at the top of the list. Java is better designed than those two but is increasing in use so it remains near the top of the list

        1. Dan 55 Silver badge
          Happy

          So it's not that programmers are learning new C++20/Java/python techniques and perhaps refactoring existing code into C++20/new Java/new python, it's because the language is complicated/bad...

          Unlike Big Tech which has infinite resources to throw at redoing everything the new hot language, other more boring places recognise that existing code has value.

          1. This post has been deleted by its author

            1. Dan 55 Silver badge

              I used "bad" as a synonym for "poorly designed" mentioned in the post I was replying to.

              1. This post has been deleted by its author

                1. Dan 55 Silver badge

                  I forgot the sarcasm tag I see.

        2. Someone Else Silver badge
          Happy

          "Javascriot".

          Your Freudian slip is showing.

    2. bombastic bob Silver badge
      Devil

      "the number of queries for C++ is because it is so insanely huge and confusing to most programmers"

      My experience has been that JavaScript and Python are like this, mostly because I do not use them every day.

      JavaScript has the unfortunate legacy of being (at least the way too many people use it) grossly inefficient on top of that, so when fixing someone else's code I spend quite a bit of time researching how it OUGHT to be done by a competent programmer.

  3. fg_swe Bronze badge

    Java RAM Consumption

    2x of the equivalent ARC program in Rust or Sappeur.

    1. chololennon
      Facepalm

      Re: Java RAM Consumption

      "2x of the equivalent ARC program in Rust or Sappeur."

      You again with your compiler/language that nobody uses it. Don't you get tired of always posting the same thing/ad?

  4. Totally not a Cylon Silver badge
    Holmes

    Percentages don't count

    Giving the percentage rise in number of people interested in a language doesn't give any indication of how widespread usage is.

    If I invent a programming language lets call it 'Toaster' and teach 4 other people then the number of people using it is only 5 and yet the increase is huge; there are now 5x the number of people using it. That's 400% increase!

    1. b0llchit Silver badge
      Happy

      Re: Percentages don't count

      Please, can you also tell me about Toaster? I am very interested. I already heard rumours that it increases productivity substantially and is more expressive than regular languages. Al that with a flattened learning curve and a very low barrier to get started.

      Also, you can increase its popularity by another 100% by telling me the ins and outs.

      1. Dan 55 Silver badge

        Re: Percentages don't count

        Ah, so you're a waffle man.

        1. b0llchit Silver badge
          Trollface

          Re: Percentages don't count

          No, I prefer talkie toaster.

          Would you like some toast?

  5. karlkarl Silver badge

    Since fancy languages like Rust can't even flush a toilet without calling into underlying system libraries, C and C++ tend to be the only real solutions to create bindings since many APIs are too complex for SWIG/bindgen). So these guys will never go away until operating systems get rewritten.

    A useful read here for points relating to both C and C++: https://faultlore.com/blah/c-isnt-a-language/

    If we bolted on a small C compiler to Rust, it might have solved some of these issues. Perhaps this is what lead to the approach Carbon and CppFront is now taking.

    1. fg_swe Bronze badge

      FALSE

      Rust has already been used to create the Redox operating system. Surely it will contain some unsafe section, but in general it is a great improvement on the C based kernels.

      Likewise, the Algol Mainframes of ICL, Unisys and Moscow had some Memory Safety features inside the kernel.

      Instead of mysterious behaviour, memory safe languages will provoke a Debuggable Crash.

      1. karlkarl Silver badge

        Re: FALSE

        Redox was one I had in mind but they have possibly not taken the correct stance; they have provided a libc (written in Rust). So most guys will be binding around that like other C operating systems.

        1. fg_swe Bronze badge

          Compatibility ?

          My understanding is that this libc will support the large corpus of existing C programs, until Rust replacements have been developed.

  6. CrackedNoggin

    TIOBE

    The index's rankings are now: Python in first place, C second, C++ third, and Java fourth.

    Slashdata

    That puts Java – growing at twice the rate of the global developer community during the past two years – at third in community size, ahead of C/C++ (12.3 million) but behind Python (16.9 million) and JavaScript (19.6 million)

    According to TIOBE JavaScript is 5th place or less, while Slashdata puts it in 1st place. That must tell us something about the level of bias and/or noise in these rankings. (Bias relative to the biased "truth" of your choosing.)

    1. werdsmith Silver badge

      It’s not bias, it’s just two entirely different methodologies. One is measuring internet chatter, the other surveys developers. Understand the methodologies, interpret the result.

      1. Code For Broke

        I do need to step in here and argue that a "methodology" that solely measures internet chatter is deeply biased towards bullshit. However, I did find the clarity of your axiom refreshing.

      2. Michael Wojcik Silver badge

        In this case, it's more "understand the methodology, ignore the result".

  7. sarusa

    Java can’t go away, sadly

    I don’t know anyone who actually wants to use Java (I’m sure there are a few, I apologize to you). You use Java because that’s what your giant corporate overlords mandate. And they mandate it since it’s the new COBOL: an overly verbose language that makes it harder for legions of low skilled corporate drones to step on each other’s toes. And at this point they’ve invested so much in it that it’s locked in for decades.

    1. This post has been deleted by its author

    2. Binraider Silver badge

      Re: Java can’t go away, sadly

      In our experience most stuff being done in Java sits much better in Python. So the analogy to COBOL is a strong one.

      Whereas the choice to go to C++ means you want access to the most potent library collection and power that comes with them. And the liability of it being damn hard to do it well for anything non-trivial.

      We’ve certainly seen Java being actively avoided in our own little org.

      1. badflorist Silver badge

        Re: Java can’t go away, sadly

        "And the liability of it being damn hard to do it well for anything non-trivial."

        This just isn't more true in C++ than anything else. I understand that the syntax doesn't look great all the time but, upon limited experience you can quickly do whatever. Is creating a net stack going to be fun in C++? No, but in which language is it fun and further, in which language are you not going to use a supplied library?

      2. Smeagolberg

        Re: Java can’t go away, sadly

        "... C++ means you want access to the most potent library collection and power that comes with them".

        Strychnine is also potent and powerful.

    3. Caspian Prince

      Re: Java can’t go away, sadly

      We use Java because it's bloody excellent at doing what we want it to do (making games). Haven't found another language that hits so many sweet spots yet, been looking for over 20 years. No, C# isn't any better.

      1. werdsmith Silver badge

        Re: Java can’t go away, sadly

        We use Java because it's bloody excellent at doing what we want it to do (making games). Haven't found another language that hits so many sweet spots yet, been looking for over 20 years. No, C# isn't any better.

        You mean making games that run in a jvm?

        Awful.

    4. bombastic bob Silver badge
      Devil

      Re: Java can’t go away, sadly

      I mostly use Java for 'droid when I do 'droid.

      The Kotlin learning curve is too steep and a waste of my time.

      I said the same thing about C-pound (among other things) when it first got the "new shiny" promo from Micros~1. I rejected it, just like I have rejected Kotlin.

      Java does the job, does it well, and is familiar.

    5. winrid

      Re: Java can’t go away, sadly

      People use Java because pretty much everything always just works, it's easy to write, and the runtime is fast.

      Verbose is a good thing usually. When you have devs joining a project you don't want lots of hidden control flow (like overridden operators and macros) etc.

  8. Martin M

    "Kotlin code runs on the Java Virtual Machine, so its rise lifts Java too."

    We're talking about programming languages not execution environments, so this is a completely nonsensical statement. It's like saying a falloff in Java usage means a downturn for JavaScript, because they both have the word "Java" in their name.

  9. Lil Endian Silver badge
    FAIL

    TIOBE Index Measures What?

    It's farcical to claim that data from search engine use can represent language popularity in any meaningful way.

    It represents search engine usage. No amount of data cleansing and statistical analysis can objectively produce a meaningful report as declared.

  10. Eclectic Man Silver badge

    Confused

    Surely different languages have overlapping but slightly or quite different purposes? One language (E.g., C) can be very good for something, but not so good for soothing else. I program in C for several reasons, 1 it is really the only programming language I am even vaguely competent in, 2 I program mathematical formulae and processes for Diophantine (integer) arithmetic, which I find I can do in C. Were I programming a graphical user interface maybe a different language would be better and I would try to learn it well enough for my needs.* So a more useful score would be which language is more popular for which requirement.

    *If there is a programming language significantly better than C for programming integer arithmetic operations in arrays of up to 10,000 decimal digits, please let me know.

    1. Lil Endian Silver badge
      Thumb Up

      Re: Confused

      Totally with you on the language selection for application in context of the requirement. The comments on this thread are divided between language selection and the appropriateness of claims of popularity re: the article (through, apparently, bizarre rituals of data collection!).

      As far as alternative languages for you to use, do you need one? If it does the job... I'd like to know more about your requirements. My knowledge of (specifically) number crunching languages is ancient, back to Algol & Fortran. I doubt a suggestion I'd make would be robust enough, so I'd also be interested in hearing the latest and greatest! (I do miss Lisp too though :D)

    2. Someone Else Silver badge

      @Eclectic Man -- Re: Confused

      First off, totally agree for languages fit for purpose. I'd hate to try to write an embedded controller program in COBOL, although I do actually know of an instance where that was done.

      As to your need for integers of 10000 digits, I do believe Python supports effectively unbounded numbers of digits in an int. Don't know if you'd want to multiply two 10000-digit ints, but it's supposed to support that. Might take a while, though....

      1. Michael Wojcik Silver badge

        Re: @Eclectic Man -- Confused

        Python has popular bignum packages (and arbitrary-precision ones for floating-point). I've never used them.

        I played around a bit with Julia some years ago and liked it.

        When anyone asks about doing anything with arrays of numbers, it's always tempting to answer "APL". Or "Fortran".

        But if someone already has a library of well-tested code for doing bignum integer arithmetic in C, why mess with success?

    3. Lil Endian Silver badge

      Re: Confused

      I was going to mention Python, but I wasn't sure of the full picture[1]. There's a Diophantine package for Python. As Michael says, that could be an option. Also he mentions Fortran, which would seem one to peek at.

      @Someone Else: thanks for making the first sentence of my previous post sensible! ("First off, totally agree for languages fit for purpose.") - I think I've been listening to too many politicians!

      [1] For example: what are your current run times in C?

  11. Adam Inistrator
    Thumb Up

    C++

    All the new features of modern C++ introduced over the past 11 years have made it a vastly safer and pleasanter language to use than the old days and the language continues to evolve with multiple implementations in a positive spirit. The increase in c++ web activity doesn't surprise me.

    1. lotus123

      Re: C++

      Yes it is true. The safety of the language augmented with the tools like ASAN has increased to the point that I do not feel that Rust is really needed. And in combination with some nice libs it is very easy to use (you still keep low level power to blow off your foot in case you need it). I currently use it to develop web and other back-ends. The time to complete a project in modern C++ no longer exceeds that of more traditional approach: JS, Python, PHP, Ruby, Java etc. etc. The performance is stellar though and beats the competition hands down.

      1. werdsmith Silver badge

        Re: C++

        Multiple web frameworks exist for Rust too.

  12. Anonymous Coward
    Anonymous Coward

    (I do miss Lisp too though :D)

    Why? It is still available. In my Debian/Devuan installation I can see numerous versions of Lisp available, including elisp, emacs lisp, common lisp (Carnegie Melon, Steel Bank, etc) and several others.

    You can also have SLIME, the Superior Lisp Interaction Mode for Emacs.

    1. Lil Endian Silver badge
      Thumb Up

      Re: (I do miss Lisp too though :D)

      Cheers AC!

      I've used so many languages over the years, I can't count. As Eclectic Man said, it's using the right language for the job. I've just not had the requirement for Lisp, but I wanted to plug it :)

      +1 for Devuan - that's my dev OS (systemd whingey whingey!)

    2. Smeagolberg

      Re: (I do miss Lisp too though :D)

      ... Clojure.

    3. Smeagolberg

      Re: (I do miss Lisp too though :D)

      True, and "widely used" and "popular" are not the same as best.

      Paul Graham's essay about the choice of Lisp by a start-up is interesting reading, particularly that knowing that most of their competitors were using C or C++ increased their confidence in their choice of Lisp.

      http://www.paulgraham.com/avg.html

  13. IGnatius T Foobar !

    "widely used" is not the same as "popular"

    Java is the new COBOL -- the lingua franca of business logic. If that makes it "popular" then I'll take a hard pass. thank you very much.

    C forever!

    1. Lil Endian Silver badge
      Thumb Up

      Re: "widely used" is not the same as "popular"

      Yeright with that!

      I don't even know how to compare COBOL with Java from a programming perspective. They ain't similar for application, but I'm guessing you're meaning "insidious", which I get. COBOL teaches coders how to spell "environment" at least! :DD

      C forever! Man! I love a devotee!

  14. Plest Silver badge
    Pint

    No great surprise, what goes around comes around

    "Stats, damned stats..." you remember the rest.

    Go and Rust have shown that you can stand up relatively small, standalone executables that are lightning fast and work well, Java needs a 500mb runtime bag of tricks to just support it's own standard library. It's no real surprise people might well be looking back to the "orignal golang" that is C++ as a way to reduce footprint and get faster execution across thousands or millions of calls or objects.

    1. bombastic bob Silver badge
      Meh

      Re: No great surprise, what goes around comes around

      You forgot to mention C and C++, which have decades of history and performance tweeks.

    2. winrid

      Re: No great surprise, what goes around comes around

      Java will happily run with a couple megs of heap depending on what you want to do. What requires 500mb in stdlib? I just created a Java service that processes logs via an API at 20k logs a second on my windows dev machine when limited to 200mb RSS.

  15. Tim Almond

    Bad Methodology

    If your methodology ends up with Delphi/Object Pascal as a bigger language than Ruby or Objective-C, it's just rubbish. I think the last time I knew anyone who was using Delphi was last century.

    Measure it by jobs using something like Jobserve and C++ is way below C# or Java.

    If you want to know the future, look at something like Advent of Code. What are people who are young and doing fun stuff using right now. A decade ago, this will be mainstream. And the most used languages are: Python, Rust, Javascript. C#, Java. C++ was in 8th place. If I was advising a kid on what to learn, I'd probably go with the top 3: Python, Rust, Javascript (and Typescript).They'll still be lots of old C# and Java around but the new stuff is going to be more in those languages.

    1. lotus123

      Re: Bad Methodology

      >"And the most used languages are: Python, Rust, Javascript. C#, Java."

      You had me until I saw Rust in your list. There are some specific areas (blockchain for example) where you might find employment that requires Rust but in the rest of the industry Rust's jobs are nowhere on radar. It could go either way in the future. The rest of the languages you've mentioned including C++ will guarantee being employed for a looong time.

    2. Lil Endian Silver badge

      Delphi was last century

      I used to develop in Delphi, and, yes, it was last century!

      That said, I recently started a project using Lazarus and Castle Engine. Cross-platform summer of love!

  16. Smeagolberg

    Search engine queries

    I'd have expected Java to be higher given the people trying to decide which coffee to drink over Christmas.

    1. Lil Endian Silver badge
      Happy

      Re: Search engine queries

      Oh, Smeagolberg! What have you bean on?

  17. Dante Colò

    No surprise, java has its particular advantages but still a crappy, slow , insecure and has similar learning curve as c++ and rust, its usage tends to goes down

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like