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

 



Forgot your password?
typodupeerror
×
Programming

The Top 10 Programming Languages On GitHub, Over Time 132

An anonymous reader writes with a link to VentureBeat's article on the information that GitHub released this week about the top-ten languages used by GitHub's users, and how they've changed over the site's history. GitHub's chart shows the change in rank for programming languages since GitHub launched in 2008 all the way to what the site's 10 million users are using for coding today. To be clear, this graph doesn't show the definitive top 10 programming languages. Because GitHub has become so popular (even causing Google Code to shut down), however, it still paints a fairly accurate picture of programming trends over recent years. Trend lines aside, here are the top 10 programming languages on GitHub today: 1. JavaScript 2. Java 3. Ruby 4. PHP 5. Python 6. CSS 7. C++ 8. C# 9. C 10. HTML
This discussion has been archived. No new comments can be posted.

The Top 10 Programming Languages On GitHub, Over Time

Comments Filter:
  • by lisabeeren ( 657508 ) on Sunday August 23, 2015 @05:35AM (#50373099)

    > it still paints a fairly accurate picture of programming trends over recent years

    i don't think it does (at least not very much). i think it tells us about shifts in GitHub's demographic.

    java usage has increased at GitHub, but this more likely reflects greater adoption of GitHub by the business community.

    ruby has declined, but this probably just reflects that the ruby community really embraced GitHub at the beginning.

    • by AuMatar ( 183847 ) on Sunday August 23, 2015 @05:38AM (#50373107)

      And why would CSS be more than HTML? There's nobody who uses CSS without HTML, but people do use HTML without CSS. So CSS should be a subset of HTML (also neither are programming languages, but that's a separate argument). So even ignoring massive bias problems, I question their accuracy.

      • by h33t l4x0r ( 4107715 ) on Sunday August 23, 2015 @05:54AM (#50373125)
        Any project related to jQuery or scss/sass has something to do with CSS but nothing to do with HTML.
        • by Anonymous Coward

          How is that? What is one styling if not HTML?

      • by Anonymous Coward

        Easy: Most of the PHP files will generate HTML as output, and have CSS files associated with them, but github wouldn't see that as an HTML file.

      • by Gondola ( 189182 )

        What does the number of CSS projects have to do with the number of HTML projects? There's no reason their numbers should correlate to each other at all on GitHub, especially considering neither is a programming language.

        • by narcc ( 412956 ) on Sunday August 23, 2015 @12:41PM (#50374365) Journal

          There's no reason their numbers should correlate to each other at all on GitHub, especially considering neither is a programming language.

          This will either interest or agitate you. HTML5 + CSS3 has been proven to be Turing complete [lambda-the-ultimate.org]. Just to drive the point home, someone's even made the effort to produce a desktop calculator app [hertzen.com] using only those two technologies.

          • That's just sick and wrong. But kinda in a cool way.
          • You can also make a box of toothpicks and a handful of rules written in crayon on a piece of notebook paper for how to arrange those toothpicks on a tabletop Turing complete. It still doesn't make it a suitable programming tool. Also, 9*111 was not, the last time I checked, equal to 99. So it doesn't seem to be a very successful desktop calculator in Chrome 44 on OS X at least. HTML is a markup language and CSS is a styling and presentation language. Yes, one can press them into service to write crude progr

            • by Tablizer ( 95088 )

              If you bring suitability into this then we could potentially do a lot of slicing and dicing* of the statistics. JavaScript is not suited to be a systems software language for building GUI engines, for example, but has ended up that way through historical accidents.

              * No corporate pun intended

      • If it's based on lines of code then it would explain why JavaScript is number one. Everyone has to keep a copy of the gazillion libraries javascript requires in their repos for easy deployment. One place I worked at they had 400k lines of code but most of it was libraries for node.js and etc. Our python code was much shorter even though the custom lines were much longer. Also javascript sucks so everyone writes a new library to try to make it better and easier to work with.

      • by SQLGuru ( 980662 )

        There was an article recently that showed that HTML5+CSS3 was Turing complete. http://lemire.me/blog/archives... [lemire.me]

        Which qualifies them (together) as a real language.

      • There's nobody who uses CSS without HTML

        JavaFX uses something that looks a little bit like CSS. In fact CSS is theoretically applicable to any kind of hierarchical scene graph, you just need to define what object types exist and what properties they have. You'd think that'd be more widespread nowadays, when every project requires programmers and multiple artists to work together and modding is all the rage.

    • by tkrotchko ( 124118 ) on Sunday August 23, 2015 @05:45AM (#50373113) Homepage

      I agree. If you look up what programming language experience companies are looking for, you usually end up with two very unsexy choices: Java and C.

      http://spectrum.ieee.org/compu... [ieee.org]

      Javascript will continue to be popular if only because it's becoming the defacto standard for cross-platform mobile development.

      • by Anonymous Coward

        with .NET it's the same, probably using some intern or microsoft specific versioning control program. We have our own servers to host our sources, we would never think about hosting it on GITHUB... So it also needs a certain kind of program...

      • You forget:
        node
        nodeJS
        angularJS

        and all the other mixed server/front end frameworks.

        In business the trend right now goes to so called "full stack" developers that are fluent in Java, preferred Scala and nodeJS/angularJS depending on the architecture.

        No one does C, unless he is forced by someone to do so, people usually do C++.

        • by Antique Geekmeister ( 740220 ) on Sunday August 23, 2015 @08:51AM (#50373385)

          > No one does C, unless he is forced by someone to do so, people usually do C++.

          Or they write in C and use a C++ capable compiler, like "gcc". A lot of "C++" code being published has no elements specific to C++.

          • Does there is no C++ compiler count as being forced?
            Still lots of 8 and 16 bit CPUs left if the world. An they do not all have C++ compilers. Some are still at ANSI C89.
            Not everyone works on desktops and servers.

          • A lot of "C++" code being published has no elements specific to C++.
            Never seen such a thing.
            And frankly, professional code usually does not get published ;D

            • by Antique Geekmeister ( 740220 ) on Monday August 24, 2015 @12:34AM (#50377791)

              A great deal of professional code is published: it's key to the Apache foundation and the Free Software Foundation. And a great deal of the more straightforward being published as "C++" for lightweight applications is standards compliant C. I just went through a similar issue with a job applicant who wrote backend website processing: That person's code had _no_ C++ elements in it, written for the simplest and most reliable compilation. It was very lightweight, the libraries it required were very stable, and it had _no_ dependency confusion common to the "overloading" of C++ functions. I was quite pleased with their code.

              • I would not call code professional just because it is published via Apache ;D

                Sorry, as I said before: in my professional career I have not seen any C code masqueraded as C++, and actually since the last 20 years I have no seen any C code at all.

                Might be because the systems I was involved in where not supposed to run on washing machines.

                That person's code had _no_ C++ elements in it, written for the simplest and most reliable compilation.

                That is a non sense sentence. What exactly is an unreliable compilatio

                • > Might be because the systems I was involved in where not supposed to run on washing machines.

                  Then you don't look at Linux device drivers, and apparently don't look at highly performance optimized daemons. That's fine: you may not have needed to do this.

                  > That is a non sense sentence. What exactly is an unreliable compilation?

                  "Unreliable compilaton" could mean many things. Code that is likely to give different results based on subtle compilaton option differences, such as optimization levels, due to

                  • I suggest you once work in a company/team that actually does embedded development instead of populating forums, web sites, blogs etc. with your nonsense.

                    Then you don't look at Linux device drivers, and apparently don't look at highly performance optimized daemons. That's fine: you may not have needed to do this.
                    This is not embedded software development so out of scope of this discussion.

                    Code that is likely to give different results based on subtle compilaton option differences,
                    If that is so, it is a compi

                  • Literally nothing you wrote there is a reason to use C rather than C++. C++ can optimize at least as well as C (typically, in implementations where there's any cost to throwing exceptions, there's a compiler switch to disable them), since it can do anything C can do and more. Your idea of "unreliable compilation" has absolutely nothing to do with C vs. C++. Your "features" that help with programmer consistently are not C-specific, and frequently C++ smart pointers are superior to trying to tracking "fre

        • No one does C, unless he is forced by someone to do so, people usually do C++.

          Uh, have you heard of Linus [cat-v.org]? A lot of embedded developers prefer C over C++, because there are fewer side effects. Other programmers prefer C over C++ because it has a cleaner design.

          • I did a lot of embedded projects the last 25 years: everyone was in C++, non in C.

            An Linus is now using C++ as well.

            Perhaps you should look at the graph again, C++ is far above C.

            And our parent claimed that C would be a prime chose, which it is clearly not.

            • I did a lot of embedded projects the last 25 years: everyone was in C++, non in C.

              If everyone was using C++, then your experience is obviously not representative.
              If most people you associated with used C++ in embedded, then your experience is different than mine.

              • Ofc my experience is not representative.

                However I'm a bit tired about posts of people who have no experience at all :D

                "All embedded software is done in C!" ... So Android stuff is not embedded? A GPS running on Android or an Rasperi PI is not embedded?

                As I said before: more than half of the embedded development in the world is in C++. And ALL embedded development I was involved in the last 20 years was C++ (or meanwhile in a few exceptions: Java)

                • However I'm a bit tired about posts of people who have no experience at all :D

                  True, if someone says embedded only uses C, then they are not correct either (I know of one chip that includes an embedded python interpreter).

                  Android barely counts as embedded though, maybe........it's a fairly advanced system.

                  • I think iOS and Android blurs the line where embedded is on one site and "ordinary" software is on the other side.

                    Remember that embedded version of windows? It was mainly aimed to car entertaining, radio, navigation systems.

                    iOS and Android are from an architectural standpoint not very similar.

          • Right you are. Linus did a pretty good [well, succinct anyway :-)] job explaining this.

            Here are a few more detailed reasons why you can't write a kernel in C++:
            - C++ constructors [or destructors] can't return error codes. They can only throw exceptions.

            - Leaving aside the fact that relying on exceptions (vs. checking error codes, which the kernel code already does at every step of the way) is largely unsuitable in a kernel [or an app even]

            - The kernel has several modes/states: in ISR, in syscall, entering

            • Inheritance violates encapsulation. If you have three classes X, Y, and Z (X is the base class, Y inherits from X, and Z inherits from Y), and each has various fncX1/fncX2/..., fncY1/fncY2/..., and fncZ1/fncZ2/... Now, you instantiate class Z. Then, when you use Z.fncX1 you're violating encapsulation because you're having to have [incestuous] knowledge of how Z was implemented in order to know that is has [by virtue of a two level inheritance from X] that Z.fncX1 is valid.

              But how does that violate encapsul

              • is_a/has_a is so you can determine if you can/should inherit. While the standard literature might say that the inheritance is part of the class definition, it's also an implementation detail of the given class. Radical idea, no? Read on ...

                Back to school for the sake of common ground: An airplane is not an engine. It has an engine. An airplane is a vehicle. So airplane could inherit from vehicle but would have:
                engine_t engines[4];

                Encapsulation has two definitions:
                https://en.wikipedia.o [wikipedia.org]

                • A side comment here: the "= 0" seems bizarre. Back when it was created the mantra was to avoid new keywords [at any cost]. Wouldn't "virtual void fnc() pure;" or "pure virtual void fnc();" be easier to grasp?

                  How about "unimplemented"? Why try to come up with witty synonyms when there's a perfectly accurate word in the English language already? Especially since "pure" already has a completely different meaning in relation to functions: it's a function that has no side effects and returns a value that depend

                • After some unobjectionable stuff (except that I wouldn't specify exactly four engines in an airplane), you misunderstand a pure virtual function and an abstract base class. A pure virtual function can have an implementation (it just isn't automatically used), and an abstract base class doesn't need to have all functions pure virtual (sometimes there's reasons to have standard implementations of some but not all functions). I've never heard anybody complain that "= 0" was really confusing; if they know wh

                  • I wouldn't do engines[4] IRL, but, c'mon, this is slashdot. It's hard to post meaningful code fragments using what they provide. Would engines[NENG] be less objectionable, even if I hadn't defined NENG?

                    The whole point of "= 0" is that it came from a time in C++ when adding new keywords was eschewed because C++ wasn't fully adopted and the more new keywords used, the more places it would blow up C code that was being ported. For example, I do believe I had a function called "new" and when I recompiled the

                    • I don't make arrays anymore unless I really have to. Unless there was a good reason not to, I'd use a std::vector instead of an array.

                      C++ started out as C with Classes, and then developed into its own language. It's not just "nowadays". BTW, if I want to know if a copy is deep or not nowadays, I look at the copy constructor and/or copy assignment operator. I don't see that examining what the compiler spits out is any more convenient.

                      I'd say that "= 0" is more readable than "+++", and it seems to fi

            • Let's see.

              If you want to write a constructor or destructor that returns nullptr rather than throwing in C++, use "(nothrow)". You can normally avoid throwing exceptions, and many compilers have "no exceptions" as an option. C++ is just as suitable for the "dirty jobs" as C is, and object orientation is a lot easier in C++ (I've done both).

              Your rant on "new" is by somebody who didn't understand what he was saying. void * is indeed a hole in the type system, and even in C its use is very limited. You

              • The rant on new (the stanford paper) was not mine. And, it was about new being an operator instead of a function. BTW, I've been programming in C for 35 years (+ 10 before doing C). I haven't seen malloc use char * in at least 15. And why does one need to use std::unique_ptr to force C++ not to be "cute"?

                The RTTI is disallowed at Google and C++ is their goto language. It's also slow. There was a recent usenix paper https://www.usenix.org/confere... [usenix.org] that has a CaVer tool for detecting bad downcasts.

                • std::unique_ptr isn't to solve a purely C++ problem; it solves a C problem by ensuring that there are no memory leaks or double freeing or use after free. If you have to get rid of the memory now, without waiting until the end of the block, that's what the .reset() member function is for. I didn't say that the "new" rant was yours, but you linked to it, and it was clearly by somebody who didn't understand C++ well enough. There's lots of that going on for lots of different programming languages, which i

    • by El_Muerte_TDS ( 592157 ) on Sunday August 23, 2015 @06:11AM (#50373151) Homepage

      > java usage has increased at GitHub, but this more likely reflects greater adoption of GitHub by the business community.

      Not to forget that Google Code is closing, Codehause closed, SF.net becomes more shit every day. They housed a lot of Java projects, and they are moving to alternatives like GitHub.

    • >ruby has declined

      because the fad is going away. I have seen the signs of decline of popularity of it in many places.

      There other ways to measure (same ballpark questionable, I have to admit)

      https://www.google.com/trends/... [google.com]

    • by kervin ( 64171 )

      And isn't the business community part of "programming trends"? And hence should be included?

      java usage has increased at GitHub, but this more likely reflects greater adoption of GitHub by the business community.

      I can't understand the resistance to give Java credit here. It's one of the most successful modern programming languages and entirely open-sourced.

    • by Tablizer ( 95088 )

      Java usage has increased at GitHub, but this more likely reflects greater adoption of GitHub by the business community.

      I would suspect it has more to do with Android apps. It will be interesting to see if Oracle's legal games change that.

  • Odd (Score:2, Funny)

    by Anonymous Coward

    What, no COBOL?

    • LOL. I do find Ruby's position surprise. It outranks Python and all three C-derived languages! Where do they teach this stuff? Certainly not in school, where C rules. (I can understand the lowly position of HTML, which while probably the most popular computer language ever is too basic to be worth a Github.)
      • The Ruby community was one of the first groups of people who noticed github. That's why there's so much Ruby.
    • What, no COBOL?

      You meant that humorously but there is evidence [slashdot.org] it's star is on the rise.

  • Programming? (Score:5, Insightful)

    by lorinc ( 2470890 ) on Sunday August 23, 2015 @05:53AM (#50373121) Homepage Journal

    If it is about programming, then why are CSS and HTML along the list? These are rendering languages...

    • Re: (Score:3, Insightful)

      Hey, hey, hey: everyone gets a participation trophy, mister.
      We don't want anyone feeling diminished because their specialty is not considered "programming".
      More seriously, especially with CSS, the capacity to design something that doesn't look like a mud fence is a substantial skill.
      That is: don't discount the work just because it executes subjectively in the mind of a user. You want to know where the sale is made? It sure ain't in the elegance of the design patterns buried in the server code.
      • by Viol8 ( 599362 )

        "More seriously, especially with CSS, the capacity to design something that doesn't look like a mud fence is a substantial skill."

        So is riding a unicycle while juggling. That doesn't make it a programming language.

        If CSS ever supports logical, mathematical and iterative operations then maybe it deserves to be on this list. Until then - no.

        • Re:Programming? (Score:4, Informative)

          by serviscope_minor ( 664417 ) on Sunday August 23, 2015 @01:09PM (#50374529) Journal

          HTML plus CSS is Turing compete.Someone proved that by implementing rule 110. Quite astonishing, but they're you go.

          http://lemire.me/blog/archives... [lemire.me]

          • Just because something is Turing complete doesn't mean I would want to program in it. I would rather use HTML5 + CSS3 for the purpose they were designed for (rendering web pages), and use a proper language to program the backend.

            OTOH, I agree with putting HTML & CSS on the Github's top 10 list, since it takes skill & practice to develop in those as much as in a conventional programming language.

            • Just because something is Turing complete doesn't mean I would want to program in it.

              Oh gosh no. But I think "Turing complete" is the only objective definition of a programming language I can actually think of. Befunge, Intercal, Brainfuck and ahem sed are all programming languages, but one wouldn't want to program anything in any of the first three (and anything but some simple text substitutions in the case of sed) except for fun.

              HTML+CSS certainly earns the classification of "Turing Tarpit".

        • Not hating on your comment but I'm going to toss out less and sass/sass script. Additionally CSS does support matching syntax, mathematic operations like every even/odd/nth selection, and has a pretty diverse query notation. So that said, not saying that qualifies it as whatever someone says is a "programming" language, but CSS has come quite a way from what a lot of people think CSS does. So just so we're clear, I'm not disagreeing with you here, just augmenting the idea of CSS here.
      • by lorinc ( 2470890 )

        Making beautiful interfaces is a very valuable skill, of course. But it still isn't programming. It's like you're making a list of top flowers and you rank tomatoes 6 in that list. That doesn't make any sense.

    • Because:
      a) lots of stuff hosted on GitHub is HTML
      b) the guys making such graphs don't know the difference between a programming language and a mark up language
      Stop bitching and deal with it ;D

      If it was an article comparing languages regarding programming, I would agree with you!

    • Because they are both used with API compliant software to accomplish specific computer behavior, including I/O, programmed operations, and back end integration with style guides, QA verification, and clear functional success of the computer application if misused or if ocrrectly implemented. They may not be Turing complete and able to compile their own interpreters written in their own language as source code, but they're certainly "languages" as far as listing them on a resume or planning training are conc

    • Re:Programming? (Score:5, Interesting)

      by Gondola ( 189182 ) on Sunday August 23, 2015 @10:06AM (#50373683)

      Next up: the TXT, NFO, INI, and CSV programming languages!

      • by ADRA ( 37398 )

        A CSV based scripting/DSL language could actually be viable, though terribly ugly. Admitedly HTML & CSS are arguable. You can write some pretty elaborate selectors in CSS, but I'd still consider it a declarative markup over a language. Its probably just a conspiracy to keep bash outside the top 10!

    • HTML+CSS is turing complete
      http://lemire.me/blog/archives... [lemire.me]

    • by NBarnes ( 586109 )

      My understanding, though I haven't looked into it myself, is that CSS is Turing-complete.

  • Javascript copies (Score:5, Informative)

    by Meneth ( 872868 ) on Sunday August 23, 2015 @06:04AM (#50373141)
    I think Javascript may have had its ranking artifically inflated due to all the libraries people copy into their own repos, like jQuery and Bootstrap.
  • by Viol8 ( 599362 ) on Sunday August 23, 2015 @07:44AM (#50373247) Homepage

    They're page layout and style description languages, NOT programming languages. They have no place on this list. Otherwise you might just as well include troff & latex too.

    • by DamonHD ( 794830 )

      LaTeX is astonishingly versatile (as evidenced by the underlying TeX \primes demo macro for example) and I spent way too much time 'coding' in it to make my thesis look pretty for example.

      And plenty of non-imperative computer languages still require skills of scope and data design etc etc, from Prolog through SML to any of the functional languages, never mind the JS/HTML/DOM/CSS nexus.

      So I think you protest too much.

      Rgds

      Damon

      • LaTex is horrible for programming in. Painful does not even begin to describe the experience. But LuaLaTeX is different - it allows you to script using Lua thereby making what used to be horrible, feasible. Very useful for automatically generating tables based on external data.
  • There is a possibility that the early adopters of GitHub just randomly happened to be using particular programming languages. One needs to see the number of users/projects along side this ranking plot.

    This relates to the evolutionary process of random drift, and in particular to one manifestation of it known as the founder effect.
  • by Anonymous Coward

    I found it very interesting that 9 of thr 10 top languages are interpreted rather than native code labguages. That seems to indictate a strong focus on the part of the projects/people who use GitHub.

    • by Anonymous Coward
      That's because many of them are toy/easy-access languages, and GitHub has a lot of "look ma, I'm a coder too" users.
    • Both C++ and C are on the list, and both are native languages unless we're talking about C++/CLI. And then Java and C# are compiled to an intermediate language and run on a VM, not really interpreted. So you have 6/10 really. Which is quite a bit, but not nearly as much as 9 out of 10 makes it out to be.
  • by tomhath ( 637240 ) on Sunday August 23, 2015 @09:30AM (#50373525)
    All this shows is a count of github projects by language. I expect that the vast majority of those projects were created by people trying to learn a language by working through tutorials. It would be more useful to display languages by number of downloads or something like that, so we could see what languages are actually being "used" rather than what languages self-taught programmer wannabes are trying to learn.
    • by msobkow ( 48369 )

      Why would somebody post tutorial code to Github? That makes absolutely no sense...

      • by Anonymous Coward
        Posting AC due to mod points: I'm someone who has spent a lot of time on websites like Project Euler and Code Eval practising and learning new concepts regarding the programming languages that I'm learning, Code Eval for instance with their problem sets has taught me a lot about pointers, malloc, FILE pointers, mmap and so on in C. I have been considering lately uploading my solutions to github in a private repo because I rely on multiple operating systems, hard drives, machines and locations when using co
    • Well, that's depressing. Great languages like Ada, Algol, Pascal, Modula-2, and Logo, and in their place we have PHP and Javascript.

      • If it weren't for Borland, nobody would care about Pascal or have investigated further to find Modula*. Waste of time and effort.
  • by rnturn ( 11092 ) on Sunday August 23, 2015 @12:23PM (#50374269)
    Us old-timers always called HTML a markup language. Just what did the author think the "ML" stood for?
  • N/T

So you think that money is the root of all evil. Have you ever asked what is the root of money? -- Ayn Rand

Working...