Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming Java Python

Could Python Overtake C and Java as the Most Popular Programming Language? (zdnet.com) 170

The TIOBE index of programming language popularity celebrates 20 years of continuous publishing this month. Started as a hobbyist project back in 2001, the site estimates each programming language's popularity by counting search engine results for the phrase <language> programming (indirectly counting each listing for developers, courses, and third-party vendors).

When it was started 20 years ago, the top languages were Java, C, and C++.

20 years later, the top languages are now C, Java, Python, and C++

And "The difference between position 1 and position 3 is only 0.67%." This means that the next few months will be exciting. What language is going to win this battle? Python seems to have the best chances to become number 1, thanks to its market leadership in the booming field of data mining and artificial intelligence.
ZDNet also noted the trends: Searches for C were down 4.83 percentage points compared to last July. Java searches were down 3.93% over the period, while Python gained 1.86%.

The top 10 languages behind C, Java and Python are C++, C#, Visual Basic, Javascript, PHP, Assembly Language, and SQL.

But they also have this to say about TIOBE's calculations: It's a different methodology to developer analyst RedMonk, which looks at language usage on software projects hosted on GitHub and discussions on the developer Q&A site, Stack Overflow.

RedMonk's Q1 2021 rankings place JavaScript in top place, followed by Python and Java.


Other interesting moves this month:
  • C++ gained more than 0.5% getting closer to the top 3
  • Rust rose from #30 to #27
  • Go rose from #20 to #13
  • TypeScript rose from #45 to #37
  • Haskellrose rose from #49 to #39

This discussion has been archived. No new comments can be posted.

Could Python Overtake C and Java as the Most Popular Programming Language?

