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

 



Forgot your password?
typodupeerror
×
Programming Python Java Stats

Python Finally Overtakes Java on GitHub (zdnet.com) 61

"The hit programming language Python has climbed over once-dominant Java to become the second most popular language on Microsoft-owned open-source code-sharing site GitHub," reports ZDNet: Python now outranks Java based on the number of repository contributors, and by that metric Python is now second only to JavaScript, which has been in top spot since 2014, according to GitHub's 'State of the Octoverse' report for 2019...

Another interesting aspect of GitHub's report is its ranking of fastest-growing languages. Google's Dart programming language and Flutter, for building UIs for iOS and Android apps, are getting major traction with developers on GitHub. Dart was the fastest-growing language between 2018 and 2019, with usage up a massive 532%. It was followed by the Mozilla-developed Rust, which grew a respectable 235%. Microsoft is experimenting with Rust in its Windows code base because it was designed to address memory-related security bugs -- the dominant flaw-type in Microsoft software over the past decade.

Last year Kotlin, the Google-endorsed programming language for Android app development, was the fastest-growing language on GitHub. It's not a top-10 language yet, but it still grew 182% over the year. Microsoft-backed TypeScript, its superset of JavaScript, is also growing fast, up 161% over the past year as more developers use it to grapple with large-scale JavaScript apps.

Other languages making up the top 10 fastest-growing category are HCL, PowerShell, Apex, Python, Assembly, and Go.

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

Python Finally Overtakes Java on GitHub

