Slashdot Mirror


IEEE Spectrum Declares Python The #1 Programming Language (ieee.org)

An anonymous reader quotes IEEE Spectrum's annual report on the top programming languages: As with all attempts to rank the usage of different languages, we have to rely on various proxies for popularity. In our case, this means having data journalist Nick Diakopoulos mine and combine 12 metrics from 10 carefully chosen online sources to rank 48 languages. But where we really differ from other rankings is that our interactive allows you choose how those metrics are weighted when they are combined, letting you personalize the rankings to your needs. We have a few preset weightings -- a default setting that's designed with the typical Spectrum reader in mind, as well as settings that emphasize emerging languages, what employers are looking for, and what's hot in open source...

Python has continued its upward trajectory from last year and jumped two places to the No. 1 slot, though the top four -- Python, C, Java, and C++ -- all remain very close in popularity. Indeed, in Diakopoulos's analysis of what the underlying metrics have to say about the languages currently in demand by recruiting companies, C comes out ahead of Python by a good margin... Ruby has fallen all the way down to 12th position, but in doing so it has given Apple's Swift the chance to join Google's Go in the Top Ten... Outside the Top Ten, Apple's Objective-C mirrors the ascent of Swift, dropping down to 26th place. However, for the second year in a row, no new languages have entered the rankings. We seem to have entered a period of consolidation in coding as programmers digest the tools created to cater to the explosion of cloud, mobile, and big data applications.

"Speaking of stabilized programming tools and languages," the article concludes, "it's worth noting Fortran's continued presence right in the middle of the rankings (sitting still in 28th place), along with Lisp in 35th place and Cobol hanging in at 40th."