Comments Filter:
  • by Phatose ( 6398762 ) on Saturday July 10, 2021 @08:36PM (#61570981)
    No
    • Clearly, it is possible that Python could overtake C and Java even if you think it extremely unlikely you cannot rule out the possibility entirely. So really the headline should be "Will Python Overtake C and Java...".

      Clearly we need a corollary that Betteridge does not apply when the headline is written in such a way that the answer really cannot be "no".
    • Comment removed based on user account deletion
  • by niftydude ( 1745144 ) on Saturday July 10, 2021 @08:38PM (#61570987)
    The right tool for the right job.
    • by ShanghaiBill ( 739463 ) on Saturday July 10, 2021 @08:45PM (#61571001)

      The right tool for the right job.

      Indeed. TFA is basically saying that hammers are popular and may replace shovels.

      • Well, nail guns and plows are available to licensed users... those are replacements so we never need things as violent as hammers and shovels..

      • by larryjoe ( 135075 ) on Saturday July 10, 2021 @10:11PM (#61571171)

        The right tool for the right job.

        Indeed. TFA is basically saying that hammers are popular and may replace shovels.

        And it's saying that in a weird way. It's saying that people are asking more questions about hammers than shovels. Maybe hammers are poorly designed and require a lot of questions.

        The TIOBE methodology [tiobe.com] is problematic in multiple ways:

        It is a count of search queries about a language. Certainly, fewer people will query about a language they don't care about. However, among the set of popular languages, there are many factors contributing to more queries, including languages that are complex, have poor documentation, are assigned for school projects, etc. It's not clear how significant the "popularity" factor is relative to other factors.

        The questions have to include +" programming". I don't know about you, but I have never including "programming" ever in any of my programming search queries.

        Many query sites are excluded, notably basically the Chinese ones. So, this methodology excludes a significant portion of global programmers.

        If I'm evil, how easy would it be to rig a bot to spit out queries for my preferred language? If I'm not evil, maybe I'm just a bad programmer who needs to ask 10 questions compared to an experienced programmer who only needs to ask once. My lack of ability makes the language appear to be more popular.

        Why are the 25 search engines weighted the way they are? Does the weighting matter? Some transparency would be help to show that the rankings are not an arbitrary artifact of the mathematics.

        • The questions have to include +" programming". I don't know about you, but I have never including "programming" ever in any of my programming search queries.

          You should, if you google about "go" or "rust", just a hint.

      • by sg_oneill ( 159032 ) on Saturday July 10, 2021 @10:21PM (#61571209)

        Rght. Thats the odd thing about the "python overtake c" thing. They really aren't for the same thing. I mean you *COULD* write your web framework in C and once upon a very very long time ago people would actually do that (I stll remember converting C language CGIs to Perl back in the 90s. Still not convinced the replacement was an improvement lol) and in theory you can write embedded code in python (There are acually products for that). But is it the right tool for the job? Nope.

        My suspicion is if theres a decline in C it wont be from Python, but Rust, or other system programming but safe type languages (Go is imho more likely to be replacing JAVA, its garbage management precludes it as a good choice for systems coding. Swift is a fantastic language, but its impact is mostly limited to apple platforms. As a reference counter rather than garbage collector though its in *theory* capable of doing Rust style low level stuff.)

        Theres also a small pool of lesser known but frankly more interesting languages, namely Crystal and Nim who have yet to make much of an impact. The future is unclear as to whether they'll ever replace much, though I suspect they are best suited for tasks that might otherwise use Python or Ruby (or I guess JS) but could use some C type performance. The long term impact of those languages are unclear particularly up against efforts at squeezing performance out of existing dynamic languages (ie Oracles GRAAL, PyPyl, faster JS runtimes, ec)

        • I recently wrote a web framework in C.

          Your concept of "once upon a very very long time ago" is pretty weak.

          While it would be true to say that the embedded platform we're using can run python, and that "it would probably work" if we had chosen python, it is also true that python doesn't provide a good, concise way to limit memory use. So it would be a "cross your fingers and hope" situation. Whereas, using C it was quick and easy and we know exactly how much memory it uses.

          • Your concept of "once upon a very very long time ago" is pretty weak.
            No it is not. As that is what he did once upon a very very long time ago".
            Learn to comprehend what you read.

            I recently wrote a web framework in C.
            Poor sod. I pity you.

            Whereas, using C it was quick and easy and we know exactly how much memory it uses.
            Because your profiler/debugger shows you. Just the same as with Python. (* facepalm *)

        • you *COULD* write your web framework in C and once upon a very very long time ago people would actually do that

          People still do it today. With a few libraries (like new string libraries and memory allocation libraries) it's a reasonable language.

          Memory allocation isn't really a problem because you can allocate memory in a pool, and then free the entire pool once the request completes. Objects have clear lifecycles based on single requests.

      • The right tool for the right job.

        Indeed. TFA is basically saying that hammers are popular and may replace shovels.

        I did an algorithm optimisation class at Uni. We used C for everything for obvious reasons. This guy asks the teacher if we can hand our assignments written in Python rather than C. The teacher looks at him as if he'd asked if we can use a saw to drive in the nails rather than a hammer, says '...no ..." and resumes his lecture. Guy sits there, still not understanding why.

    • Exactly. I don't have mod points (not sure why they are so few these days), but you're right. This is a silly metric. C and Java comparison makes sense to a certain extend, although you don't get (any?) Java in embedded, but Python is it's own beast.

      • by Z00L00K ( 682162 ) on Saturday July 10, 2021 @09:29PM (#61571099) Homepage Journal

        Java has been in embedded devices too. Once upon a time there were even devices that had the JVM in hardware. Not sure if you can buy them anymore.

        The worst problem for Java is named Oracle.

        The beast of Python is that it's an interpreting language and that there's no built-in checks/compilations of the source code to be able to detect breaking changes of the code. The backward compatibility is also horrible and is at par with the compatibility between various dialects of Basic. For me Python is to programming what Basic was to programming in the 80's - for a major system that shall be maintainable over a long time you'd need to evolve as a programmer to more strict languages.

        The only thing that Python has for it is the indentation constraints, but there were dialects of Basic that also had that. There were even Basic dialects with bytecode similar to what Java has.

        • Comment removed based on user account deletion
        • by larwe ( 858929 )

          Java has been in embedded devices too. Once upon a time there were even devices that had the JVM in hardware. Not sure if you can buy them anymore.

          Java based embedded devices were always tortuous to watch in action, and I don't think that's a "thing" any more. I always had this sneaking suspicion that Sun was paying developers to choose Java. Yet, Jazelle lives on. https://en.wikipedia.org/wiki/Jazelle [wikipedia.org]

        • The backward compatibility is also horrible and is at par with the compatibility between various dialects of Basic.

          Such as? I don't remember any backwards-incompatible changes between minor versions. The only frequently-used change from Python 2 to Python 3 that I remember is needing to put parentheses in print statements, and the automatic conversion tool will fix that for you.

      • There is plenty of embedded donw with Java.
        E.g. Car entertaining/navigation systems.

        Or the backends (not really embedded) for cars fleet management

    • by Kisai ( 213879 ) on Saturday July 10, 2021 @09:17PM (#61571077)

      The right tool is always going to be C. Not C++. C.

      C++ or Rust might have it's uses, but these don't belong in high-performance processes.

      Python, Ruby and Java, do not belong anywhere near performance processes. They are for gluing things together.

      • by Z00L00K ( 682162 )

        How about Fortran?

        There are now Fortran that allows for parallelization. Also consider OpenMP [openmp.org] with Fortran.

        Of course - when you want full control over memory management you'd end up with C or assembly. But when you want it portable then C is the only good hope.

        • But when you want it portable then C is the only good hope.
          If you want it portable you use: (in decreasing order of my favourite and my hate languages)
          Java
          C#
          C++
          Python
          Lisp
          PHP
          Prolog - Haskell - Ocaml

          Hint: C is not on that list, for a reason.

          • by edwdig ( 47888 )

            Much of this depends on what type of software you make. Speaking as a game developer, I'd put C and C++ at the top of the list. They're generally interchangeable in difficulty as you'll use the same compiler for both.

            Java and C# are usually a legal nightmare to use that greatly limits their use.

            The rest of the stuff isn't bad, but far less commonly used.

            I'm sure developers in other niches would give very different rankings as well.

            • by bn-7bc ( 909819 )
              Is c# a legal nightmare, or are the IDE's and game engines with good bindings to c# a legal nightmare? I might be splitting hairs here, but there is a differnece
          • If you want it portable, you use C.

            Java is portable between supported platforms, but it includes tons of ASM for each of those platforms. It is not easily portable to new platforms, and doesn't run at all on smaller platforms. And never will.

            C# hasn't even been tested anywhere, so we know it isn't portable.
            C++? What? That's specious.

            Hint: C is not on that list, for a reason.

            Because it is a list written by a moron.

        • What do you mean "now"?

          Fortran had always supported multithreading and parallelization as much as C. Object files from Fortran and C have been compatible for a long long time. Very common to write intensive parts in fortran and slap a C control flow main program on top.

          • by Z00L00K ( 682162 ) on Saturday July 10, 2021 @10:50PM (#61571277) Homepage Journal

            Native parallel functionality is a pretty recent feature of Fortran (for that language), and it's based on Fortran 90. With "now" I mean the 21st century with general availability.

            There were of course multi-CPU machines before that and special variants of the language in high performance computing environments, but not for general use.

            And I don't disagree that the object files for C and Fortran are compatible. But the runtime libraries of Fortran can contain implementation specific memory management (when and how memory is allocated) so that it behaves differently depending on compiler/runtime. Something that matters for operating system kernel behavior, but not really much for the behavior of runtime Fortran programs. The devil is often in the details.

            • There were of course multi-CPU machines before that and special variants of the language in high performance computing environments, but not for general use.
              Classically, multi processor was not an issue.
              Fortran - like any other language, if it was supported - compiled to so called SIMD or vector instructions.

              So: (in C speak)

              int manyInts[]; // leaving out initialization etc.
              int manyMoreInts[];

              int result[] = manyInts + manyMoreInts;

              Would result into a single vector instruction.

              Obviously you would write the ab

            • But the runtime libraries of Fortran can contain implementation specific memory management (when and how memory is allocated) so that it behaves differently depending on compiler/runtime. Something that matters for operating system kernel behavior, but not really much for the behavior of runtime Fortran programs. The devil is often in the details.

              I'm totally ignorant about Fortran, and willing to learn, but is that much different from how malloc is implemented differently in every C runtime?

              For example, in a glibc update a while back it started creating a bunch of per-thread pools to minimize syscalls, improving performance and wasting tons of memory.

              That drastically changed how a process interacted with the kernel between versions of one C runtime, and I'm sure it's again very different between other C runtimes.

      • I guess people who actually have a degree in CS: disagree.

        C++ is compiled to faster code than C since > 20 years.

        Probably longer than you do your mediocre C programming ...

        • by 140Mandak262Jamuna ( 970587 ) on Saturday July 10, 2021 @10:35PM (#61571243) Journal
          Well written C++ with const correctness and tight loops and careful scoping of variables would lead to much better optimization than a carelessly written C code. Carelessly written C++ could be worse than C, especially if type safe casting and too many layers of indirection were involved

          Compilation and linking might be much slower than C, but at run time, a dynamically bound function is just one lookup on the vtable, no matter how horrendous the class hierarchy is.

        • I guess people who actually have a degree in CS: disagree.

          C++ is compiled to faster code than C since > 20 years.

          Probably longer than you do your mediocre C programming ...

          How would you know, did you ask somebody?

          You're being a moron, while trying to wave credentials in the air. Give me a fucking break. C++ may be great, you clearly like it, but it _can't_ be faster than C. That you believe it somehow magically is shows that you're an idiot. That you blather about "degrees in CS" at the same time suggests you don't have one.

          • C++ may be great, you clearly like it, but it _can't_ be faster than C.
            But it is.

            Just read a bit about it.

            Hint: const correctness - for starters. Plenty of more examples.

            That you blather about "degrees in CS" at the same time suggests you don't have one. depends how you define it :P but in German legal system: you are correct :P

      • by edwdig ( 47888 )

        C++ is generally going to be faster than C because C++ compilers are way better at inlining code. Especially stuff that heavily uses STL or templates. Templates and classes tend to make it much easier to inline the simple functions, as they're present in the .h files, which leads to big performance wins.

        • To keep this from sounding as moronic as it sounds, you should name the compilers that you think this is true for.

          I suspect they won't be a combination that most developers on slashdot are using.

          As a general statement, though, it is just stupid-sauce.

          • To keep this from sounding as moronic as it sounds, you should name the compilers that you think this is true for.
            Basically every compiler based on CLang. And most commercial compilers of "insert known CPU vendor" or "known OS vendor".

        • by Jeremi ( 14640 )

          C++ is generally going to be faster than C because C++ compilers are way better at inlining code.

          I come to the same conclusion, but by a different line of reasoning: C++ is generally going to be faster than C because C++ allows the programmer to hand off a lot of tedious-yet-critical coding details (such as resource managment via RAII, or templated containers) to the compiler instead of having to hand-code it all. Because of that, the programmer can spend less time debugging and more time optimizing, and thereby end up with faster code for any given development schedule.

      • ... Rust might have it's uses, but these don't belong in high-performance processes.

        That would seem to be a hard statement to justify. Rust performance is right on par with C and it actually allows a compiler to make some major optimizations that C doesn't allow, due to no-aliasing guarantees. Apparently, these optimizations are currently disabled (when compiling Rust with LLVM), because bugs have been found that have existed for years, but were never exercised when compiling C or C++.

    • by 1s44c ( 552956 )

      The right tool for the right job.

      There are many cases where any modern programming language would be a perfectly reasonable choice.

      • I'd argue that, in most cases, languages have strengths and weaknesses which recommend them for specific types of applications. For example, it would be sort of stupid to use C++, with all its sharp edges, in a situation where performance is not a primary concern. If you want to do scientific work, choosing Java instead of Python would be a sub-optimal choice. If you want performance and memory safety, Rust would be the choice instead of C++. But if you need to integrate into an existing ecosystem of C/

    • Indeed. We should ignore it completely. Nothing has ever gone wrong with picking some esoteric programing language no one has ever heard of and you can't find any qualified staff for, and no trends exist for how much longer it will still be around.

      After all we *love* paying a premium for experts and *love* even more ground up re-writing software in todays newest announced programing language.

      Sarcasm aside, if you're not considering the popularity and trend of your programming languages as part of whether it

    • If you use modules written by others in C, FORTRAN, etc. but wrap them in Python scripts, you are programming in Python. Yet most of the what is executed is *not* Python. Trying to say that Python is "overtaking" another language is silly.

    • Will screwdrivers overtake hammers as the most popular tool of all time? Login now to find out so that we can track you with cookies!

    • by jythie ( 914043 )
      Which would probably make for a more interesting piece. The rise of Python has less to do with replacing C/C++, and more to do with consolidating a bunch of niche languages that were filling domains that C/C++ was a poor match for. It is a classic example of brands competing with and replacing brands vs expanding the market. So the change is all about 'how are people using programming languages today?' and 'what groups who were not using such tools 10-20-30 years ago are making use of them now?'
  • by mykepredko ( 40154 ) on Saturday July 10, 2021 @08:41PM (#61570991) Homepage

    The people at TIOBE need to get out more unless they have money riding on what's the most popular programming language.

    And, if they have money riding on what's the most popular programming language, then they need to get out more.

  • Python's PEG parser [python.org] seems to be opening the door to fresh stylings, like the pending match statement [python.org].

    But wait. . .

    PEP 638 -- Syntactic Macros [python.org]
    Author: Mark Shannon
    Status: Draft
    Type: Standards Track
    Created: 24-Sep-2020

    At this rate, by version 3.14 or so, relaxing the whole GIL thing should be easy as pi.

  • by fahrbot-bot ( 874524 ) on Saturday July 10, 2021 @09:01PM (#61571033)

    Maybe when Python is more popular than C, the interpreter can be written in Python instead of C -- oh wait ...

    [The right tool for the job is more important than popularity.]

  • There's several shops that use "VB7" proprietary tools built after a release of the VB6 source code to these chosen friends of Microsoft. VB6 is falling in numbers, but there's nobody counting that's where VB went.

  • by Skapare ( 16644 ) on Saturday July 10, 2021 @10:43PM (#61571267) Homepage

    stackoverflow stats tell me which language people are having the most trouble with.

    • Maybe, maybe not. It could be telling you which language is being abandoned because it's too much of a pain to work with. Look at C# for example. Which of the following fits its downward trend:
      o People figured out how it works and are getting more and more competent and thus asking fewer questions.
      o People figured out the language is too complicated and stopped getting help in favour of shitty self designed workarounds.
      o The language is getting less popular.

  • by rnturn ( 11092 ) on Saturday July 10, 2021 @11:48PM (#61571349)

    Who the hell cares what TIOBE's predictions are? Do a little research and pick the programming languages that fits your needs and just use it. Do people actually worry about crap like which programming language is more "popular" than another?

    "OK, team... Quick announcement. We'll be switching all our development from ABC to XYZ because TIOBE says ABC is so last month. XYZ is more popular and we don't want to be seen as dinosaurs in the industry. As a result, we'll be letting a lot of you ABC SMEs go and staffing up with new XYZ hotshots."

    • Do people actually worry about crap like which programming language is more "popular" than another?

      Yes. Brainfuck may be the most suitable language for a specific task you have, but that doesn't mean it's a good idea to pick it. Based on TIOBE's predictions finding someone who can program it may be difficult.

      Industry trends like this relate to both cost and support, it's worth paying attention.

  • Rust rose from #30 to #27 Go rose from #20 to #13 TypeScript rose from #45 to #37 Haskellrose rose from #49 to #39

    Yeah, but Visual Basic is #11 and Fortran is number #14. So, if you're not in the top 10, Visual Basic is still more popular than you are, and if you're not in the top 15, you got beat by Fortran!

    Typescript and Haskellrose? Yeah, COBOL has both of you beat by a mile.

    More seriously, if Fortran can jump from #50 to #14 in a single year, you really have to question the value of any language tha

  • You can't code an entire bootable operating system in Python, so how can 'popular' mean anything?
    • You can.
      You can code anything in any language. (That is basically the "Turing complete" meme)

      Hint: learn something about programming.

  • Yes. Obviously. (Score:5, Interesting)

    by Qbertino ( 265505 ) <moiraNO@SPAMmodparlor.com> on Sunday July 11, 2021 @04:45AM (#61571699)

    System languages are for systems. Python is for regular people. There are way more regular people than system experts. And since C will sometime in the future most likely be replaced by Rust and Java either by Kotlin or perhaps the Jamstack is really likely that their use will decline and thus python will see more usage, relatively speaking.

    AFAICT Python is a good example for a language that has long-life potential since it's so easy to pick up and isn't domain-specific like other easy platforms. Python is the only programming language that is used professionally in every industry in existence, from bioengineering over e-commerce to game development, media production and embedded stuff.

    There is no other PL that even comes close to that true diversity, so that Python might lead the pack in the future in terms of usage ist quite likely.

  • Maybe you should read your Story posted immediately after this one which answer the question as "no" right in TFS.

  • by quonset ( 4839537 ) on Sunday July 11, 2021 @05:23AM (#61571733)

    Python is so ubiquitous, it's even taking over the Florida Everglades [cnn.com]. There are bounties for python [miamiherald.com] it's so invasive. One thing is for sure, training is mandatory [youtube.com] if one is master the art of killing python.

  • A simpler language being more popular than a more complex one is not somehow impressive. It's more like a predictable outcome. The days of programming language and loyalty is long gone. The difference in programming languages matters less and less and that trend will continue so these types of conversations are pretty pointless. You pick the language that's reasonably easy to accomplish your goal with and that's about all that matters. Long-term support and all that's all BS because a decade later or som
    • First of all, HTLM isn't on the list because it's neither a programming language nor turing complete. But that aside...

      There has never been anything like "loyalty" to a programming language. At least with people who understand what programming is. There are essentially two different kinds of languages: Imperative languages and declarative languages. That's it.

      And then there's abominations like Javascript. But I'm not talking about toys today.

      The point is that for someone who understands programming, the dif

  • Your success depending on how much the teacher likes you rather than what you can accomplish?

    Popularity isn't really a useful metric to determine what can, should or even must be used for a job. The most popular language will of course be the one that gets you some results the quickest. Python surely fits that bill perfectly. No need to learn anything past the most basic ideas of programming, there's a library for any fart you may want to pass and it will "just work" without the hassle of compiling, hell, y

    • No need to learn anything past the most basic ideas of programming, there's a library for any fart you may want to pass
      That is basically true for every language in our days, except for C/C++

      And that is why not many people are using them anymore. Hu? Can not write a UI with the standard library, but need an OS specific one or Qt? Can not access files in a platform independent way? ( / versus \ )The only improvement seems to be: now we can handle multi threading concurrent programming with the STL.

      Sorry, I li

  • ML researchers chose Python because they are not programmers and Python is easy. That does not translate to Python being the best choice for building enterprise systems. Further, high performance ML models do not run in Python - they run in GPUs: Python is only the API for getting the model into the ML system - it is merely a convenient gateway language.
  • by PPH ( 736903 )

    I find Python to be too constricting.

  • I'm fed up with saying it, but popularity, search result or questions on stackoverflow are a poor proxy for making decision on the most appropriate language to learn or use for your projects.

    Well establish languages, used by professional programmers will not show up as much because they are used by experienced developer that already know them. We don't need to constantly search for answers or ask questions.

    These results are in essence a measure of fanboyism and nothing more.

  • by clambake ( 37702 ) on Sunday July 11, 2021 @01:13PM (#61572693) Homepage

    Nobody is writing in C because they love the syntax. They're writing in C because they want to be nearer to the hardware without having to jump through hoops.

  • You don't write web apps in C unless you're a masochist. Most of the "batteries included" in Python is written in lower level languages like C or C++.

    The fact of the matter is, we NEED C/C++/Rust programmers in order to have the 'nice' languages like Python, Javascript, etc.

  • This X will replace Y as Z is getting quite old. I wonder if people are placing wagers on all this? :/

"The vast majority of successful major crimes against property are perpetrated by individuals abusing positions of trust." -- Lawrence Dalzell

Working...