Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Python Java Programming

Is Python Becoming More Popular Than Java? (techradar.com) 107

Python has reached "a new all-time high" on TIOBE's index of programming language popularity. TechRadar reports: Java's days as the world's second most popular programming language could be numbered according to Tiobe's latest programming language rankings which show Python is becoming increasingly popular among developers. The firm's Index for October 2020 shows that Java has been overtaken by C as the world's most popular programming language when compared to the same period last year. Python remains in third place but it's quickly closing the gap between it and Java. According to Tiobe CEO Paul Jensen, C and Java have held the top two spots consistently for the past two decades. However, the 25-year-old programming language Java is approaching its "all time low" in popularity as it has fallen by 4.32 percentage points when compared to where it stood in October of last year. Tiobe ranks programming languages in its popularity index based on the number of hits each language gets across 25 search engines.
RedMonk's rankings already show Python as more popular than Java — the first time since 2012 that Java isn't one of their top two most popular languages. And TIOBE's CEO says "Let's see what will happen the next few months."

Here's their October rankings for the top 10 most popular programming languages.
  • C
  • Java
  • Python
  • C++
  • C#
  • Visual Basic
  • JavaScript
  • PHP
  • R
  • SQL

And coming in at #11 is Perl.


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

Is Python Becoming More Popular Than Java?

