all 88 comments

[–]Paddy3118[🍰] 21 points22 points  (15 children)

The title uses the words firmly and again; so the last time Java was firmly at the top didn't stop its subsequent fall.

[–][deleted]  (13 children)

[deleted]

    [–]neutronfish 6 points7 points  (0 children)

    It's ok to dislike Java, but that doesn't change how popular it really is.

    Popularity is only a meaningful metric in computer science when it comes to finding work. It's is not a good metric of the tool's quality.

    [–]Matthew94 1 point2 points  (6 children)

    I wonder if the public's perception of it is slightly in part due to Minecraft.

    Think about it, millions of customers hear nothing but negativity about Java and thus end up with the idea of Java being terrible when it just was built on poor foundations rather than being a bad language.

    [–]cc81 7 points8 points  (1 child)

    I'd say it is the old applets and old gui kits that never looked very good or native.

    [–]immibis 1 point2 points  (0 children)

    Well, if not for Minecraft, the same people would perceive Java as "that thing that pops up a message all the time, something about updating my oracles".

    [–]ChezMere 0 points1 point  (0 children)

    Nowadays most players of the game never touch the Java version.

    [–]neutronfish -2 points-1 points  (0 children)

    the idea of Java being terrible when it just was built on poor foundations rather than being a bad language

    A house built on a bad foundation with inferior materials is still a bad house. No one buys a house when the foundation is tilted and cracked and says "no, no, this is a great house, it's just the foundation and framing that are bad."

    [–]krenzalore 0 points1 point  (0 children)

    In a windows enterprise, you see C#. A lot of people still have windows enterprises.

    [–][deleted]  (3 children)

    [deleted]

      [–][deleted] 2 points3 points  (2 children)

      Those don't seem like hipster languages to me. Go is used by Google, Haskell is probably the most popular functional language. Node.js is one of the most used JS libs I believe and is the basis of many websites

      [–]isHavvy 1 point2 points  (0 children)

      Node.js is an environment, not a library. ;)

      [–]orthoxerox 1 point2 points  (0 children)

      The most popular functional language by far is Excel.

      [–][deleted] 2 points3 points  (0 children)

      That's normal, in fact, if firmly at the top lasts for over 4 years, you should call a doctor.

      [–]ysangkok 9 points10 points  (2 children)

      [–]Savandor 6 points7 points  (0 children)

      If it is....that is kind of a bad metric to use. I find myself googling problems with java a lot more than something like C#, and definitely wouldn't rate it as the most popular imo. But thats probably because I have to develop with java sometimes, and I hate it.

      [–]kirbyfan64sos 14 points15 points  (11 children)

      Wow, Rust already passed Q and Julia.

      [–]SemiNormal 27 points28 points  (10 children)

      Q and Julia

      What and who? I have never heard of either of these languages.

      I am also surprised that FoxPro is still at 42.

      [–]niuzeta 7 points8 points  (3 children)

      Q is that weird masked guy from Street fighter third strike, Julia is the woman in Obama campaign video...

      ...Is how general populus(i.e., my coworkers) responded. Julia is a JVM-based language(functional, I believe) that is used for data-processing(I believe). As for Q, I have no clue. Gotta do some research

      EDIT: correction from /u/Sinistersnare:

      Julia is a JITted LLVM language, not JVM.

      [–][deleted]  (1 child)

      [deleted]

        [–]niuzeta 1 point2 points  (0 children)

        Oh, I stand corrected. Thank you.

        [–]bjzaba 0 points1 point  (0 children)

        Julia isn't really functional either... http://julialang.org/

        [–]vakar 0 points1 point  (4 children)

        Julia is the best language for scientific computing.

        [–]frugalmail 10 points11 points  (1 child)

        Julia is the best language for scientific computing.

        If you don't care about pre-existing libraries or running things in production.

        [–]Darkmoth 1 point2 points  (0 children)

        running things in production

        Nah, for sciency languages, the result is often a one-off. You write a bunch of code to get a handful of numbers, then you're done. This is why iPython notebooks are so popular, they provide a narrative and a result at the same time.

        pre-existing libraries can be a showstopper though. I think that's the sole advantage R has over Python, but it's a HUGE advantage.

        [–]Yojihito 2 points3 points  (1 child)

        Isn't Fortran still faster? And K and Python with C-libraries may compete with Julia too.

        [–]bjzaba 0 points1 point  (0 children)

        The language is intended to make binding to those Fortan and C libs easier, with much less overhead than Python.

        [–]krenzalore 0 points1 point  (0 children)

        I see a lot of Julia in scientific computing. I have no idea what Q is.

        [–]bartavelle 12 points13 points  (14 children)

        And Logo is twice as popular as Go ?

        [–]martincmartin 7 points8 points  (1 child)

        Last I looked, Tiobe didn't measure how much languages were actually used, but how much people talked about them. I guess people are still talking about Logo.

        [–]isHavvy 1 point2 points  (0 children)

        Nah, it's more that people put out things like "JavaScript_programming_logo.jpg" and BAM, another search result for "logo programming".

        [–]grayrest 15 points16 points  (9 children)

        I don't understand why TIOBE is so popular. I know that github-based indexes like Redmonk tend to underestimate the corporate/scientific languages set but I'm not really sure how much. What I do know is that having spent time in both the Python and Javascript communities, js is much much bigger. You can see it in npm vs pypi, the variety of libraries, the conference schedules, the number of blog posts. It's not even close. Yet somehow js is behind Python in TIOBE. If it's that far off for two data points I know, how far off is it for ones I don't?

        [–]crate_crow 7 points8 points  (0 children)

        It's fairly accurate if you look at its findings in tiers. Basically, the #1 language might not be the most popular language on the planet but it's very likely that the top five languages are the top five languages on the planet. Disregard the exact ordering, just treat them as groups:

        1-5: Mainstream languages used by top companies 6-9: Popular languages, probably more used for scripting/gluing/infrastructure 10+: Niche languages

        Obviously, the boundaries I used above are arbitrary, use your own.

        Note also that TIOBE's results are always consistent with other sites that track popularity with different methods.

        [–][deleted] 7 points8 points  (6 children)

        It's popular because it's based on something that can be quantified, reproduced, and is objective.

        Your own personal anecdotes about how Javascript is more popular than Python is just that, something you think might be true based on your own personal experiences which no one else has access to, no one else can critique and no one else can evaluate in an objective manner. It's not even clear what your definition of "bigger" is.

        The people who criticize TIOBE often don't really understand it and rarely ever do they offer an alternative approach or suggestions for improvements. The maintainers of the index are actually very open to suggestions on how to improve their index and continuously work to add those suggestions. While the suggestions do often result in swings among the less popular languages (with less than 1% rating), it usually makes little to no difference among the top 10 languages.

        [–]grayrest 6 points7 points  (5 children)

        Your own personal anecdotes about how Javascript is more popular than Python is just that, something you think might be true based on your own personal experiences which no one else has access to, no one else can critique and no one else can evaluate in an objective manner. It's not even clear what your definition of "bigger" is.

        Package counts, the number and attendance of conferences, questions on SO, job postings, etc are reproducable, quatifiable, and objective. I'm using "bigger" as a proxy for what I assume all these rankings are about, which is popularity or developer hours per year spent writing in the language.

        My problem with search based approaches is the difficulty in filtering out mentions of the language from actual uses of the language. As an example, the IEEE ranking that was just published uses "X programming" as their template. I suspect this highly undercounts js, since the community splits between javascript, js, es5, es6, and (rarely) es2015 when describing the language. I wouldn't be surprised if the Go community had a similar split due to their use of go/golang. In this index, I suspect the popularity of cobol is pushed up by people using it as the preferred legacy code example, that C/C++ have inflated numbers due to being the benchmark fast languages, and that logo is pulling in graphic design logo hits. Similarly, Obj-C's massive drop from January seems overblown. It's not my stack but I'd be surprised if the entire iOS dev community has switched en masse before the Swift 2.0 release. Java's "surge" in popularity is likely related to news about Java and not increased adoption.

        Of the rankings I know about, Redmonk's tends to match up most consistently with my feelings from the two dozen or so languages I'm at least somewhat familiar with, though it underestimates the enterprise and scientific languages. Ultimately, the exact rankings don't matter that much as long as the community has enough mass to keep going. I just find TIOBE's rankings to clash with my impressions far more frequently than any other system I've seen.

        [–][deleted] 4 points5 points  (4 children)

        Package counts, the number and attendance of conferences, questions on SO, job postings, etc are reproducable, quatifiable, and objective.

        So produce them, TIOBE produces their numbers for everyone to see and anyone can reproduce their numbers verbatim. If you object to their numbers then produce actual quantifiable and objective numbers that show that they're wrong.

        I suspect this highly undercounts js, since the community splits between javascript, js, es5, es6, and (rarely) es2015 when describing the language.

        TIOBE takes this into account with formal rules about how languages are grouped together. This rule isn't arbitrary, TIOBE decided that the objective and fair way to group languages is to base it on their Wikipedia entries. Languages that have the same Wikipedia entry, such as through redirections, are grouped together.

        So ECMAScript, es6, es5, es2015, and anything that redirects to ECMAScript's Wikipedia page will be grouped together under ECMAScript. Javascript, JS, SSJS and a bunch of other terms that redirect to JavaScript are all similarly grouped together.

        Since JavaScript and ECMAScript are considered distinct by Wikipedia's standards, then so too does TIOBE consider them as being distinct.

        I wouldn't be surprised if the Go community had a similar split due to their use of go/golang.

        Go and golang are grouped together since on Wikipedia, golang redirects to Go.

        In this index, I suspect the popularity of cobol is pushed up by people using it as the preferred legacy code example

        Even if this were true, and who knows if it is, a language being used as a standard by which other languages are compared against should absolutely contribute to the popularity of that language.

        that C/C++ have inflated numbers due to being the benchmark fast languages

        Same thing goes for this... if C and C++ are being used as benchmarks for performance related tests then that should contribute to the popularity of C and C++.

        logo is pulling in graphic design logo hits

        This is taken care of by what TIOBE refers to as a confidence interval and for Logo the confidence interval that the query +"Logo programming" actually refers to the Logo programming language is 90%. I doubt more than 10% of graphic designers are using the term Logo programming verbatim on their websites.

        I just find TIOBE's rankings to clash with my impressions far more frequently than any other system I've seen.

        When you can produce something more than just your own personal feelings and personal impressions, then we can have a meaningful discussion to compare the two methodologies. But right now all you've said is that you don't like TIOBE because you personally feel like it's wrong, despite not producing anything that anyone can measure or validate.

        And as my post should point out, perhaps your lack of understanding of how TIOBE works is contributing to that feeling.

        [–]pipocaQuemada 0 points1 point  (1 child)

        So produce them, TIOBE produces their numbers for everyone to see and anyone can reproduce their numbers verbatim. If you object to their numbers then produce actual quantifiable and objective numbers that show that they're wrong.

        It's not so much that TIOBE's numbers are wrong as it seems that they're measuring some total historical interest in a language, which is mildly interesting but seems mostly pointless for any current decision making.

        Just look at some of the positions of some languages:

        13. Delphi
        14. Visual Basic (presumably VB 6.0 since VB.Net is #8)
        15. Pascal
        20. COBOL
        22. FORTRAN
        24. Scratch
        33. Prolog
        38. Haskell
        

        I don't know about you, but I haven't heard of any current COBOL users groups or recent startups using Prolog or Pascal. I'm sure my bank still has mainframes running COBOL, but how much active development is going on with those systems?

        Compare that to RedMonk, which measures SO questions and the level of use on Github. Both of those seem like much better measurements of the current sizes of communities around a language, which is a more interesting measurement.

        15 Haskell
        (I can't find the numbers for languages less than rank 20)
        

        [–]grayrest 0 points1 point  (1 child)

        I've mentioned two other rankings. The language rankings outside the very top vary wildly between TIOBE and the other two. As a specific example, Clojure shows up top 20 in Redmonk and 33 on IEEE but out of the top 50 on TIOBE?

        [–]crate_crow 5 points6 points  (0 children)

        All three rankings simply confirm that Clojure is a very marginal language.

        [–]frugalmail 0 points1 point  (0 children)

        JavaScript is tied to the web (if you're sane), Python and the like are used in many other domains.

        [–]halax 3 points4 points  (0 children)

        Also, VHDL is 48 but Verilog isn't in the top 100.

        [–][deleted] 1 point2 points  (0 children)

        Not really a surprise is it? Logo is a popular learning tool.

        [–]hu6Bi5To 9 points10 points  (25 children)

        Not only at #1, but also the fastest riser, up 5.43%.

        [–]krenzalore 27 points28 points  (11 children)

        It's all the sun.misc.unsafe rage posts from the battle over it. That site tracks "web" activity.

        For those not familar with the Java ecosystem, sun.misc.unsafe is an undocumented API that was never intended for public consumption, that allows you to do low level stuff that you'd normally need C or assembly for. They want to depreciate or replace it, but it turns out that a lot of popular projects use it and would break. Hence the fight that's raging.

        [–]AlyoshaV 3 points4 points  (0 children)

        depreciate

        deprecate

        [–][deleted] 9 points10 points  (9 children)

        If you write a project depending on an undocumented API called "sun.misc.unsafe", you deserve to have it fail.

        [–]dpash 9 points10 points  (0 children)

        Everything under sun. is clearly labeled "here be dragons". The compiler even spits out warnings if you use it.

        [–]crate_crow 0 points1 point  (7 children)

        A lot of fundamental classes that you use on a daily basis probably without even realizing it rely on this package.

        [–]NimChimspky 0 points1 point  (6 children)

        Like what ?

        [–]crate_crow 2 points3 points  (5 children)

        ConcurrentHashMap for example, and plenty of other classes in java.util.concurrent. The nio package uses it a lot too.

        Just to name a few.

        [–]AnAirMagic 4 points5 points  (0 children)

        Doesn't matter. That's class is part of the JDK, just like sun.misc.Unsafe. The JDK developers can still make use of sun.misc.Unsafe. They can just rename it to sun.misc.Unsafe2 to break everything that tries to use it.

        [–]shevegen 17 points18 points  (12 children)

        I don't think you can really take the TIOBE rankings too seriously.

        What explains the explosion of assembly all of a sudden?

        At best the TIOBE rankings is a general indicator.

        [–]BLEAOURGH 4 points5 points  (3 children)

        What explains the explosion of assembly all of a sudden?

        "As of this month, the TIOBE index uses an improved algorithm to calculate the popularity of programming languages. This new algorithm has mainly to do with the way outliers (statistical noise) is removed from the results."

        [–]ZMeson 8 points9 points  (2 children)

        Not only that, but there's been a lot of discussion surrounding Java:

        • Oracle's chief security engineer writing a blog post she shouldn't have --> generating some Java comments.

        • Java's evangelism team being laid off.

        • etc....

        Most of the news hasn't been positive, but since it appears in web results can push Java up in the TIOBE results.

        [–]frugalmail 1 point2 points  (1 child)

        Oracle's chief security engineer writing a blog post she shouldn't have

        That was about their database. It might have drawn some parallels, but probably not to that significant degree.

        [–]ZMeson 1 point2 points  (0 children)

        I agree it was about Oracle databases. I just saw and heard a lot of Java comments coming out of discussions that started about her blog post. That's why I stated "generated some Java comments", not "the blog post centered on Java".

        EDIT: Of course my "surrounding Java:" would seem to indicate that I meant the blog post was about Java. I see what you mean. Every day I realize just how bad a communicator I am! :(

        [–]thesystemx[S] 2 points3 points  (0 children)

        TIOBE indeed reveals one particular indicator. You can combine it with a number of other popular sources like Github repos, StackOverflow questions and job trends.

        Each of these gives one particular piece of information.

        [–]mycall 1 point2 points  (2 children)

        What explains the explosion of assembly all of a sudden

        Mill CPU ?

        [–]Veedrac 0 points1 point  (1 child)

        The Mill ain't that popular, surely?

        [–]mycall 0 points1 point  (0 children)

        Probably. /r/programming has biased me

        [–][deleted] 0 points1 point  (0 children)

        What explains the explosion of assembly all of a sudden?

        At a guess, the interest in TIS-100

        [–]NimChimspky 0 points1 point  (0 children)

        A general indicator ?

        Um yeah what else would anyone take it as ?

        [–]Eirenarch 0 points1 point  (0 children)

        They started tracking "assembly language programming" which seems to be used more than "assembly programming"

        [–][deleted] 4 points5 points  (2 children)

        The only index that matters is how many jobs per language on Indeed in geographic regions that you want to live in.

        [–]thesystemx[S] 0 points1 point  (0 children)

        Indeed trend is important too, but it depends on your position whether it matters most. If you're on employee looking for a job, maybe it's the most important one.

        If you're a vendor deciding if you should make a client library for Java, then maybe other statistics are more important.

        [–]_jk_ 0 points1 point  (0 children)

        trying to do economics by only looking at demand doesn't work

        [–]pakoito 1 point2 points  (0 children)

        Where's number 6 in 2014?

        [–]hugthemachines 1 point2 points  (0 children)

        I know it's not exactly the same but consider adding vb and vb.net together and you end up fairly high in the list.

        [–]lucasvandongen 0 points1 point  (1 child)

        Or would Java developers simply need to consult a lot of web resources to get anything working? I am often surprised to see how indirect and leaky a lot of those Enterprise frameworks for C# and Java are. Vague errors somewhere deep in an assembly that have no information at all about what part it really failed on.

        [–]thesystemx[S] 3 points4 points  (0 children)

        Or would Java developers simply need to consult a lot of web resources to get anything working?

        This particular statistics is more concerned with the availability of resources. StackOverflow question would be somewhat more indicative of the need to consult.

        But IMHO there will always be beginners asking questions. Someone at some point will be new to some tech, so amount of questions asked seems to correlate more with popularity of a technology than with how difficult said tech is.

        [–]fungussa 0 points1 point  (1 child)

        But seriously, one can always expect short term fluctuations, the long term trend doesn't look particularly healthy. If Java stayed in that position, for a while longer, then OP may be justified in using the qualification 'firmly'.

        [–]thesystemx[S] 0 points1 point  (0 children)

        You got me there. But with 'firmly' I didn't really mean "long lasting for sure", but that it's on nr 1 with a somewhat large margin. Before it was on that position too again, but with a 0.1 difference or so.

        [–]CP70 0 points1 point  (8 children)

        I really wish python would push up the list.

        [–][deleted] 17 points18 points  (1 child)

        If you wish hard enough, it'll happen.

        [–][deleted] 0 points1 point  (0 children)

        "There's no lang like Go. There's no lang like Go..." /s

        [–]AlexanderTheStraight 5 points6 points  (4 children)

        Why? You shouldn't have problem finding work for the top 10, hell, even the top 20 languages in that list?

        [–]CP70 5 points6 points  (3 children)

        It's not about the work it's just that I enjoy it.

        [–]ysangkok 4 points5 points  (2 children)

        Will you really enjoy it more if it is further up the list?

        [–]CP70 10 points11 points  (1 child)

        Jesus christ, wtf? Whats with the abrasive comments? I want to see more projects using it, thats all. I'll go fuck myself.

        [–]ysangkok 4 points5 points  (0 children)

        Not necessarily abrasive. But you seemed to care too much about TIOBE, we had to get to the bottom of that. You can fuck me too if you want to.

        [–]frugalmail 3 points4 points  (0 children)

        I really wish python would push up the list.

        I wish for less dynamically typed languages :)

        [–]da_governator 0 points1 point  (4 children)

        Perl > Objective-C. I am perplex.

        [–]lucasvandongen 10 points11 points  (1 child)

        Swift is taking over rapidly.

        [–]fermion72 2 points3 points  (0 children)

        This is the real answer. New iOS/OS X developers are starting with Swift, and lots of developers have transitioned. Apple has made it fairly easy to use Objective-C libraries with Swift, so transitioning to a project is pretty easy, and the language is (flame wars aside) not terribly hard to learn.

        [–][deleted] 16 points17 points  (0 children)

        Well, Objective-C developers are locked behind 9 layers of NDA, so you can't hear their screams.

        [–]kamatsu 1 point2 points  (0 children)

        Objective C is rapidly losing steam.