Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming AI Open Source Python

Python Overtakes JavaScript on GitHub, Annual Survey Finds (github.blog) 97

GitHub released its annual "State of the Octoverse" report this week. And while "Systems programming languages, like Rust, are also on the rise... Python, JavaScript, TypeScript, and Java remain the most widely used languages on GitHub."

In fact, "In 2024, Python overtook JavaScript as the most popular language on GitHub." They also report usage of Jupyter Notebooks "skyrocketed" with a 92% jump in usage, which along with Python's rise seems to underscore "the surge in data science and machine learning on GitHub..." We're also seeing increased interest in AI agents and smaller models that require less computational power, reflecting a shift across the industry as more people focus on new use cases for AI... While the United States leads in contributions to generative AI projects on GitHub, we see more absolute activity outside the United States. In 2024, there was a 59% surge in the number of contributions to generative AI projects on GitHub and a 98% increase in the number of projects overall — and many of those contributions came from places like India, Germany, Japan, and Singapore...

Notable growth is occurring in India, which is expected to have the world's largest developer population on GitHub by 2028, as well as across Africa and Latin America... [W]e have seen greater growth outside the United States every year since 2013 — and that trend has sped up over the past few years.

Last year they'd projected India would have the most developers on GitHub #1 by 2027, but now believe it will happen a year later. This year's top 10?

1. United States
2. India
3. China
4. Brazil
5. United Kingdom
6. Russia
7. Germany
8. Indonesia
9. Japan
10. Canada

Interestingly, the UK's population ranks #21 among countries of the world, while Germany ranks #19, and Canada ranks #36.)

GitHub's announcement argues the rise of non-English, high-population regions "is notable given that it is happening at the same time as the proliferation of generative AI tools, which are increasingly enabling developers to engage with code in their natural language." And they offer one more data point: GitHub's For Good First Issue is a curated list of Digital Public Goods that need contributors, connecting those projects with people who want to address a societal challenge and promote sustainable development...

Significantly, 34% of contributors to the top 10 For Good Issue projects... made their first contribution after signing up for GitHub Copilot.

There's now 518 million projects on GitHub — with a year-over-year growth of 25%...
This discussion has been archived. No new comments can be posted.

Python Overtakes JavaScript on GitHub, Annual Survey Finds