Comments Filter:
  • by aglider ( 2435074 ) on Sunday October 11, 2020 @12:56PM (#60595156) Homepage

    The number of programmers.
    The number of open source projects.
    The number of lines of code.
    The economic value per line of code.
    The number of university classes talking about that. ...
    Please define.

    • ... and if not everyone agrees, please retract.

    • Don't you know?
      Words are always defined as what fits our wishes, agenda and mindset best. And every other definition is "not the generally accepted one" and "biased" and ours totally is "neutral" because brains are totally fucking able to do that! :)

      • by majorme ( 515104 )
        No mod points so I'll have to agree with you in writing. A lot of people (see, I can do it too haha) really live by your words without admitting that we're fairly primitive, really. Driven by the simplest things
    • Like most things in life, popularity is one of zeal and enthusiasm.

      Attachment to those more regular metrics is how other social popularity contests may have slipped past your attention.

    • by hjf ( 703092 )

      I think it's measured by "Number of open source projects".

      I'm willing to bet MOST of us programmers are hired for companies, and work for internal projects. C is always at the top of these lists, and yet, business software, AFAIK, is very rarely written in C (plain C, C++, whatever). Java is the leader, with .NET a close second. Python has its place too.

      Startups usually go for appity app apps, written in Java or JS (React Native). Or, whatever varian of C that Apple uses for iPhones.

      I mean really, just look

    • Judging by the raw statistics, yes. But I don't think it says what people prefer. It's just that some people have the skill needed to perform at a higher level (java I mean) and some make do with what they can do (Python).

      It takes a lot of practice to reach a level where Java is actually comfortable and accessible while python is easier for a quick and dirty one-off job without the stress of achieving Java fluency

    • > The number of lines of code.

      It can't be lines of code, because 100 lines of Python is the equivalent of 1000 lines of Java.

    • Well scheme is popular in universities and has never been popular so it's not that. Lines of code has always been a terrible metric so it's not that. Programmers should be able to program in multiple languages anyway so it's not just that.

      Ultimately I would say it's defined by a combination of supply (programmers who know the language very well) and demand (companies/organizations/open source projects that are looking for programmers who know that language). Lisp is actually pretty popular among geeky p
  • is that people move away from java because of its licensing issues. Google moved away (kotlin) Microsoft moved away (c#) apple avoided it (obj-c then swift)
    • by ceoyoyo ( 59147 )

      The writing was on the wall when Oracle bought Sun. It's just taking longer than expected.

      The web going with JavaScript instead of Java was also a serious blow. I'm actually surprised JS isn't higher in the ranking. Business loves them some web apps.

    • Moving to Kotlin has nothing to do with Licensing problems with Oracle. For starters the issue of API copyright still remains, a Kotlin program is still calling the same Java APIs. Android hasnt been rewritten, the java code libraries are there underneath everything and Oracle is still fighting about this. Im not supporting Oracle im just telling it like it is. Personally given the importance of java to Android, G should have just bought Java and avoided this mess.
    • is that people move away from java because of its licensing issues.

      The only reason people use Java these days is because of Android and/or entrenched business apps.

      Everybody else realized it was crap 15 years ago.

    • Oracle has indeed been lawsuit-happy. Why would anyone trust them with Java? They made Microsoft look good in comparison, which is quite a feat.

  • by SuperKendall ( 25149 ) on Sunday October 11, 2020 @01:02PM (#60595192)

    I can believe Python is becoming more popular than Java, as for quite a few years now Python has been the favorite of people just getting into programming. That is finally having a follow-on effect where it will surpass other languages.

    However I don't see how Python becoming more popular than Java really means Java is going away. To me the uses for each seem pretty different (like all kinds of enterprise uses that Python is not great at replacing) with not a lot of overlap, so I cannot see how that ever happens.

    I think the rise of popularly is because Python has crushed it in terms of experimental and research programming, especially with the rise of advanced neural network use... Python is just simply king there, and that field is rapid expanding. So Java wouldn't even have to lose many steady users for Python to surpass it in use.

    • by Wookie Monster ( 605020 ) on Sunday October 11, 2020 @01:17PM (#60595274)
      In the 1980s the most popular programming language was Basic. This was because it was built into the 8-bit computer you got mainly for games, and it was easy to experiment with. Python is a much more approachable language than C or Java, but it has many of the same qualities as Basic. Lack of immediate error checking, version compatibility issues, and interpreter performance.
      • Python is a much more approachable language than C or Java, but it has many of the same qualities as Basic

        I honestly don't see it. I think python is actually kind of harder to learn than some other popular mainstream languages (though not harder than C). Think of the whitespace block rules alone, doesn't seem at all friendly to someone just learning programming.

        Furthermore, while you could do some mildly fun things in Basic it really wasn't good at anything beyond the most simple stuff. Python is actual

        • That last part, I meant to say something more like "may not be other language suited as well as Python to doing matrix manipulations" - obviously lots of other languages do a pretty good job, I think jusy think Python with Numpy makes things nicer toward with than other languages I've used.

          Never used R at all though, maybe it's even better, seems like it would ale be well suited.

          • How about MATLAB, Fortran, and Julia for matrices?

            Personally, I usually use C++ with Eigen for numerical linear algebra. Have rank-revealing QR decomposition, will travel...

            • How about MATLAB, Fortran, and Julia for matrices?

              I've used both Matlab and Fortran, Python is easier to use for working with matrices (I think anyway).

              Can't speak to Julia...

              Note that I'm not talking about performance, that's totally different - just talking about ease of writing code that works with matrices.

              Python edges it out over Matlab for me (which is obviously very food) because of all of the other things you can do in Python, and stuff like Jupyter Notebooks are more flexible and nicer to use than

              • First language I learnt, at school in late 1970s.

                Then went to uni and had to write Pascal. Never understood why any program should need more than one line of code.

                Java 11 finally allows java source files to be executed directly. So no need for javac, ant etc. Makes it feel like an interpreted language.

                User defined operators, not just limited to the C++ ones, would be a good addition.

              • Ah, now I get what you were saying originally. That makes sense.

                I've really only used python for doing symbolic algebra / calculus with sympy (calculating partial derivatives for Jacobian matrices, of all things), and for making beautiful graphs with matplotlib. I only know barely enough of the language to get by with those two things, but they're both great.

                I don't use python for much else because it's slow, and I'm a lot more familiar with C++.

                • I don't use python for much else because it's slow

                  Even there though Python has done a really good job hooking into GPU acceleration (still probably slower than C++ but way faster than you'd expect from python).

                  I'm not really a big fan of python myself so like you I was just able to get by with what I was working on, but I could for sure see the appeal compared to matrix manipulation in other languages.

                  A shame really as I like so many other languages but python was just never one I could get to where I like

              • >Python edges it out over Matlab for me

                For me, matlab lost the plot when I found I could not make matrices out of Galois field elements and do Galois field arithmetic on them.
                In python the matrix library I had didn't do that, but adding it was trivial. Just feed it elements from my Galois library and the duck typing dealt with the rest. I discussed my pains with the matlab BCH library in an earlier post.

                • by pjt33 ( 739471 )

                  Yes, duck typing is very useful for mathematical code. That said, if you're doing maths in Python it's worth looking into Sage. (I address that remark as much as myself as at you, so I can't be very specific, but AIUI it uses Python as glue between some fairly powerful symbolic algebra packages. I've dabbled a bit, but to really make progress will probably have to wait until my next break in employment).

                  • Sage isn't so useful for me as far as I can tell. I'm not really trying to do mathematics. I'm trying to take mathematics from papers and turn it into algorithms in hardware to put on chips. That's why GF arithmetic (of the sort that maps nicely to bits) and matrix operations are relevant to what I do. My homebrew matrix library will output the resulting individual operations in HDL format. So I can make it work in python first, then output the logic operations in a form that can be plonked on silicon. I'm

          • >Never used R at all though, maybe it's even better, seems like it would ale be well suited.

            Good choice. Never use R. It's convoluted, poorly documented and getting data in and out is a nightmare.

        • Think of the whitespace block rules alone, doesn't seem at all friendly to someone just learning programming.

          If whitespace is so bad for expressing groups of ideas. why did you use it in your very comment? { does this make it easier to understand what I'm saying (if I surround it in various brackets but not whitespace); also can we agree that whitespace is understood and useful? }

          • Nobody complains about the offside rule in Haskell, now that the "if-then-else in do" issue has been fixed. A lot of people complain about the lexical syntax of Python.

            Despite what a lot of people claim, I find it very hard to believe that "whitespace as syntax" is the real problem. I think it's the specific way that Python does it and the way it interacts with the rest of the language.

            For example:

            - Python's syntax makes it look like a block-structured language, but it doesn't have block-scoped variables, w

      • Yeh basic may have been more popular than other langs, but nobody used Basic to write real systems/programs.
    • by sjames ( 1099 )

      Java is the new COBOL.

    • Indeed. This ranking is silly. It's like saying Philips head screwdrivers are more popular than flat head screwdrivers. They are for different purposes.

    • I see people around me switching to python, from PERL, matlab, R and others. It's seems to reflect well on a language when it can pull in users from those other more domain specific languages. I stopped using R and do what I did in R in Python now, because its library support for statistics is good, I've been able to add the more esoteric bits with ease and the graph plotting support is better.

      I've been using Python for a long time (pretty much from when it first came out - and I quickly made a decision to

    • I can believe Python is becoming more popular than Java, as for quite a few years now Python has been the favorite of people just getting into programming. That is finally having a follow-on effect where it will surpass other languages.

      In terms of number of users, maybe.

      Not because it's "best".

    • If there are programming language wars, Python is just winning them. I remember how Python supplanted Perl as the go to scripting language. Then Ruby came along and seemed like the next natural evolution... until it didn't. Python has survived and thrived for decades and even in its old age is increasingly becoming the language of choice for many programmers.

      Many programming languages are popular simply because they are the language you need to use to hack something. C is necessary for almost all systems pr

      • But Python has thrived without a system specifically designed or it. People just prefer it.

        Maybe it's a wrong impression I had, but I thought for quite a while early on that python was used pretty much just for systems programming scripting tasks, so it had that specific role... and then it was a few years (maybe 5/6) ago that suddenly it seemed to break out into much wider general programming use, which I have to assume is related to one or more of the advanced libraries like numpy. Like you say though, p

  • Excellent (Score:2, Insightful)

    by gweihir ( 88907 )

    Python is a far more modern language design that Java, and its tool-chain is far lighter than the mess that Java is. At the same time, it offers both advanced constructs and it is pretty nice as glue-code for C modules. Writing C modules is also pretty easy, provided that you are a good C coder.

    And, most importantly, no Oracle! Of course, there is some SJW infestation in Python and that is worrisome. But it will take quite a while until these morons have ruined the language and they may not be able to do so

    • Re:Excellent (Score:4, Informative)

      by swilver ( 617741 ) on Sunday October 11, 2020 @01:14PM (#60595256)
      Java glues pretty easily to C as well.

        public long getWindowId() {
          if(Platform.isWindows()) {
            WinDef.HWND hwnd = User32.INSTANCE.FindWindow(null, SEARCH_TITLE);

            return Pointer.nativeValue(hwnd.getPointer());
          }

          if(Platform.isLinux()) {
            Display display = X11.INSTANCE.XOpenDisplay(null);
            Window root = X11.INSTANCE.XDefaultRootWindow(display);

            return getWindowId(display, root);
          }

          throw new IllegalStateException("Unsupported platform: " + Platform.getOSType());
        }
    • hahaha, you're confused. This was a "popularity" poll, meaning it gives younger developers and wannabe's a hard on. This is not the poll of what is used, nor what will get you a job.

    • "Python is a far more modern language design that Java"

      +1 Funny

      "Of course, there is some SJW infestation in Python"

      -5 Attacked the SJW straw man

    • Java's tool chain is pretty simple: javac.
      Actually much more simole than the C tool chain: cc.

      As javac easily compiles a directory tree - and cc not so much.

      Seriously, while setting up a complex project is not easy, it is 100 times more easy in Java today, than it was 30 years ago with C, cc and make. AND: projects got 1000 times more complex durin that time.

      • by gweihir ( 88907 )

        Seriously, you have no clue what you are talking about.
        Ever tried to review java code without the editor it was written with?

        • Yes, as more or less everyone uses a different IDE, and it looks the same - more or less - in every IDE, no idea what point you want to make.

    • by jeremyp ( 130771 )

      What does "more modern" mean? And why does that make it better?

    • Python is a far more modern language design that Java,

      Oooh, now there's an interesting definitional question. Python's syntax is certainly more recent (it's 1980s Occam compared to Java's 1970s C), but Python's type system is much less modern (1960s pre-Scheme LISP, as opposed to Java's 1980s Modula-3).

  • The JVM continues to be a resources hog, but remains very popular with other languages (Scala, Clojure. Groovy, Kotlin) compiling to bytecode in for the JVM. Java in particular provides enough safeguards that many people who should not be programmers are able to write code that does not crash. In particular it has allowed many a pointy-hair-boss to try his hand at programming and conclude that it is easy, simply because the resulting code does not crash. It does not generate the correct results either, but

    • Well, either you can provide safeguards, OR yo can be lean.

      C++ tries to have both, and falls flat on its face every time for how many decades now?

      The only way past that that I saw, is have it have all guarantees at compile time. But then you get a GHC situation, where you a drowned in incomprehensible type errors and all the slowness being condensed into the compile process. ;)

      • C++ tries to have both, and falls flat on its face every time for how many decades now?

        Maybe you're thinking of another language. This throws an "out of range" exception on my version of C++:

        vector<int> a(10);
        a[11] = 666;

        I can turn the checking off with a compiler switch but it's been on by default for a decade.

        Also notice I didn't use malloc or free or any memory management functions. The compiler takes care of that.

    • > in particular provides enough safeguards
      > that many people who should not be programmers
      > are able to write code that does not crash

      Precisely. Think of how bad the average programmer is and then realize that half the programers are worse than that.

      Java lets the corporate world have quite a bit of almost-working software. It's not going anywhere.

      They're all still going to "catch Exception e" in production, of course.

    • These days, production systems run Python in a container because getting the right version and dependencies set up on an arbitrary distro is a pain. The JVM is less of a hog than a container in terms of disk and about about equivalent for RAM. Performance between a container and a JVM is theoretically in favor of containers, but in practice it's a wash.

      • by ceoyoyo ( 59147 )

        Sysadmins like to stick everything in a container. There are no reasons you have to containerize Python. It's got a very good, light-weight virtual environment built in.

        • by stwrtpj ( 518864 )

          Sysadmins like to stick everything in a container. There are no reasons you have to containerize Python. It's got a very good, light-weight virtual environment built in.

          It depends on the situation. I may want to run an application on a version of python newer than what's on the machine presently. I don't want to upgrade it as there might be other dependent apps that could break. So I could either install a whole new version of python separately on that machine or whip up a simple dockerfile to pull down the exact version I want.

          Containerization is like anything else: it's a tool. Sometimes the tool is appropriate and sometimes not.

          • by ceoyoyo ( 59147 )

            You can do that no problem. I *always* recommend people install their own Python so they don't mess with the system one. Venv handles different versions of the interpreter no problem.

            Sure, you can use a container if you like it better. OP implied different versions of Python were difficult to use without a container, and complained about containers.

      • The performance myth of the JVM again.
        Lol, it is 2010 and not 1997.

  • by BAReFO0t ( 6240524 ) on Sunday October 11, 2020 @01:05PM (#60595208)

    Python is a scripting language. Those are for quickly cobbling things together.
    Python is nice at that.
    But if you are trying to use it as a full programming language, for anything important, big and long-term, You're Gonna Have A Bad Time(TM).

    And Java is already a bit of that, to be honest. It might be all enterprisey nowadays, but it started out as a simple interpreted language for home appliance automation by the user.
    Back then, it was implied that the average person passed middle school though and didn't pride himself on being too retarded to know what a function is. So Java was considered almost too simple and limiting for the average user.

    • But if you are trying to use it as a full programming language, for anything important, big and long-term, You're Gonna Have A Bad Time(TM).

      Does Python have [competitive] GUI and business logic programing capabilities?

      Something comparable to Microsoft's Visual Basic that can be employed to interface GUIs to database server backends? If so, examples please.

      • Are there languages that do mot have "business logic" programing capabilities? Or GUI?nPlease update me, for a moment you scared me!!

      • by ceoyoyo ( 59147 )

        WTF is "business logic programming capabilities"? Python has a pretty capable random number generator, yes.

        It's also got a good backend-agnostic database interface built in, and lots of other ones available. There's support for a bunch of older GUI systems like Tk and Wx, and more current ones like Qt. I think most people likely just use some form of HTML renderer though; you can go the micro framework route (there are a bunch), or something self contained like Electron.

    • Java has had JIT compilation almost its entire history as a publicly-usable product.

    • Python indentation scheme is laughable
    • And nevertheless the biggest MMO - Eve Online - is both server side and client side mostly written in Python.

    • Python is a scripting language. Those are for quickly cobbling things together.
      Python is nice at that.
      But if you are trying to use it as a full programming language, for anything important, big and long-term, You're Gonna Have A Bad Time(TM).

      This.

      eg. Try running some python code that was written 10 years ago and see what happens.

      • by Arkham ( 10779 )

        I can run python code that I wrote 22 years ago, unmodified. I know, because I did it the other day.

        I wrote a commercial backend in Python in 2001 based on Zope (most of you have no idea what that even is but it was a CMS written in Python by a company called Digital Creations, and open sourced before open sourcing was popular). It served our needs well.

        At my job today we use java almost exclusively for server side work, almost always using Spring/Spring Boot/RxJava. It is efficient, fast, and effective,

        • I can run python code that I wrote 22 years ago, unmodified. I know, because I did it the other day.

          I should have qualified that for the pedants:

          Try running that code on the latest version of Python, or on a randomly chosen internet user's machine.

  • Comment removed based on user account deletion
    • Comment removed based on user account deletion
    • Lol. My basic qualification screening rule is a functional language, C, user-mode debugging, and assembly language, or next candidate. If they can operate on those levels of the stack, they understand what's possible, and can operate anywhere.
      • If I haven't made it clear, I only work with actual hot shit that doesn't have a Valley ego that needs 4 reserved parking spaces just to walk through the front door. That is a problem on the other end of the scale: devs who make $500k who want to bring their pet lions and chained subs in gimp suits to the office, and they want 5% equity with no vesting. Oh, and legit bronies in an Eddie Izzard meets a 13-year-old girl style of crossdressing that makes it difficult to have clients and investors not think the
  • Any measure of popularity is by definition subjective. And, like all subjective measures, it requires context to determine relevance. Python is certainly more popular among users who write programs of 100-200 lines, or less. More popular among users who are attempting to automate a repetitive task on their own workstation or home computer. But would it even be in the running as a choice for performance critical software embedded in a mission essential system? Would it be the language of choice or suita
  • Hopefully (Score:3, Interesting)

    by slashmydots ( 2189826 ) on Sunday October 11, 2020 @01:59PM (#60595506)
    First of all, C# is all around better. Secondly, Java is resource inefficient garbage that even Oracle is trying to make extinct (at least on the web) because it never lived up to its ridiculous promise of cross-platform code. It NEVER just runs the same on Mac OS as Windows for example. You ALWAYS have to fragment the code. So all that bulky framework waste of memory garbage didn't do anything but make people buy more RAM.
    • Performance is not "Java problem", but VM problem: just use the right VM
    • Java just doesn't belong on the desktop period. Every java desktop application I've ever come across is just a bloated, slow, quirky mess compared to an application written in something more native. Leave it on the server. But these days there's really no need for it on the server either. Most enterprises probably have no need for code that can run on multiple architectures. Vast majority these days are probably running most of their shit on x86 VMs in the cloud, same thing as the laptop/desktop that they
    • by jeremyp ( 130771 )

      Actually, pretty much the only cross platform issue I've seen with Java applications is making assumptions about which way the file separator "/" or "\" slopes.

    • by Tablizer ( 95088 )

      never lived up to its ridiculous promise of cross-platform code. It NEVER just runs the same on Mac OS as Windows for example.

      What has? Maybe perfect cross-platform running is an impossible dream. In that case, then almost cross-platform becomes the next best alternative.

    • Yes it does run on Mac OS as on Windows, for example.
      Idiot.

  • by plopez ( 54068 ) on Sunday October 11, 2020 @02:29PM (#60595640) Journal

    Most used probably because managers are insisting that a round peg be shoved into a starfish shaped hole. Python, everyone uses Python so we must also use it. Python programmers are cheap. So what do people do? Learn python. Use Python despite deep flaws. Use Python despite there being better tools for the job. Use Python! We command it!

    This happened with:
    Basic
    C
    Lisp
    C++
    VIsual Basic
    Java
    C#
    and a host of others I probably missed.

    Now it's Python's turn.

  • For 95% of you, Python is not the language that likely will make you a living, nor is it among the most used. It's just a "what is your favorite marvel heror" type of poll. Python can't replace Java or C nor C++ in the next ten years, for example.

    • Python will be dead and buried and C/C++ and Java will still be there. Python is a toy

      • seems useful for some things, our data scientists at work use it. makes it a quick and dirty Fortran with good math library and web platform support or something....

    • Users out number Pros:
      It's easy to see Python will be #1, even NON-PRO programmer will be using python as complex software tools support automation/integration and the most powerful solution is programming. Like on Star Trek, everybody will be expected to "program" computers for their jobs. There will still be a big difference between users and engineers.

      "Real" or professional programmers will use pro-level tools or create tools from scratch. This is not an area best suited for a novice or user level langu

      • by USERS or PROs?

        Bingo. But the reason why the question is hard to answer is that according to "Uncle" Bob Martin, the number of programmers doubles every five years. That means that half of all programmers have five-or-less years of experience, and 75% have ten-or-less.

        Our industry is in a perpetual state of inexperience.

  • .. what the code does, or if the program works correctly there is something fundamentally wrong, IMO.

    Leaving aside how grossly prejudiced the concept of tying formatting to program flow is to visually impaired individuals who would not necessarily have the visual cue that indentation ordinarily offers a programmer anyways, programs in programming languages where formatting is not enforced and that happen to be badly formatted such that the program flow is not intuitively conveyed are not significantly di

  • Never with me. It's easier to spell Java and less keystrokes.
  • When it really counts for big systems and more, java is always the choice over Python.
  • Utility, productivity, expressibility, reliability, readability. If I were being honest, the items in the top 10 list cause me to reach for the calcium carbonate, the bismuth subsalicylate, somewhere without a spinning room, and rewriting Prelude.hs.
  • I've used dozens of programming languages over the 40 years I've been working. They are all the same for the most part, just different syntax and libraries. Once one understands most of the basic constructs, such as conditionals, loops, recursion, it becomes a matter of figuring out whether to use periods, semicolons, or indents. The most difficult part is never the language, it's the libraries. And thanks to web searches, that's not as difficult as it used to be.

    All someone needs is the willingness to
  • I love the: "And coming in at #11 is Perl"
    We don't want anyone's feelings get hurt :)

You are always doing something marginal when the boss drops by your desk.

Working...