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

 



Forgot your password?
typodupeerror
×
Programming Technology

The 2018 Top Programming Languages, According To IEEE (ieee.org) 192

New submitter rfengineer shares a report: Welcome to IEEE Spectrum's fifth annual interactive ranking of the top programming languages. Because no one can peer over the shoulders of every coder out there, anyone attempting to measure the popularity of computer languages must rely on proxy measures of relative popularity. In our case, this means combining metrics from multiple sources to rank 47 languages. But recognizing that different programmers have different needs and domains of interest, we've chosen not to blend all those metrics up into One Ranking to Rule Them All. [...] Python has tightened its grip on the No. 1 spot. Last year it came out on top by just barely beating out C, with Python's score of 100 to C's 99.7. But this year, there's a wider gap between first and second place, with C++ coming in at 98.4 for the No. 2 slot (last year, Java had come third with a score of 99.4, while this year its fallen to 4th place with a score of 97.5). C has fallen to third place, with a score of 98.2.
This discussion has been archived. No new comments can be posted.

The 2018 Top Programming Languages, According To IEEE

Comments Filter:
    • Re: (Score:1, Interesting)

      by Anonymous Coward

      No.

      Yeah, no shit .. let's make whitespace significant and other dumb things.

      I first saw Python about 15 years ago, and immediately thought "what the hell were the people who designed this shit smoking?"

      The quality of the fanboi's I've encountered since has done little to change my mind. I've never understood the appeal other than lazy people can write a bad demo in a few hours.

      • Re: (Score:3, Insightful)

        by Faluzeer ( 583626 )

        Every time that Python is mentioned someone raise the point about whitespace. Yes it is annoying when first learning the language, but within a few hours you have totally forgotten about it. Python has other issues, but whitespace is the one people always initially focus on, unless you are in the habit of cut and pasting code from any or every where without using discrete code blocks, then it really is not that much of an issue.

        • Re:Python? (Score:4, Insightful)

          by Littleman_TAMU ( 589126 ) on Thursday August 02, 2018 @11:56AM (#57056960)
          I disagree to a certain extent. Once you've set up your IDE, it's fine, but my main problem is that whitespace is significant. Why should I have to care how many indents there are? At least with C/C++ I can search for a '{' or '}'. You can't search for missing whitespace. Again, a well-set up IDE highlights and lines up brackets or whitespace, but whole concept is bad design in my opinion. For example, I like 2 spaces for tabs for tighter indentation, but I can't do that in Python because the language designers decided that 4 spaces is exactly right for everyone. That type of thing shouldn't be inherent in the language design. I do think Python gets a bad rap because it's so easy to use and so bad programmers don't have a high barrier to entry to writing their terrible code. In my experience, you can write good code in Python. There are many things it's not great at, but it's a useful tool.
          • Re:Python? (Score:5, Informative)

            by Layzej ( 1976930 ) on Thursday August 02, 2018 @12:12PM (#57057096)

            For example, I like 2 spaces for tabs for tighter indentation, but I can't do that in Python because the language designers decided that 4 spaces is exactly right for everyone

            That is not the case. 4 is recommended, but you can use any number of spaces in Python.

            • you can use any number of spaces in Python.

              Just hope that nobody who prefers tabs tries to use your code.

          • Re:Python? (Score:5, Insightful)

            by MSG ( 12810 ) on Thursday August 02, 2018 @12:27PM (#57057224)

            Why should I have to care how many indents there are? ... For example, I like 2 spaces for tabs for tighter indentation

            Nowhere a hint of irony. *sigh*

            You shouldn't have to care about indentation. And when there's a standard, you don't have to.

            Complaints about whitespace are literally the most superficial complaint about a language possible. And honestly, when people start in with complaints about whitespace, I know immediately that they aren't going to have anything of value to contribute.

            Arguing about how much your code should be indented is nothing more than bike-shedding. People express opinions about the things they understand. Arguing about indentation tends to illustrate the extent of your understanding.

          • For example, I like 2 spaces for tabs for tighter indentation, but I can't do that in Python because the language designers decided that 4 spaces is exactly right for everyone. That type of thing shouldn't be inherent in the language design.

            You can use however many spaces you want to indent with in Python, so as long as you are consistent. Unless you are one of those folks who indent using 4 spaces one minute, then 8, and then drop down to 2 just for the hell of it all within the same function, I can't see how this is that big of a deal.

          • Why should I have to care how many indents there are?

            "Why should I have to care how many braces there are? How many semicolons? How many equals signs?"

            Python has a single, unambiguous way of expressing block structure. Just like C. You have to care about it because it's part of the syntax.

            What it doesn't have is a redundant second way of expressing block structure.

            You can't search for missing whitespace.

            Imagine you're staring at an expression where you accidentally deleted the binary operator. Your code goes "a b" and you have forgotten if that was supposed to be "a + b" or "a - b" or "a * b". H

          • but my main problem is that whitespace is significant.

            Eh, I think there's two fundamental things that programming languages need to do:

            1) Help people understand them, and help people understand how to write proper code. "This is the way child".

            2) "Get the fuck out of my way, I'm getting shit done". Where the language does it's best to cobble together some productivity from whatever garbage you dump into it.

            C has this. Without the -Wall blocking your way, C gets stuff done. (and -Wextra [and -Wpedantic because we make million dollar systems that must not fail])

        • by PPH ( 736903 )

          unless you are in the habit of cut and pasting code from any or every where

          Or having to maintain code originally written by some idiot who doesn't follow your (obviously correct) dogmas of tabs vs spaces, tab stops, etc.

          • by unimacs ( 597299 )
            You can see that as a plus or a minus. With Python you'll have to adopt the style of the original code or change it all to match your new style. In another language you could have 3 different styles employed within the same file by the 3 different people who were responsible for maintaining it at one time or another.

            Which is worse?
            • by PPH ( 736903 )

              Which is worse?

              Catering to OCD.

              • by unimacs ( 597299 )
                Within our organization our style guidelines dictate that we follow the existing style rather than mixing styles so you're stuck catering to someone else's OCD whether it's Python or something else. What Python does is tell you when you've failed to cater properly. The other thing that it does is force those who wouldn't be otherwise inclined to make sure that their indentation matches what the code actually does.
                • by PPH ( 736903 )

                  force those who wouldn't be otherwise

                  Or, you know, you could use a language that didn't allow a bunch of crybabies to slip hidden logic bombs into their code in the first place.

            • by mark-t ( 151149 )
              Computers are very good at formatting code if formatting can otherwise be inferred by the syntactic content. Requiring programmers to spend even an iota of concentration doing something a computer can do automatically for them when they are just trying to get the goddamn program done is an utter waste of human resources.
            • I have had to use some files that were indented with 4 different settings for tab stops! I could tell because with each different tab stop a different section of code would suddenly become readable (ie, long continuation lines would line up). Tab stops would even change within a function, a nested loop would use a different tabstop than the outer loop. I have no idea how it managed to get into that state in the first place other than a lack of a style guideline combined with lazy programmers. Probably th

      • Complaining about whitespace is a pretty certain sign that the poster doesn't know squat about Python. Python has plenty of issues. Here's one -- https://xkcd.com/1987/ [xkcd.com] In point of fact Python use of whitespace is (unlike say bash's) just a straightforward formalization of a pretty reasonable style rule for readable code in any language that allows some (by no means all) nested parentheses to be omitted.

        The only genuine problem I'm aware of with Python indentation comes when trying to embed python in a s

        • by Junta ( 36770 )

          I will say that it's not just python that is afflicted by that phenomenon in xkcd. Java is notorious for having every app bundle their own JRE, for example.

          This is also 'just the way it is' for nodejs.

          'frameworks' for every little damn thing... yeah... welcome to most languages...

          virtualenv is one double-edged sword. On the one hand a respectable mechanism to tame the monstrous ecosystem. On the other hand, people start *requiring* it to just make the ecosystem even more monstrous...

    • Re:Python? (Score:5, Funny)

      by nagora ( 177841 ) on Thursday August 02, 2018 @11:47AM (#57056868)

      Correct.

      Who the hell thought a language which is ambiguous when printed out was a good idea?

      • In what way is it ambiguous?

        This on the other hand... [wikipedia.org]

      • Correct.

        Who the hell thought a language which is ambiguous when printed out was a good idea?

        Probably people who managed to move out of the eighties and stopped printing all their shit.

      • Only really ambiguous if you have tabs and spaces intermixed and you print the raw text file. People that do this often use IDEs though and most IDEs have a print function that prints formatted text instead of the raw text. However with online tools like Jira, Reviewboard, Gitlab, etc, the tabs do have a tendency to make things less readable.

    • by Tablizer ( 95088 )

      Python is popular as a language itself, but often other factors should be considered. For example, we were looking at PHP versus Python as a possible alternative to Microsoft dotnet. These factors seem to override language-only issues in PHP's favor:

      1. Easier web deployment on test, staging, and production because it's built for the web.

      2. More web-oriented functions, libraries, and related tutorials/forums.

      3. Built-in HTML-embed templating language. This is important if designers are separate from app cod

    • Oh no, not this shit again.

      (facepalm)

      Here's the methodology: https://spectrum.ieee.org/stat... [ieee.org]

      Basically they do a google search for "X programming" (where X is the name of a language) and count the number of hits. That's it.

      All that means is that Python is the most "talked about" language.

      It may be that Python has more hits because it causes more problems and more people go looking for answers. Who knows? Certainly not the people who do that survey.

  • by xxxJonBoyxxx ( 565205 ) on Thursday August 02, 2018 @11:46AM (#57056862)
    From the TFA of TFA of TFA:

    "one less source this year, as the Dice job site shut down its API"

    (https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2018)
  • by slashdice ( 3722985 ) on Thursday August 02, 2018 @11:50AM (#57056910)
    You can learn it in a two-week bootcamp. You can use it on the front end. You can use it on the back end. (Previously you had to be smart enough to learn PHP before they would let you run code on the production server!) Brendan Eich created javascript and he's a fucking programming god (of course it turned out he believes in God and straight marriage so we're not allowed to talk about him or Crockford anymore).

    Does python have rockstars? Does C++ have ninjas? Does java have 10x rockstar ninja? No!

    Javascript is a 10x rock star ninja. One moment, you're sitting there, alive, than POW you're dead. And there's an asian guy with playing some sweet riffs on his guitar/sword, teabagging your mouth.

    And if you're only a 1xer, that's cool too. npm has tons of high quality javascript one-liners written by the industries best 10xer and/or bootcamp homework projects. How do you know if something is the number 3 in c++? You don't! But npm has probably 30 or 50 packages to check for the number 3.

    • *slow clap*
      Bravo you glorious sonnovabitch. I lost it at guitar/sword.

    • Anytime you've got a rockstar at your company it's time to update that resume. Anytime you've got a rockstar in a language then it's a sign that the language is more about status than in getting work done. Rockstar is the way kids say "douche" these days.

  • by Anonymous Coward on Thursday August 02, 2018 @11:50AM (#57056918)

    > So what are the Top Ten Languages of 2018, as ranked for the typical IEEE member and Spectrum reader?

    Their membership must be a very niche market for R to outrank JavaScript in "popularity".

    • Their membership must be a very niche market for R to outrank JavaScript in "popularity".

      Yes, engineers instead of script kiddies.

      • Yes, engineers instead of script kiddies.

        AaaaahahahaHAHAHA!

        Well at least we have sex on a regular basis and get to go home when workhours end. And I also hear a little envy in there, over the fact that "script-kiddies" get more done in 3 months with their Plone Appserver / CMS than you Java/C++/C/Whatever lot in 5 years. But hey, at least you have neat specs!

  • by Dutch Gun ( 899105 ) on Thursday August 02, 2018 @11:52AM (#57056928)

    The article admits that different languages are used for different things. It's like making a list of "top vehicles", including cars, trucks, ferries, cargo container ships, and airplanes. Yet they go right ahead and still create a master ranking, because they can't help themselves. And we can't help but froth about it, which is the entire damn point for all of this.

    It's hard to get too frothy when my own language of choice, C++, is near the top, but my own view tends to be incredibly myopic, as I work in the game industry, and C++ absolutely dominates there.

    • One thing a list like this is helpful for is anyone looking to learn a new language, or learning programming or computer science without prior experience... if your school is teaching their mainline classes in a language not on this list, that is a major red flag. Probably should be in the top 5, to be honest, given what's in the 6-10 slots.

      Or, if you don't really know what you're looking to get into, other than being able to make your computer do stuff, then this might be a good guide. Start by defining

    • by HiThere ( 15173 )

      C++ is a pretty good language. It's main problem is it's trying to be the five top languages. Just about nobody uses more than a small subset of C++ plus the underlying commonality of C (with, admittedly a dialect difference from standard C).

      The problem with this is that it makes all the features obnoxiously ugly, because it really needs to squirm to maintain compatibility with all the features when it wants to handle something new.

      E.G.: I want a language with a built-in garbage collector and hash tables

      • by Junta ( 36770 )

        Interestingly enough, annoying syntax is one reason why C/C++ tends to be faster.

        In python, it's equally easy to do while curr != 'sentinal' versus while curr != 1'. In c, you get annoying doing memcmp or strncmp and quickly go to the numeric based sentinal. This maps to what is *much* easier to do for the computer.

        Same with hash tables versus arrays. mydata= {} is as easy as mydata = [] and I have actually seen the former and then the programmer do mydata[0], mydata[1].

        And of course there are structs.

        • by HiThere ( 15173 )

          Sorry, but no. The annoying syntax is necessary to make the language fast only because of maintaining historical continuity AND remaining a swiss army knife. It's true that the language would have needed to change in other ways to allow the speed without the incredibly ugly syntax. And this basically would have required the language to split into syntactically incompatible subsets, probably, as I guessed earlier, about five.

          That said, I will agree that if you are going to make the language maximally comp

  • by mykepredko ( 40154 ) on Thursday August 02, 2018 @11:57AM (#57056966) Homepage

    Yes, this is yet another "What's the best/most popular Programming Language" and I suspect that for most people, it's not very representative.

    But, as an EE I can see that this list (especially the top ten) is very accurate for the development work that I do (embedded and web apps accessing the embedded devices) and I suspect that it's pretty good for other EEs.

    If you're a web, app, database developer or even involved in IT, this list will NOT be accurate.

    • I think the ranking is BS- but they do expose the methodology if you click into it. AFAICT the ranking is about what languages people are *interested* in. Not necessarily being used by experienced programmers (EE or CS)

  • ok kids, it is up to you to save Forth. I don't see why so many people use assembly on embedded systems when it is easy to develop a customized Forth evvironment.
  • by HeckRuler ( 1369601 ) on Thursday August 02, 2018 @01:41PM (#57057856)

    BOW DOWN MORTALS Before the one true language. The Ur-language that ushers in all the false idols. The Most Holy of relics...

    C

    The old gods are calling. Can you hear them? It's the sound of inevitability as the young usurpers weep into their transient drinks feeling their lifeblood leak away like so much memory. What pidly followers they amassed will blow away like so much dust. And where do they turn when all they hold dear is cast about on shifting sands? The stable bedrock of C.

    LOOK UPON IT'S MAJESTY and look upon your EVERYTHING and you will see it staring back at you. Your Linux, your arduinos, your Rasberry Pis, your toaster, your fridge. We are the ones who cook your food. We are the ones who drive your cars. We are the ones who hand-carry your garbage when your program closes. DO NOT fuck with us.

    Just high enough above the metal to be portable as all fucking get out and low enough slide through that silicon like greased lightning. This IS your grand-daddies programming language because he knew his shit. The experience of GENERATIONS is out there and honestly eager to help. Ask on stack overflow about how the shareponit widget gets shuffled by the flub API in the .WHORE framework and you'll have a couple crickets for company. But ask for some fluent C and the fucking CHOIR comes out to play.

    C is the language to learn my friends. It gets you where you need to be. It's not the last language you want to learn, but it's certainly the one you want to sharpen. Hone that to a razor edge and you can cut any problem down to size. And that's no Turing tarpit. I may program in Brainfuck and Malbolge for shits'n'giggles, but C is the workhorse of solving real meaningful problems. Bash glues yesterday's solutions together, and some pretty GUI-maker can make yet another button for a clueless suit, but you whip out C for the hard cases.

    #include
    int main(int argc, char** argv)
    {
        printf("Bro, do you even code?\n");
        return 0;
    }

  • by mr_mischief ( 456295 ) on Thursday August 02, 2018 @02:05PM (#57058000) Journal

    I'd start counting flaws but I don't have all day. At least these are readily apparent.

    HTML is not a programming language. It's a markup language, and although one might be able to coerce HTML5 and CSS3 together into being Turing complete that's an emergent property best thought of as a bug.

    SQL is a query language. Fairly sophisticated data manipulations can be done with it, but it's typically used with an actual programming language to develop applications.

    Arduino isn't a language at all. It's a hardware device which can be programmed in various languages. There is an approved IDE but more than one language supports the platform.

    Cuda is not a language, but a toolkit for GPU programming that's used from multiple different languages.

    Shell and assembly are each more than one language. May as well by that logic call Clojure, Scheme, and Racket part of Lisp. Call JavaScript and ActionScript both ECMAScript.

    The method of looking at searches for "X programming" specifically gives an advantage to languages that don't lend themselves to search or need disambiguation like C, Go, Python, Ruby, R, S, D, shell, assembly, or Crystal. Languages with distinct names like Perl, Erlang, JavaScript, Smalltalk, ActionScript, or Matlab don't generally need such qualification.

    • by lgw ( 121541 )

      SQL is Turing complete. Which is somewhat terrifying, but far less so than C++ template meta-programming (talk about an emergent property best thought of as a bug!).

      • That it is, but it's not generally used to develop actual standalone software. Apart from the odd one-off ad hoc query it's wrapped by another language and often has a stored procedure or several in another (possibly different still) language.

  • and its marketing of it?

  • I am very suspicious of a methodology that puts all of the values so close together and where assembly language even registers... That's like saying a huge portion of development work is being done on MS-DOS!

    This seems more like a ranking of which languages people have the most problems with :-)

Math is like love -- a simple idea but it can get complicated. -- R. Drabek

Working...