14 of 372 comments (clear)

  1. I tried Python by QuietLagoon · · Score: 1, Insightful

    The number of spaces preceding a statement determines the scope of that statement? Wow. That seems totally nonsensical to me.

    1. Re:I tried Python by Herkum01 · · Score: 5, Insightful

      After using it, it is eh, not a big deal. You indent the same amount for everything in the block, which you are probably doing most of the time anyways. It is their little cheat around not having block delimiters.

      If you need to a pick a reason to not like Python, this is not it.

    2. Re:I tried Python by Anonymous Coward · · Score: 2, Insightful

      But it causes confusion when cut and pasting. You cannot audo-indent like you can in a { } bounded language, because there is no semantic information from the syntax, only from the spacing.

    3. Re:I tried Python by Billly+Gates · · Score: 3, Insightful

      These surveys are strictly for idiots. For example (to use one of the data sources in the article), information drawn from what recruiting companies say they are looking for are complete garbage, as anyone who has spent much time here knows. Some recruiters are just trolling for new applicants to add to their slushpile, some are adding stuff that's totally irrelevant to the underlying job so that their candidate will look more well-rounded, some are bogus posts to supply HR with practice interviews, some are just posted as a way to be able to say "we looked for expertise in x and y before we hired an H1B (who doesn't know x or y, but it's rarely investigated) ".10 years experience in Java 9 or Windows 10? 5 years experience with Red Hat linux 7.3? We've all seen these shit listings, the same as we've seen the same job suddenly pop up from a dozen different recruiters. It doesn't mean they're looking for 12 people with that experience.

      GIGO still applies.

      It still is relevant. As much as WE HATE HR they are the gatekeepers. Actually they are nto the gatekeepers. Taleo is the gatekeeper and SEO in LinkedIn and abunch of software programs are. They do the work so companies can be lazy and not have to do their job.

      If you do not have that experience you will not be interviewed. That is a fact as your score will be below X and the application will be rejected and HR won't even know you applied.

      Part of the problem isn't that they are bogus. It just that HR is incompetent and fall for the salespeople in Taleo who tell them software picks candidates for YOU, not it is there to assist you. Scenario one you need a SAP jr financial analyst assistant who can run reports?

        They ask the IT manager and finance manager. IT manager says yeah it uses SQL Server on the backend etc ... BOOM 5 years of SQL Server administration is now required. HR wants to make sure you know office ... BOOM 5 years Excel macro programming experience required. Now add a shitty HR filter app like Taleo and it generates a job description:
      -5 years SQL Server administration experience
      -3 to 5 years of Excel financial analysis programming in VBA
      - 3 to 5 years of actually doing SAP reports (part of the job that is important)
      - Mentions $15/hr because that is net worth of a college kid in accounting as it is a JR. level assistant.

      Taleo reports none are q ualified. CEO lobbies senator. They important an Indian H1B1 visa who meets these requirements as no American can do the job and whines how could this happen? etc.

      So my guess is some positions do prototyping in python. The HR software now requires 5 years of python coding and you get filtered out if you do not have it even if the position is really a java developer etc.

      Anyway done with rant :-)

  2. Lingua Franca by 0100010001010011 · · Score: 4, Insightful

    Python has hit critical mass in both popularity and tools available. C, C++, Java, Perl and anything else the average /.er is going to complain about going anywhere just like FORTRAN and COLBOL haven't.

    XKCD hit the nail on the head. It's something easy enough for middle schoolers to grock and powerful enough to use with TensorFlow. It's our office's go-to language for "I need this task done". It's basically BASIC where you can import math (numpy), plotting (matplotlib), neuralnetwork (TensorFlow) and other packages.

    Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%.".

    You can knock out something in 30 minutes in Python that would take longer in anything else and the performance difference isn't worth doing it in something else.

    1. Re: Lingua Franca by corychristison · · Score: 4, Insightful

      You can knock out something in 30 minutes in Python that would take longer in anything else and the performance difference isn't worth doing it in something else.

      In reality this could be said of most scripting languages, including PHP, JavaScript, Bash, etc.

  3. Re:Ugh. by 0100010001010011 · · Score: 3, Insightful

    * It's a scripting language.

    And Michaelangelo just had a brush.

    Lets compete to complete the average task in most offices. You do it in Assembly, I'll do it in Python and we'll see who is done first and gets the most work done in a year.

    It's a massive leg up from VBA and just Excel equations while being as easy as BASIC to learn.

  4. What are they? by Gravis+Zero · · Score: 3, Insightful

    combine 12 metrics from 10 carefully chosen online sources to rank 48 languages

    What metrics are they and which online sources were used? If you're going to make such an assertion then why not explain or link to the details?

    To me, it sure sounds like a list of the most problematic languages combined with the number of people who use them.

    --
    Anons need not reply. Questions end with a question mark.
  5. Perl by hattable · · Score: 4, Insightful

    How I miss thee.

    --
    OMG facts!
  6. Understood by Snotnose · · Score: 3, Insightful

    Python rocks. I love it. I've written 2-3 major apps in it over the last 15 years. That said, using spaces for block definition is brain dead. Seriously. I know I'm gonna get flamed for this but, whatever.

    tldr; Python is a great language with one huge fucking hole. When tabs vs spaces change the way a program runs, something is wrong. Yeah, I know you can tell your editor to change tabs to some random spaces, but still.

    When I find code for SomethingIReallyWouldLike, and it Doesn'tFuckingWork, and I find out FuckwitUsed2CharacterTabs, then something is broken. Broken hard. Broken bad.

  7. Re:What does this do that Java does not? by Gojira+Shipi-Taro · · Score: 4, Insightful

    Not be owned by Oracle.

    --
    "Oh my God. This is terrible. This is the end of my Presidency. I'm fucked."; ~ Donald J. Trump
  8. Easy to read code by Roger+W+Moore · · Score: 1, Insightful

    The number of spaces preceding a statement determines the scope of that statement? Wow. That seems totally nonsensical to me.

    Any more than the presence of a curly bracket 42 lines earlier determines the scope of a statement in C++? I agree it seems strange at first but it is actually really easy to adapt to and by forcing correct indentation it actually makes code easier to read.

  9. Re:What does this do that Java does not? by serviscope_minor · · Score: 3, Insightful

    He is talking about junk languages like C++, which can only handle crude reference counting.

    Nope. There have been "proper" GC solutions for C++ for ages, like the Bohem collector which do work. You can also write GC in C++: I watch a talk (Herb Sutter?) on writing a GC smart pointer type. So if you really really need GC, you can have it.

    OTHO it's rarely necessary because C++ produces very little garbage. About the only situation poorly handled by smart pointers is mutable general graphs. I've never actually had cause to use one of those.

    --
    SJW n. One who posts facts.
  10. #1 in POPULARITY by cjonslashdot · · Score: 3, Insightful

    "Popular" != "Best"

    Also, one should choose the right language for the task. The right language for a small office task is not usually the right language for a scalable microservice. E.g., Google discovered long ago that if an app written in Ruby or Python requires 100 servers to meet demand, but the same app written in C++ or Go requires only ten servers, then there is a substantial cost difference. (Although Go is quite terrible for maintainability - do a Google search for "Go gotchas".)

    Ignore popularity. Make your own choices.