Comments Filter:
  • Ever seen one actually do the needful?

  • by 93 Escort Wagon ( 326346 ) on Monday November 04, 2024 @12:59AM (#64917505)

    Quick! Someone better post a story with the latest TIOBE numbers, pronto! It's been weeks since the last one!

  • The No.1 language for lazy devs who bumbledev kludges then link them all togethere and pass the mess off as a solution.

    All the while sucking in huge chunks of compromised PyPi packages, flooding the world with all sorts of fascinating malware.

    • Re: (Score:2, Informative)

      by i kan reed ( 749298 )

      And javascript is in any way better in any of those respects?

      Like I'll be the first to acknowledge that Python has problems, but the JS ecosystem is a blight.

      • by narcc ( 412956 )

        I don't know of any "ecosystem" that isn't a cesspit. CTAN seems to be one of the best, but only because the community is so small. There's still a lot of crap in it.

        As far as languages go, JS is far and away the better language in terms of design than the horror show that is Python. It's like a bad joke.

        • That was a good one. Python is surely not a very good language design, but JS had no design whatsoever since the very beginning, its origin being a dirty hack by the Netscape developers to add interactivity where it didn't belong. INTERCAL is a better designed language than JS.

          • by gweihir ( 88907 )

            I have absolute no idea why people keep claiming Python is a bad design. It is not. It is a pretty good design. Maybe people lack comparison?

            • Inconsistence, bad multiple comparison design before 3.10, explicit typing is essentially a hack. And Python 2 was no better than PHP.

              • Compared to the healthy and effective explicit typing of... javascript? That's the context of this conversation, remember?

              • by gweihir ( 88907 )

                explicit typing is essentially a hack

                That is not a criticism. It just means you are using it wrong. And as a side-note: Strict/explicit typing is overrated. It is a crutch for the incompetent. Same as OO, its "on steroids" form.

            • by narcc ( 412956 )

              You can't be serious. What on earth makes you think that clunky and inconsistent mess is well-designed?

              • by gweihir ( 88907 )

                Having used it in some larger projects? What do you have as basis for the claims of "clunky" and "inconsistent"?

                • by narcc ( 412956 )

                  What? It's notoriously inconsistent. It has inconsistent syntax. Function interfaces are inconsistent. I can easily go on, as can you, if you want to be honest.

                  As for "clunky", that's admittedly a matter of opinion, but I think it can be justified on the basis of objects and classes alone.

                  Oh, has Guido figured out how `print` should work yet or is it still incomprehensibly stupid?

                  • by gweihir ( 88907 )

                    So, in other words and ignoring your pathetic blustering, you still have nothing. Thanks for confirming that. I am going to ignore anything more you wrote on the subject now.

                    • by narcc ( 412956 )

                      LOL! Are you seriously claiming that Python has consistent syntax and that its function interfaces are consistent? Are you even remotely familiar with the language?

                      I am going to ignore anything more you wrote on the subject now.

                      So what? You've ignored everything I've written already!

                      I'm sorry that reality doesn't agree with your silly beliefs. That's not my fault. Try believing fewer stupid things.

          • by narcc ( 412956 )

            You don't have a clue. The language itself might have been designed quickly, but that seems to have been to its benefit. It's often been described as 'lisp with C syntax'. It almost was lisp, until the higher-ups found out what that was and insisted he (Eich) make it look more like Java. The result was a very simple but powerful and expressive little language. The early warts, like the 'new' keyword, were forced on it. Fortunately, until recently, it could be completely ignored. Most of the flack, I

        • Really?
          "1" == 1

          • by narcc ( 412956 )

            I fail to see the problem. Remember this is a language designed for web browsers.

      • And javascript is in any way better in any of those respects?

        Hell no! I just don't have to deal with it all that much so can't claim an informed opinion.

      • Re:Python (Score:5, Insightful)

        by gweihir ( 88907 ) on Monday November 04, 2024 @05:38AM (#64917779)

        _Real_ bad coders can write bad code in any language!

      • And javascript is in any way better in any of those respects?

        Like I'll be the first to acknowledge that Python has problems, but the JS ecosystem is a blight.

        It's so bad, it's affecting [imgur.com] the dating scene.

    • Python is the language people learned in their first programming class these days. And those who stayed with it never bothered to learn anything else.
      • by gweihir ( 88907 )

        Soo, when I stay with Python after having done real work in C, Eiffel, Pascal, Lua, Perl and some others, what does that say about me?

        • It shows you have enough experience to have some wisdom. So when I say you're a moron for using Python, I expect you to answer with sound reasoning to support your opinion, and not something from ChatGPT.
          • A ChatGPT response would be at least three paragraphs long.
          • by gweihir ( 88907 )

            Sound reasoning? Here is one: You are the accuser, please come up with a _credible_ accusation first.

            • No, that answer's a fail, you're a moron.

              What are you, 12 years old? That answer might sound good in a high school debate class, but in the real world, Prima Facie an idiot uses Python.
              • by gweihir ( 88907 )

                So, you actually have nothing? Figures. And you have not even addressed the issue. "An idiot uses Python" (let's assume that is true) does not imply "Somebody using Python is an idiot". Implication vs. equivalence, the hill many not-so-smart people die on.

                Typical "hater" approach though: "I don't like it and anybody using it is a moron." Needs to be given without reasons or some fake reasons (you gave one).

                But yes, I fell for it. Now stop trolling.

  • How do they even know the developers' countries of origin? I never specified that in my profile, and I guess most people don't either.
  • by dgatwood ( 11270 ) on Monday November 04, 2024 @02:14AM (#64917567) Homepage Journal

    GitHub's announcement argues the rise of non-English, high-population regions "is notable given that it is happening at the same time as the proliferation of generative AI tools, which are increasingly enabling developers to engage with code in their natural language."

    Maybe, or maybe not. I'm not sure I'd automatically assume that the rise in programmers in other countries is necessarily because language barriers are being broken down more easily. That could certainly be true, or it could just be that the youth are realizing that tech is a gravy train, and are jumping on it in larger numbers. And it's hard to say how many of them speak English.

    Critically, the percentage of English speakers among programmers is not necessarily all that similar to the percentage of English speakers among the general population. To use India as an example, depending on who you ask, anywhere from 10% to 30% of people in India speak English. But:

    • When you limit it to upper social classes who are more likely to have access to tech and are more likely to have gotten training in programming languages, that number goes up to 41%.
    • When you limit it to urban areas, where people are more likely to be involved in tech jobs, that number goes up. If you believe the most extreme numbers, it could be as high as 97% [statista.com], though there's often a big difference between the percentage of people who say that they speak English (as a sort of status symbol) and the percentage who are actually fluent, so such numbers should be taken with a grain of salt.
    • When you limit it to younger people, who are more likely to be interested in taking on a new career, that number also goes way up.

    When you realize that most of the new programmers are likely to be younger members of upper social classes and living in urban areas, you're multiplying all of those scaling factors together, and the percentage of English speakers could be *very* different from the general population.

    So it's not necessarily as easy as saying "This country is predominantly non-English, so most of these new programmers are probably non-English speakers." Maybe they are, maybe they aren't.

    And of course, even if they are, it seems far more likely that the language barriers are being broken down by translation tools like Google Translate rather than by generative AI nonsense. Maybe generative AI made a lot of people able to write simple code without having to have as solid a grasp of program flow and logic, but that's a different kind of language barrier that we're talking about at that point.

  • Significantly, 34% of contributors to the top 10 For Good Issue projects... made their first contribution after signing up for GitHub Copilot.

    How do they extract any significance from that datum? It can't be that they asked "Would you have made a contribution if Copilot didn't exist?", because if they had asked that then the responses to the question would be what they cite. So the only thing the statistic really demonstrates is that they've successfully convinced a certain number of people that signing up

  • The tracker crashed due to a buffer overflow when counting JavaScript Frameworks.

  • Hate (Score:5, Insightful)

    by fluffernutter ( 1411889 ) on Monday November 04, 2024 @04:47AM (#64917735)
    I don't get the hate for Python. I know C++, Java, JavaScript, and Python among other languages and Python is my go to almost every time. Sure if i am doing web stuff i use JavaScript and if i want a really fast GUI application i use C++ but for most things in the middle i use Python. For example, i recently needed to connect to an ldap server and monitor it for changes. Pip install ldap3 and a three line script an I'm done. It just can't be done that easily with any other language. The time to get to that point with c++ would be horrible. And i don't even know if JavaScript can do that.
    br>Time is the thing i am in most short supply of, and i just don't have enough of it to be wasting it on religious battles over languages. I go to the tool that will let me do what i need the easiest and the fastest.
    • by Anonymous Coward
      The lack of delimeters for code blocks in Python drives me (even more) nuts as a bad cut-and-paste reformat is annoying. There are other issues too, of course.
      • Personally I find never having to type curly brackets very liberating. Brackets are hard to match when you have a lot nested, whereas indentation is very clear to see. What happens when I have 'if (x) do_this();' but I need to add another statement? Have to add brackets. I find that the most annoying thing in the world.

        Besides, when you have brackets you want it indented *anyway*.
        • Yeah, but with bracketed languages, the brackets dictate the indentation. So when you are making code edits and copy/pasting auto-formatters can deterministically figure out the correct intent with very little effort from the user. When relying on indentation, you become subject to the vagaries of the current editor state or the formatting of the source of the copy.

          I'm not anti-indent-only or anti-python, but there some clear benefits to requiring brackets when it comes to editing code.

          • I dunno, even when i use an ide i read each line carefully to see what it is doing anyway so i format manually while i do that. 50% of the time the formatter doesn't cut off lines like i want to anyway.
    • by gweihir ( 88907 )

      Yep, same here. My guess is there are a lot of "one language wonders" out there that simply cannot evaluate Python competently and then latch on the indention and think it was an important (bad) language feature.

    • Re: (Score:2, Troll)

      Pip install ldap3 and a three line script an I'm done.

      Precisely this. Kludges all the way down and zero concept of what the code is, what it does or how secure it is.

      To be fair,, you're also still using LDAP so... it's a moot point.

      Python is the go-to for unmaintable, once-off, kludges. This isn't development. This is how we develop technical debt.

      • You have a very different definition of kludge than i do. To me a kludge is something that is hard to understand. I don't see how three lines of code could qualify. Also Python is memory safe. To me the bigger mess is the 50 lines or so that C++ would turn out to be. Having to understand every type, every function. Furthermore, kludges are no more possible in Python than they are in any other language.
        • You have a very different definition of kludge than i do. .

          If filthy hack doesn't meet with your "definition", it does not make it any less filthy. It was thrown together with the least amount of effort to fulfill a single, narrow, use case and left there in production as a snare for future maintainers. It's the cancer that Python encourages and the reason for the aforementioned hate.

          It is absolutley possible to produce good code in Python. Yet the majority of solutions end up being a leaning tower of kludges, copy-pasted from ChatGPT or some random site with zero

          • So if i haven't done the correct amount of unnecessary work then you will never like it?
            • So if i haven't done the correct amount of responsible work then you will never like it?

              Being irresponsible, lazy and short-sighted is not heroic. Quite the opposite.

              • But also wasting time is not heroic. How do you know who is going to be maintaining this script and thus what the requirements for it will be. Maybe this is a prototype to be used once and then build it properly.
                • Maybe this is a prototype to be used once and then build it properly.

                  You're describing a kludge. Congrats. Now guess how often anyone is actually going to revisit it? A number so vanishingly small it may as well be zero.

                  • I still don't get your point. I programmed something in ten times less lines that did exactly what I wanted. No one needs to go back to it. I am the only person who works on this part. That sounds to me like the best of all worlds. As long as you can tolerate the constant indentation.
                    • I programmed something in ten times less lines that did exactly what I wanted.

                      No. You didn't. You consumed the work of some faceless, unqualified, package maintainer and used it with zero assessment as to fitness, security or support. That's what you did. Nothing more.

                      No one needs to go back to it.

                      I am the only person who works on this part.

                      False assumptions that serve as further evidence you are *not* a developer. Also assumed is your immortality.

                      Pretty solid bet you provided zero unit tests as well.

                    • Actually i work on a project myself that supports my business. There are no other developers yet you call me a liar rather than admit you are wrong.
                    • you call me a liar rather than admit you are wrong.

                      I asnwered the original question factually. Where was I "wrong"? What am I "wrong" about?

                    • No. You didn't. You consumed the work of some faceless, unqualified, package maintainer and used it with zero assessment as to fitness, security or support. That's what you did. Nothing more.

                      Yet i had told you there were no other developers so either you didn't read or you called me a liar.

                      False assumptions that serve as further evidence you are *not* a developer.

                      I graduated from a university with a computer Science degree. I had to complete a lot of programs to do it. Does that not make me a developer? Either it doesn't or you are calling me a liar.

                    • Original question: I don't get the hate for Python

                      Me: Here's why.

                      You: Wharrgarble!

                      Get help. Your victimhood is showiing.

                    • I asked you to explain why your reasons were valid and you had nothing. Now you are just trying to get out of the conversation.
                    • you are just trying to get out of the puerile hissy fit.

                      Not trying. I'm out. When you can adult better, we could probably have a reasonable discussion. Maybe another 10 years of actual experience in the field in a proper dev environment? Possibly once you've been made responsible for reviewing the garbage commits of Python devs?

      • Most common languages are full of kludges and ugly add-on syntax. Expectations, fads, and state-of-the-art changes over time. Even a brand new language today will look out-of-date or over-kludged 30 years from now (when AI takes over and consumes our bodies for energy).

        Yes, Python sucks, but so do existing competitors. I welcome decent alternatives, but have yet to see them.

      • by Dadoo ( 899435 )

        Python is the go-to for unmaintable, once-off, kludges.

        Not in my experience. Just recently, we had had to connect a third-party piece of software to a messaging server (IBM MQ). I did it in Python in a couple of weekends, with about 300 lines of code. Unfortunately, we're officially a C# shop, so they paid a consultant to write a new program in C#. It took him eight months and I don't know how many lines of code.

        Sorry, but I don't see how you could call 300 lines of code unmaintainable.

        • I don't see how you could call 300 lines of code unmaintainable.

          Pointing to an anecdotal edge case is a mistake.

          I didn't say you couldn't produce robust, maintanable code in Python. I said the language accepts, embraces and encourages garbage code.

    • by znrt ( 2424692 )

      I don't get the hate for Python.

      haters gonna hate, boredom, miserable existence in shitty jobs, issues to compensate for, small penises, etc. ...

      i wouldn't expect to find much serious argument or rich technical discussion in the comments about a language popularity contest. it's just clickbait for rants and entertainment. not only are these rankings based on completely arbitrary metrics and silly assumptions, language popularity is hardly a meaningful characteristic for any serious developer to begin with.

      ofc python is just another tool w

    • I don't get the hate for Python.

      When I was looking at learning Python one of the first things that happened was I copied a code example from the web and pasted it into my editor and all the formatting was lost so the code was worthless.

      With a real language I could have run the code through a reformatter and it would have worked again.

      Using character offsets to control program flow is something we left behind when we moved away from punch cards. We moved away from it for a reason, and the reason was that it was bad. Python deliberately bro

      • Then stop copying code that comes from shitty websites that don't understand that people are going to copy the code or use a proper copy block. I can't say I have ever really had that problem. Maybe the first line or something. It's nothing to cry about.
        • I can't say I have ever really had that problem.

          It's not a problem for you, so it's not a problem for anyone! You are the only one who matters! I'm so glad we identified you so we can know what actually matters!

          How about the fact that Python performance is complete shit? It's slower than Perl was a decade ago.

          • Here's the thing I don't get. You value highly readable code. So when you copy C++ code from a shitty website don't you fix the indentation anyway? Even if I don't need to do that I still go through each line to understand what it is doing. Just feels natural to fix the indentation at the same time.

            I'm sorry if it's a problem for you; I thought that was just part of being a developer. That will probably mean that you miss out on a lot of the enjoyment and opportunities as a developer.
            • Here's the thing I don't get. You value highly readable code. So when you copy C++ code from a shitty website don't you fix the indentation anyway?

              No, the IDE does it, like it can't do with Python. Why would I do work the software can do for me?

              I'm sorry if it's a problem for you; I thought that was just part of being a developer. That will probably mean that you miss out on a lot of the enjoyment and opportunities as a developer.

              Oh, you missed the plot there. I'm not a "developer", to the degree I am anything tech any more (I'm not currently employed in tech) I am a sysadmin. I do not want to spend all my time dicking with code, coding is something I do when there's a problem I can't solve some other way and move on to the next problem. But you also can't be a sysadmin without being able to do some coding. Most of it is scripting, tho

              • Lol.. ok you use an IDE to help you all the time. Enough said. I try to use the IDE as much as I can but usually I am just in a text editor or standard vi. I didn't realise that there were people who didn't know how to program without an IDE.
                • Lol.. ok you use an IDE to help you all the time.

                  I didn't say that, but I guess we've already established that you can't read and make stuff up to make the story make more sense to you, so I don't find your lack of reading comprehension surprising.

                  • You did say that. I asked do you not ever indent code manually? You said the IDE does it. So which is the answer? You do indent code manually or you use an IDE all the time?
                    • You are so addled you can't imagine someone firing up an IDE when they want to use IDE features?

                      Are you sure you even know how to turn a computer on?

                    • Well with Python you can't use that particular feature.. you know what, i can't find an IDE that understands bash properly either but i still use that.
                • I'd call vim an IDE personally. It's the only thing I use. And to reindent:
                  gg=G for the entire file or =% for a block. Actually I more normally do v%=, it's an extra keystroke but it makes it obvious if the reindent isn't going to operate on the bit of code I expected. I particularly hate ending up with arbitrary white space changes mixed in with functionality changes. They should be kept in separate commits.

                  My particular peeve is that you cannot comment out bits of code to test code paths that aren't norma

                  • by psmears ( 629712 )
                    I often just do :M,Ns/^/#/ to comment out between lines M&N, then :M,Ns/^.// to uncomment.
                    • Yes, but that doesn't work if you comment out an if statement but not (all of) its body because then the indent is wrong.

                      C doesn't care so long as the braces are matched.

                      I'll typically do v, select the block to comment and then :s/^/#/ - I don't (usually) have line number showing in vim, waste of screen real estate. And I use C-V to select the column and delete it again.

                      if thing_that_should_never_fail():
                       ...
                      else:
                       ... abnormal error handling code here

                      (who knows how to indent on /.)
                      I can't

                    • So then you just put a pass statement under it at the correct indentation.
    • Kind of depends on what you are doing. Python is a neat language but put in to production just on the strength of being quick and easy and nothing else, are the problems solved outweighed by the problems caused? Not the language itself but the faddish way hipsters declare that everyone uses "this" or "that" with no consideration whatsoever for the underlying archicetures. And i hear that malware writers love python in particular..... Again, not the language but the way systems are forced to accommodate "h
      • I think it totally depends on how quickly you want changes to happen. Python is more fluid, something like C++ more typing and longer and more things to put in place. So if you have a web page where the content is changing all the time, doing it in python will make rewriting it over and over way easier.
    • by dgym ( 584252 )

      Some people seem ready to hate on particular features but it seems more of a fit and tooling problem to me. If things don't fit your brain then it can be hard to appreciate them. If the tools you are comfortable using can't take advantage of particular features then those features become worthless to you. To take a stab at some of the common complaints:

      Dynamic typing and the way variable scope works in Python means that a compiler can't catch as many errors. To people used to using a compiler to catch er

      • Well of course, i would never try to use Python for anything that needs to run fast, but my only use for speed is in drawing a snappy gui that doesn't lag. Sure, Python is horrible for that. I guess when i learned to program it was in vi on actual dumb terminals. We also had Pascal in early Macs but there were no frills to the editor like auto indentation. And there is so much development i do that is tiny, like an explorative script just to test a small bit object usage or something, an IDE can be ver
        • by Ksevio ( 865461 )

          The thing is, most programs these days don't even do a lot of heavy computation, it's more about connecting slower IO connections like files or databases or network resources. Python has some pretty good libraries to handle that with clean syntax so it can end up being faster than a C++ program that executes the local computation faster but handles IO inefficiently

  • GitHub's announcement argues the rise of non-English, high-population regions "is notable given that it is happening at the same time as the proliferation of generative AI tools, which are increasingly enabling developers to engage with code in their natural language."

    Programming language has always mattered less than the ability to think logically and, you know, program ...

    And just as pocket internet connected computers have made metric vs. standard units matter less and less with each passing year, so perhaps will generative AI tools make choice of language matter less and less.

  • Last year they'd projected India would have the most developers on GitHub #1 by 2027, but now believe it will happen a year later..There's now 518 million projects on GitHub — with a year-over-year growth of 25%...

    Having 518 million projects sounds impressive, doesn’t it? Gets investors attention. Might even justify an article or two in CIO Weekly, right? Replace “projects” with “apps” and tell me where your enthusiasm went.

    One would think we learned this lesson with the App Store Wars. Even they stopped bragging about how many tens of thousands of apps they have. Says a lot about this kind of bigger-dick marketing strategy. Quality matters. We know that more than ever living in a

  • It doesn't matter. None of these stories matter. All languages are terrible, if you write terribly in them. Even if you don't write terribly in them, the code still ends up terrible if you don't go back frequently and expend real effort to make it less terrible. Every package system is either a permanently inadequate walled garden or a nightmare bazaar of incompatible dependencies; it may not even be mathematically possible for it to be otherwise. Good programmers (whatever that means) have always writ
  • About 3 weeks ago? Seems like the survey people are pretty busy.

It is better to travel hopefully than to fly Continental.

Working...