Comments Filter:
  • All programming languages have some elements of bad design.

    I'm not an expert. An opinion: One of the worst qualities of C++ is that there is insufficient explanation about when to use some of the qualities of the language.

    And, of course, technically-knowledgeable people are often not good at communicating. "C++" is not a good name. All names should use letters and possibly numbers.

    We don't seem to have anyone analyzing carefully what is needed in programming languages.

    One of the worst qualities
    • by RightSaidFred99 ( 874576 ) on Saturday November 09, 2019 @04:09PM (#59398170)

      The worst quality of C++ is that it's obscenely complex. I do C++ right now and one of my C++-nerd co-workers and I were joking about how shitty Perl is and how the code looks like a mishmash of random punctuation.

      We had our ha-has (I still use Perl for some basic scripting, it's fine for linear automation) and then the next day he was showing me some template code he wrote to do automatic dereferencing deep copies of a pointer or some shit.

      That code (Paul Harvey voice)? A random fuicking hideous mishmash of ellipses, angle brackets, and inscrutable keywords that would be 100X as much of a 'write-only' exercise than the worst fucking vomitous Perl code you can imagine. Now you know..the rest of the story.

      • A random fuicking hideous mishmash of ellipses, angle brackets, and inscrutable keywords that would be 100X as much of a 'write-only' exercise than the worst fucking vomitous Perl code you can imagine. Now you know..the rest of the story.

        let me guess the rest of the story. anecdotally, almost all Perl coders I know are well aware of this peculiarity of their chosen tool and of limitations that brings, and often joke about Perl being "write only" language. whereas many C++ fans for some reason believe.. I'll put it politely, that the language's syntax does not create that much cognitive overhead. no I mean I agree C++ is very powerful I get it, but why be in denial of at what price that comes?

        • >
          Perl coders I know are well aware of this peculiarity of their chosen tool and of limitations that brings, and often joke about Perl

          Agreed, mostly. I'm a long-time user of Perl. I try to use the right language for the job, and where there isn't a clear favorite, Perl is my default, the language I grew up on.

          I've said here on Slashdot recently that Perl can look like a cat walked across the keyboard. Lol

          I then pointed out that's mostly true when the reader is familiar with certain other programming la

      • Sounds less like a problem with C++ and more like he wrote some shit that didn't need to be done, and sounds like an early draft that should be simplified after the problem is understood. And C++ has very few actual keywords, so I doubt they are so much inscrutable as you are unfamiliar with them.
        • That's pretty much the No True Scotsman fallacy. The fact is yes, you can certainly write straightforward C++ code. But it also encourages you to write incredibly complex code, particularly in template form.

          Maybe you enjoy 30 line error codes from the compiler nested 10 levels deep away from where the actual issue is because your template didn't match the right 'const' qualifier, but I don't. And I'm sure like ancient Sumerian, once you get the hang of the intricacies of template meta programming it all loo

          • by Uecker ( 1842596 )

            C++ is a necessary evil, basically. When you're developing for high performance against custom hardware you're stuck with it, but I sure do miss nice clean C# or even Python code.

            Why no use C? It is high performance and relatively simple.

            • If your doing low-level programming such as firmware base code, embedded systems, and driver hardware interface code, you really need a lot of the tools only found in C++ unless you want to write a lot of functions from scratch.

            • Because I prefer to write 100 lines template meta programming over 2000 lins of C?

              Why the fuck idiots always come up with C and "performance" and "better" is beyond me.

              Any macro assembler is better than C, just not (as) portable ...

          • You don't understand what the No True Scotsman fallacy is. I didn't say anything along the lines of "this is the correct style to write C++". I specifically said he probably wrote the wrong solution to the problem. Solving a problem properly is hardly "No True Scotsman". There are right ways and wrong ways to solve a problem, depending on the problem. To deny otherwise, by mistaking it for "No True Scotsman", is to say any solution is equally good.
        • Sounds less like a problem with C++ and more like he wrote some shit that didn't need to be done, and sounds like an early draft that should be simplified after the problem is understood.

          That's exactly how we get inscrutable perl code, too. It's not the law, it's just "clever" coders being smartasses, usually when there's a library in CPAN to do what they're trying to do much easier.

          • it's just "clever" coders being smartasses

            But the problem is that to write clear code in these languages, that uses advanced languages features like templates or regexps, you really do have to be very clever. Usually you just end up write something a bit messy, while simpler language allow for non clever people to also write simple code.

            • Usually you just end up write something a bit messy, while simpler language allow for non clever people to also write simple code.

              Perl doesn't require you to be clever to write simple code. I've written plenty of it ;)

              Seriously though, I was bashing together perl scripts before I even got the camel book, and before there was a bunch of good material on the web about it. For example a coworker and I at Cisco (the Santa Cruz office, nee TGV) used Filemaker pro (him) and perl (me) to make a web application that permitted engineers to move cable modems between VLANs. That was one of my early perl scripts. I'm still not much of a programme

        • The problem with C++ (and also Java et.al.) is that they reuse keywords for concepts where neither the strict english meaning of the word fits nor where it actually means anything remotely similar to its other meanings, examples are static and in C++ auto.

          Then the introduction of typename ... as if class was not enough :D

      • C++ can often be split into two use cases: writing libraries and using libraries. You're correct that writing libraries can involve incredibly complex code - sometimes expert-level domain work. But an interesting thing about C++ is that once that reusable library or component is written, and if it's well designed, it can be a joy to use - easy enough for even beginners to take advantage of very powerful features while still being very safe to use. It's a bit unlike C in this regard, which has a more unif

      • Have to agree. The very early versions of C++ when classes were added to C I thought were very nice, but the language has gotten more complex with time. Python feels even worse - just too many ways to do the same thing and that makes checking and debugging code difficult because different coders have very different styles, and choose to use different libraries to do the same thing.

        In my experience python is also extremely slow. Multithreading is in principal supported, but in practice doesn't work for mos

        • Interesting quotes from the parent comment:

          1) "The very early versions of C++ when classes were added to C I thought were very nice, but the language has gotten more complex with time."

          It seems to me that a major problem is that the explanation of the later C++ complexities is not sufficiently carefully explained.

          2) Python: a) "extremely slow" and "... the python version was 600X slower than the C version..." b) "Multi-threading ... doesn't work for most applications."
      • If someone is writing templated code to dereference pointers in 2019 he doesn't know what he is doing. All that stuff has been implemented already.

      • Re: (Score:3, Funny)

        by leonbev ( 111395 )

        Wow... A Paul Harvey comment?!? I think that you just confused the hell out of every Slashdot user under the age of 35.

        • I'm 56. What is a "Paul Harvey"? I don't think he's the fellow that invented Hooker Harvey's, but maybe I'm wrong.

    • "One of the worst qualities of Python is that it is likely to be less secure than C or C++, it seems to me."

      Please elaborate. "Secure" is a property of Design and Implementation, and not a property of a language. C, C++, Python, and all other languages eventual devolve into instructions executed on the CPU, and given a particular CPU, they will all devolve into the same constructs. It is therefore manifestly impossible for one language to be more or less "secure" than any other.

      • Some languages make it hard to blow your foot off, some make it almost impossible not to.

        • This is a feature. Languages which do not allow you to implement "blowing your foot off" are manifestly ill-conceived. What is the design goal is to "blow your foot off"? This would preclude the use of such a language.

          I believe that what you are trying to express is that some languages, in the hands of the inept, can be used ineptly. Other languages are designed to be used by the mentally deficient and prevent those mental deficiencies from manifesting in the "executable machine language executed by the

      • It is therefore manifestly impossible for one language to be more or less "secure" than any other.

        Are you familiar with the concept of memory safety [wikipedia.org] in computer languages? It is generally acknowledged that memory safe languages are inherently more secure than memory unsafe languages.

        • This is untrue and an old-wives tale promulgated by the inept in order to obfuscate the fact that the root problem is their own ineptness and inability to properly utilize a language that does not have built-in training wheels to protect them against their own ineptitude.

          I will agree that it is generally acknoweledged that languages with "memory safe training wheels" are inherently more secure when used by inept persons, than languages without such training wheels are when used by the same inept persons.

          The

          • I'll have to respectfully disagree with your assertion that memory safety is akin to "training wheels", or that the problem could be solved with better programmers. Programmers are people, and ALL people make mistakes. It makes far most sense to me to use whatever automated tools you have at hand so you can spend your limited brain power thinking about high level security issues, when all you need is a better language / compiler / runtime to completely eliminate an entire category of potential problems.

            Ob

            • It is inherently a problem of ineptness requiring training wheels, and the inability of these inept and incompetent people to understand the nature of what it is they are doing. If they understood what they were doing, they would have no need of the training wheels. It is only because they do not understand (are unable to determine) what is happening, that training wheels are required in order to prevent them from toppling over.

              Take the expression "a = b[c]" This translates perfectly into an indexed load

              • I hope your user name reflects your status in the industry.

                Never heard more moronic words about programming languages and users using them.

                I wonder how many out of bounds bugs you made yourself before you considered yourself bad ass and everyone else inept.

            • The problem with your parent is manyfold:
              - he never programmed in a language where bugs like accessing the wrong memory are impossible
              - he managed to overcome his own failings in memory problems and now considers himself "adept" and "able" to use that language
              - he simply does not grasp that you can only write X "solutions" a day. When 40% of those "solutions" are covered by his adept handling of memory and other resources, there are only 60% left to actually work on the stuff he is supposed to work on
              - now

          • Comment removed based on user account deletion
        • by Uecker ( 1842596 )

          The wikipedia article is not entirely correct. For example, arbitrary pointer arithmetic is not legal in C and compilers can add bounds checking in many cases (when they support this and are instructed to so). This is more an issue of using the right tools than about the language itself.

      • It is therefore manifestly impossible for one language to be more or less "secure" than any other.
        Erm, no?

        Also you mix up language with runtime system ...

        There are hundreds if not thousands of languages that are inherently secure. The insecurity in those languages comes from buggy implementations of the runtime system.

    • "We don't seem to have anyone analyzing carefully what is needed in programming languages. "

      Yes we do. There are tons all over academia, and tons in industry, and tons more of uninformed opining on it. Every modern language is an answer to someone analyzing carefully what is needed in a programming language, discovering what THEY THINK is needed, and then seeing their theory tested out in a language.

      whichever the solution, the languages need good syntactic access to powerful idioms... such as generators (

    • One thing about Python, the scoping rules are donkeys.
    • by AHuxley ( 892839 )
      The world needs more Ada.
  • With cloud tech at my company we're moving faster and faster away from stand alone servers (which were made first with C++ then Java for easier deployment/maintenance) to microservices which can run java but are more efficient with Python. Not necessarily in language structure/architecture (where Java still wins out) but in VM load time and resource usage. The microservices are small enough that Python is a "right fit" at this level.

  • Java is used mostly in business programming. In fact it is probably the most used in business programming, at least for larger to enterprise level coding. And that code will not be stored in a public source code repository. In other words, there is a vast hidden number of "contributions" of production level coding that people don't see. Meanwhile, GitHub has many puts that are half-assed projects that won't ever go anywhere. And yes, I realize there are a great many very good projects using it. But GitHub i
    • People are moving to Python because it's been used in beginning-level classes at the university to teach programming. So people like it because it was the first language they used. It has nothing to do with the quality of the language, just familiarity.
      • by AHuxley ( 892839 )
        Todays BASIC and Pascal.
        Years at a learn to code university.
        • Came to say this. While both are "just another block-structured language", Python is much cleaner in the old-school tradition of a programming language-as-English words.

          I work in embedded C, and the MISRA and QAC rules about casting are so burdensome they regularly make simple things grotesquely difficult to understand, which defeats the entire point of both the language and of the impetus behind those rules -- making sure the programmer understands.

          • I read part of the MISRA standard because a coding guide at my work said they used it. It turns out that no one followed that guide and they don't actually use MISRA. But from the part that I did read, a lot of it was about avoiding undefined behavior.
    • by leonbev ( 111395 )

      Yeah, I'd imagine that only about 20% of all Java code ever written ever gets posted to a public repo, because most of it is supporting some commercial backend legacy product that was originally developed about 15 years ago. Most of it is probably filled with proprietary trade secrets, gaping security holes, and/or is so poorly written that the development team would be embarrassed to publish it.

      That's the case for the last three Java shops that I worked for, anyway.

    • by _merlin ( 160982 )

      "Number of repository contributors" is a stupid metric anyway. Consider MAME [github.com] which has a massive amount of C++ and small amounts of Python, shader languages, and other things. Yet everyone who's had to touch a Python build script as well as C++ counts equally towards the "number of repository contributors" for both Python and C++.

      Lots of projects use Python glue for things where turnaround time is more important than performance, or as build system glue, or other non-core features. If both Java and C++ p

    • Java is used mostly in business programming....And that code will not be stored in a public source code repository.

      Java is what was taught at university for something like the last 20 years as part of many degrees, even ones that weren't CS related. People then scratch their programming itch by creating github projects. This creates a large (and cheap!) pool of programmers that companies like EDS (now HP Enterprise services) would pull from. This large pool of people who learnt Java and didn't have the cho

  • 2 or 3?

  • Can someone inform me as to what "hit programming language" means?

    Isn't Python older than Java?

  • I still find that the use of virtualenv makes Python almost impossible to deal with when it comes to 3rd party libraries, also the lack of a switch/case is basically stupid.

I'd rather just believe that it's done by little elves running around.

Working...