Slashdot Mirror


Developers Love Trendy New Languages, But Earn More With Functional Programming: Stack Overflow's Annual Survey (arstechnica.com)

Stack Overflow has released the results of its annual survey of 100,000 developers, revealing the most-popular, top-earning, and preferred programming languages. ArsTechnica: JavaScript remains the most widely used programming language among professional developers, making that six years at the top for the lingua franca of Web development. Other Web tech including HTML (#2 in the ranking), CSS (#3), and PHP (#9). Business-oriented languages were also in wide use, with SQL at #4, Java at #5, and C# at #8. Shell scripting made a surprising showing at #6 (having not shown up at all in past years, which suggests that the questions have changed year-to-year), Python appeared at #7, and systems programming stalwart C++ rounded out the top 10.

These aren't, however, the languages that developers necessarily want to use. Only three languages from the most-used top ten were in the most-loved list; Python (#3), JavaScript (#7), and C# (#8). For the third year running, that list was topped by Rust, the new systems programming language developed by Mozilla. Second on the list was Kotlin, which wasn't even in the top 20 last year. This new interest is likely due to Google's decision last year to bless the language as an official development language for Android. TypeScript, Microsoft's better JavaScript than JavaScript comes in at fourth, with Google's Go language coming in at fifth. Smalltalk, last year's second-most loved, is nowhere to be seen this time around. These languages may be well-liked, but it looks as if the big money is elsewhere. Globally, F# and OCaml are the top average earners, and in the US, Erlang, Scala, and OCaml are the ones to aim for. Visual Basic 6, Cobol, and CoffeeScript were the top three most-dreaded, which is news that will surprise nobody who is still maintaining Visual Basic 6 applications thousands of years after they were originally written.

56 of 111 comments (clear)

  1. cargo-culted copypasta by KiloByte · · Score: 4, Funny

    So a website devoted to copy+paste programming gets Javascript at #1? Oh so surprising...

    --
    The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
    1. Re:cargo-culted copypasta by angel'o'sphere · · Score: 1

      Well,
      if you don't know how to implement a Bresenham algorithm, or don't even know what it is: what is wrong in looking it up?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    2. Re:cargo-culted copypasta by Megol · · Score: 1

      Nothing wrong in that. However if example code is then copy-pasted as KiloByte implied there are several potential problems.

    3. Re: cargo-culted copypasta by reanjr · · Score: 2

      If people are using Stack Overflow for copy-paste programming, then that's a testament to the quality and flexibility of the code found there.

      I've personally spoken to lots of devs too intimidated to even ask questions on Stack Overflow because their impression is they aren't smart enough to properly ask.

      So while your impression might be true for some visitors, there are obviously lots of talented people on there as well writing that code that gets copied.

    4. Re: cargo-culted copypasta by Anonymous Coward · · Score: 1

      "If people are using Stack Overflow for copy-paste programming, then that's a testament to the quality and flexibility of the code found there."

      Er, no. People doing copy and paste programming are not exactly arbiters of quality code. The two things are entirely unconnected, the fact people use it, doesn't mean it's good, that's an outright fallacy.

      "I've personally spoken to lots of devs too intimidated to even ask questions on Stack Overflow because their impression is they aren't smart enough to properly ask."

      Right, but that's the difference between good devs, and the type that do actually paste on Stack Overflow. Good devs are naturally cautious and considered, people who go in guns blazing typically make awful developers, unfortunately they're the ones that all too often post questions and answers the most on Stack Overflow.

      I'm hesitant to post on there myself despite being incredibly experienced, not because I'm scared of asking a question, but because I know it's a waste of time at my level. Every single time I've asked questions about anything moderately complex (i.e. above average developer type questions) I'm met with useless answers, none of which I can possibly consider flagging as correct, and some not even answering the question at all but just being desperate attempts at trying to sound intelligent to gain upvotes but failing to offer any meaningful contribution to the discussion.

      The fact is, StackOverflow is fucking useless for (competent) Senior or Lead level developers - the stuff it answers you already know inside out, the stuff you don't know, it can rarely answer. You're better off on specialist forums for the technology stack in question.

      "So while your impression might be true for some visitors, there are obviously lots of talented people on there as well writing that code that gets copied."

      There are some for sure, but they're few and far between and they generally only focus on answering easy questions they've tuned themselves in as being good candidate for increasing their reputation quickly, rather than actually helping with the hard stuff that their skillset would be much more worthwhile for but don't grant as many upvotes because fewer people understand them. The problem is Stack Overflow reputation isn't weighted by difficult, so people inevitably tend towards the easy cookie cutter shit that's been asked and answered in subtly different ways a thousand times over and can grant multiple upvotes in a short space of time, over the stuff that's difficult, and takes more time, and grants less upvotes.

      Don't get me wrong, I think Stack Overflow is brilliant for junior and mid-level devs, they can indeed learn a lot from it, and it helps them be more productive, so I think it's an incredibly useful resource. But let's not pretend it's in any way a meaningful resource for anyone more senior - those of us asking the hard questions will get no support there. As you become more skilled as a developer and start working on harder problems you'll find you quickly grow out of Stack Overflow. I used to be there almost daily many years ago, now I can go months without touching it, my junior staff still use it, but myself and the Senior's just can't get anything meaningful from it.

    5. Re: cargo-culted copypasta by TheRaven64 · · Score: 1

      If people are using Stack Overflow for copy-paste programming, then that's a testament to the quality and flexibility of the code found there.

      Your implicit assumption is that the people copying and pasting the code are capable of judging the quality of the code. I would hypothesise that people who are most able to judge the quality of code are the least likely to copy and paste code from any source.

      --
      I am TheRaven on Soylent News
    6. Re: cargo-culted copypasta by reanjr · · Score: 1

      My judgment is based on the fact those copying are getting shit done. If those copying could code, they wouldn't be copying. So the code they are copying must be pretty idiot proof or it wouldn't work.

    7. Re: cargo-culted copypasta by TheRaven64 · · Score: 1

      Just because it appears to work doesn't mean that it's good code. A bubblesort works, but if you're using it on large data then it's a terrible idea. Copied code may contain security vulnerabilities, inefficient algorithms, or subtle bugs that aren't found in cursory inspection or token amounts of testing but which cause data loss in real-world use.

      --
      I am TheRaven on Soylent News
    8. Re: cargo-culted copypasta by sjames · · Score: 1

      Why not if you can save some time? Unless you are coding for your own kernel and libraries using your own compiler, you're already copying a bunch of stuff by reference.

    9. Re: cargo-culted copypasta by TheRaven64 · · Score: 1

      If stuff is coming in a library, and assuming that it's still maintained, you have certain assurances. There will be new releases, which fix bugs. There will be security fixes and often back ports. There will be other eyes looking for security holes (and hopefully most of these will do responsible disclosure). In contrast, stuff on Stack Overflow is never intended to be shipped, and certainly not to be supported. It may omit error handling for clarity and this, in turn, may introduce security vulnerabilities. If there are security vulnerabilities, then someone may eventually spot them and post a response, but you don't have a mechanism for updating to the fixed version automatically.

      --
      I am TheRaven on Soylent News
    10. Re: cargo-culted copypasta by sjames · · Score: 1

      No sane person writes a library for 5 to 10 lines. However, reviewing 5 to 10 lines for correctness should be well within the abilities of a competent developer.

      The problem is when incompetent programmers copy/paste without the ability to review the code.

      As for libraries, YMMV. Some are quite good, well tested, documented, and maintained. Some are fire and forget crap. Some are made by people mindlessly cutting and pasting.

      Cargo cult programming is bad no matter how the bits get glued together.

  2. Deja Vu by Prien715 · · Score: 1

    Developers love trendy new languages almost as much as /. editors love posting dupes .

    --
    -- Political fascism requires a Fuhrer.
  3. Re:I 'C' what you did there by Anonymous Coward · · Score: 1

    GCC, Goat C Compiler.

  4. JAFL by bobstreo · · Score: 1

    If you have some level of mastery in a couple languages, it's not hard to learn new ones. You can be an SME in one language, or a generalist in many...

    On the other hand, with every new language, there is 5-20 years of experience requirement for positions for programmers residing in the US, even if the language is only one or two years old.

    1. Re:JAFL by Chris+Mattern · · Score: 1

      If you have some level of mastery in a couple languages, it's not hard to learn new ones.

      Well, kinda. If you know C, Java isn't hard to pick up. Haskell, Prolog or Lisp, on the other hand...

    2. Re:JAFL by i.r.id10t · · Score: 1

      But a good part of it is knowing how to solve an problem programming wise. Being able to break it down and say "i need an if-then here, and a loop here that does this, and is there a function that validates this or do i need to write one". At that point, looking up syntax or examples works great to learn new stuff. And of course, each language has its own little differences and changes in terminology and syntax

      --
      Don't blame me, I voted for Kodos
    3. Re:JAFL by jawtheshark · · Score: 2

      The differences between C/Java/Pascal and Haskell, Lisp and Prolog aren't merely syntactic.

      --
      Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
    4. Re:JAFL by Chris+Mattern · · Score: 1

      Being able to break it down and say "i need an if-then here, and a loop here that does this, and is there a function that validates this or do i need to write one". At that point, looking up syntax or examples works great to learn new stuff.

      Prolog doesn't really have if-thens or loops. In fact, the language doesn't have any traditional concept of program flow: you set rules and the Prolog interpreter will set its own course in satisfying them; you don't have any direct control over how it will do so. Looking up syntax for those constructs would be an exercise in futility; Prolog doesn't work that way.

    5. Re:JAFL by david_thornley · · Score: 1

      If you think different languages are a matter of syntax, I'm going to strongly recommend that you learn some version of Lisp or Scheme, Prolog, and Haskell. At least one of them. You need a broader perspective.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  5. Re:How to Earn Zero: Learn to Code by 0100010001010011 · · Score: 1

    I genuinely want to know what I'm doing different when I see these comments. I have not had the issues that you, or multiple others, describe like this.

    Coding is a tool. It's a tool to get another job done and that's how I use it and I haven't had a problem finding a job or getting paid to do it.

    But it means that you have to go beyond knowing the tool and how to apply it to the right situation. Anyone can swing a hammer but machinists, general contractors, and fine woodworkers know how to use that skill to build something people will pay for.

  6. Language != Pay by TechyImmigrant · · Score: 1

    I program for my job, but at no point did my choice of language have any relevance to my pay.

    My expertise in the domain of the things I design and the efficacy with which I do my job is what determines my pay. I don't think people usually know what languages I program in.

    --
    I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    1. Re:Language != Pay by TechyImmigrant · · Score: 1

      The code I write is usually analysis code for me to do my job. It's not for use by others.
      I sometimes release public code for use by others. E.G. Crypto library support.

      My large employer has failed to employ someone who can jump into my job so far. If I get hit by a bus or win the lottery, it's likely to be a problem for my employer.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    2. Re:Language != Pay by david_thornley · · Score: 1

      The reason language matters to me is that certain jobs are primarily in certain languages (or group of related languages). If software is best written in COBOL, I don't want to touch it, no matter what language. Currently, I'm working in C++ because that's what the software is written in, and it's very interesting software to work with. Back when the software was new, C++ was the only reasonable language to write it in.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  7. HTML? by per+unit+analyzer · · Score: 4, Insightful

    I call BS on any survey or programmer that considers HTML a programming language.

    --
    In Soviet Russia, the Beowulf cluster imagines you!
    1. Re:HTML? by spaceman375 · · Score: 1

      Seconded. Fatal flaw right there.

      --
      On the one hand you take life too seriously, and on the other, you do not take playful existence seriously enough. Seth
    2. Re:HTML? by mrun4982 · · Score: 4, Informative

      The addition of CSS doesn't change anything. HTML and/or CSS are not programming languages.

    3. Re:HTML? by Anonymous Coward · · Score: 1

      I call BS on any survey or programmer that considers HTML a programming language.

      HTML + CSS is, HTML in itself isn't a programming language.

      That's so spectacularly wrong I'm not even sure how to respond. Other than to point out, perhaps, that anybody who believes that has never done any actual programming of note.

      For the record, I say this as someone who spends about 1/3 of my work time doing HTML/CSS. It can be cool (sorry haters, yes it can) but it ain't within a country mile of programming.

    4. Re:HTML? by Sesostris+III · · Score: 4, Informative

      To be fair, they didn't. The exact title of that particular survey item is "Programming, Scripting, and Markup Languages".

      --
      You never know what is enough unless you know what is more than enough. - Blake
    5. Re:HTML? by Anonymous Coward · · Score: 1

      It says it right there in the acronym, hypertext programming language.....html :P

    6. Re:HTML? by jetkust · · Score: 1

      So you're not talking about this survey then, right? Because that they never called HTML a programming language. They used the term "web tech" when referring to HTML, and even titled the list "Programming, Scripting, And Markup Languages" to be clear, and they STILL get called out for calling HTML a programming language, AND the comment gets modded up. Everyone is aware of what HTML is, but yet they felt the need to add the (un)necessary specifics just because of comments like this, and they STILL get accused of not understanding basic info they probably have know for 20 years. I guess with some things, you just can't win.

    7. Re:HTML? by jetkust · · Score: 1

      And they used the term web tech right there in the summary. I'm starting to think there are people who search the internet just to find places where they can inform people that HTML and CSS aren't programming languages.

    8. Re:HTML? by pen · · Score: 1

      Actually, today's HTML+CSS is Turing-complete.

    9. Re:HTML? by fluffernutter · · Score: 1

      I'd call it a declarative language.

      --
      Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
    10. Re:HTML? by MemeRot · · Score: 1
    11. Re:HTML? by luis_a_espinal · · Score: 1

      I'd call it a declarative language.

      That I can agree on. But the scope of it and the type of logic implemented with it so domain specific, it is right there next to Excel (which itself is a declarative language that just happens to have a GUI'ish interface.) Martin Fowler was right in calling Excel the most popular DSL in the world (because it is.)

      And yet, no serious discussion on programming languages include it (nor do they include XSLT, which is also a programming language.) So I don't see why HTML+CSS gets included in the same bag.

      If we are talking technology toolsets, then, that's another thing. But term "programming languages" have a very specific set of characteristics in mind.

    12. Re:HTML? by Megol · · Score: 1

      HTML + CSS have AFAIK been demonstrated to be Turing complete, did I get that wrong?

      Any way of having execution changing later execution flow makes a mechanism Turing complete - as one can assume infinitely long programs going through every possible case of execution flow. The Zuse V3/Z3 have been demonstrated to be Turing complete under such assumptions but it was of course not in practice.

  8. Re:How to Earn Zero: Learn to Code by angel'o'sphere · · Score: 1

    Certifications are easy to get, quallifications not.

    But up to you if you think it helps anyone if you filter job applicants by certifications :)

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  9. Re:How to Earn Zero: Learn to Code by Anonymous Coward · · Score: 1

    I also wan't people fluent in multiple languages, first and foremost: English!

  10. Re:OCaml by Pseudonym · · Score: 1

    Of course the money's good, there's maybe 50 companies that thought it was a good idea and only 3 programmers to maintain the inexplicable, unreadable mess that is their codebase now.

    Or to put it another way, O'Caml gives your codebase a distinct competitive advantage, but most Python script kiddies aren't smart enough to understand it.

    You raise a good point though. O'Caml gives you the elegance of Haskell with the readability of ALGOL.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  11. Re:How to Earn Zero: Learn to Code by Wraithlyn · · Score: 1

    And the rest of us want to know why you're fucking delusional.

    Of course people get paid to code.

    --
    "Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
  12. Re:OCaml by Hognoxious · · Score: 1

    O'Caml

    Other than the fact that you're a fecking dipshit, why is the apostrophe there? Is it because St Patrick's day is close upon us, to be sure?

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  13. Epic comment by goombah99 · · Score: 1

    Okay, that's a new one to me so if this is the first time this comment has appeared on slashdot then I salute you madame, or sir as it may be.

    --
    Some drink at the fountain of knowledge. Others just gargle.
    1. Re:Epic comment by Anonymous Coward · · Score: 1

      Careful. Someone that's just been thawed out from 2001 like you needs to be aware that Donald Trump is President, kids walk around with pocket supercomputers to draw clown noses on their pictures, and porn is free.

    2. Re:Epic comment by Anonymous Coward · · Score: 1

      Amazon does have a t-shirt with a goat and the letter C. You have to be pretty ballsy to wear that in public. Probably safer to call it a programming language, if someone asks about it..

  14. Re:How to Earn Zero: Learn to Code by Kellamity · · Score: 2

    Maybe you're just trying to deter people from coding to reduce your competition.

    Dear blog,

    Today I put step one of my devious plan into action. I went to the Slashdot forums, and posted on every programing related story about how there are no paid coding jobs.

    Soon, the people will think there are no jobs and find other careers. Then... all the coding jobs will be mine! BWAHAHWHA!!

  15. Re:I 'C' what you did there by Anonymous Coward · · Score: 1

    You sound bitter, bro.

  16. Re:OCaml by fluffernutter · · Score: 1

    So you're basically saying even a script kiddie can do something productive with Python but they would find O'Caml confusing, and you think that is a problem with Python??!?

    --
    Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
  17. "Annual" survey??? by tomservo84 · · Score: 1

    It seems like every few months this gets posted here. These surveys are ridiculous anyway. I'm developing in language XYZ because my employer is paying me to work in it. I am not able to just start development in ABC just because I want to.

    --
    Agile Spaceport - You will never find a more wretched hive of scrum and villainy. We must be cautious.
  18. Re:StackOverflow is NOT the place for good stats by technosaurus · · Score: 2

    I write my ECMAScript as if it were "Magical C". It ends up being easier to follow and compilers tend to optimize it better.

  19. Re:StackOverflow is NOT the place for good stats by goose-incarnated · · Score: 1

    I write my ECMAScript as if it were "Magical C". It ends up being easier to follow and compilers tend to optimize it better.

    What the hell is magical C?

    --
    I'm a minority race. Save your vitriol for white people.
  20. Turing Shmuring by Tablizer · · Score: 1

    I don't think it matters. Doing HTML/CSS well takes skill with the languages involved, especially dealing with brand/version/size differences, and fast-changing eye-candy fads. (Usually JavaScript is also involved). Language is language. Being Turing-complete is mostly moot. It takes intricate knowledge and balancing many trade-offs. Many shops split by specialties: back-end/DB, business logic, and UI, for example.

  21. Specialization premium by Tablizer · · Score: 1

    Obscure languages do tend to pay more because, first it's harder to find people specializing in it, and second because specialists in such niches have fewer career and location choices if their niche dries up, and thus expect a bit more for specializing. Php or "MS.net" may pay less on average, but it's usually easier to find gigs because they are ubiquitous. Specialists tends to have bigger gaps in employment.

    1. Re:Specialization premium by Tablizer · · Score: 1

      Specialists tends to have bigger gaps in employment.

      Aint there some grand AI grammer pluggin that would catch that danmed typo?

  22. Re:StackOverflow is NOT the place for good stats by technosaurus · · Score: 1

    I was referring to the small subset of javascript that behaves like C, but doesn't require memory management, types, weird function pointer definitions or long compile times via a ridiculous build system just so it can work on a single architecture.

  23. Re:OCaml by Pseudonym · · Score: 1

    I'm saying that if the problem you're trying to solve is difficult, hiring an O'Caml programmer is a safer bet than hiring a Python programmer.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  24. Re:OCaml by Pseudonym · · Score: 1

    That is what it was originally known as, and I'm old.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});