Hacker News new | past | comments | ask | show | jobs | submit login
2016 Stack Overflow Developer Survey Results (stackoverflow.com)
318 points by sambrand on March 17, 2016 | hide | past | favorite | 168 comments



Fun fact. In Argentina the previous government used to give subsidies to McDonald's to keep the BigMac cheap, so these numbers around the world comparing salary to the BigMac index would look better.



Thanks! I'm too lazy I guess :)


As a South African this hurts. We were ranked number 1 for purchasing power, and I've heard similar statistics from other sources. But the economy is shitting on us hard, and we are all struggling.

The one thing that isn't taken into account is things like tax wastage. I'd say easily 70 to 80% of our tax money is wasted by our inept government. So we have to fork out so much cash for basic things that other countries take for granted. It sort of feels like I pay tax twice. Once to the government which might as well be the money equivalent of /dev/null and another for private services which the municipality/government should be supplying, but what is offered is just too shitty to use.

So we may have the best purchasing power, but we have the least amount of money, so it doesn't help much.


> So we have to fork out so much cash for basic things that other countries take for granted

Yeah, can you believe how much more expensive domestic help has become? /s

I think the SA government's biggest sin is failing to grow the middle class. The inequality is a ticking time bomb


This is not too surprising given their other statistical creativity [0].

[0] http://www.economist.com/node/21548242


INDEC is the government office in charge of carrying on the statistic (inflation, etc). They lied us for 4 years (with the previous government). They've shut it down completely 3 months ago (with the new government) and they're supposedly working to reopen it with legit information. We'll see.


The whole big mac index phenomenal is funny because Economics magazine didn't intent to make an index when they started it.


Did you mean to comment in the fast food automation thread?

https://news.ycombinator.com/item?id=11304628


I would say this is because the reference to the big mac index on the stack overflow post.


Yeah, exactly. "How many big macs can you buy with your salary".


> for the third year in a row, "full-stack developer" was the most common response [for occupation]

Might be a loaded question, but doesn't full-stack mean just "web developer"? From the survey, "Full-stack developers are comfortable coding with 5 to 6 major languages or frameworks (vs. 4 for everyone else)" -- with knowing a bit of Wordpress that's fairly easy to collect: php, sql, html, javascript, css. Done.

Or full-stack is the new ninja?


> Might be a loaded question, but doesn't full-stack mean just "web developer"?

Huh, interesting question. I think a "web developer" could focus more on front end or back end; I usually identify as "full stack web developer" to indicate I do both.

However, if I read your question another way: are you asking if "full stack" could apply outside the web realm? Can you be a "full stack"... erm compiler developer? I know compilers generally have a "front end" and a "back end", but I'm not sure if I've heard the terminology used that way. I'd be curious to know if "full stack" is used in other niches of software development than just the web.


My experience has been that "front end" or "back end" often implies a web dev shop. This isn't always true, but it's generally the case


I don't think so. I think the self distinction is between developers who work exclusively on the front end or back end of websites vs those who do it all. My guess would be the correlation between the self identification has less to do with developer skill than to team/business size. If you are on a team of two or three people, and changes need to be made to the database, JS, and server-side code, you're going to be working across the full stack in a variety of languages. I don't think this approach lends itself to mastery or specialization, and so if you're like me you will be using SO to find out how to do simple things in JS.

But I see your point, the commentary suggests full-stack developers are more skilled.


> you are on a team of two or three people, and changes need to be made to the database, JS, and server-side code, you're going to be working across the full stack in a variety of languages.

So basically a web developer then. Right.


It is a matter of self-identification. I take the phrase with a large dose of irony. If someone calls themselves a full-stack developer, I assume they mean "JS/CSS/HTML/<app language>/SQL" and this is especially likely in this case, since it's a SO poll.

But I still want some sense of awareness of the many layers on which web systems rest.

"Oh you're a full-stack developer? Great! In this job interview we will be designing a new TCP retransmission algorithm, configuring a CI/CD pipeline, debugging CPU microcode, negotiating with a law enforcement agency, and testing the FM200 system in the DC"


I would identify myself as full stack web developer, but the problems you list (apart from negotiations) sound interesting to me... What does that make me? :)


My experience is that someone's willingness to understand/develop the whole canvas greatly enhances their potential effectiveness in leading major pieces of work.

Caveat #1: far from the only factor.

Caveat #2: increased risk of decision paralysis and (paradoxically) micromanagement.


I think it's more of a distinction with 'front-end developer', who is someone that works exclusively on the front-end - e.g. angular, ember, react, etc. This role barely existed 5+ years ago, and every web developer was more of a full-stack developer. Nowadays you could focus only on the front-end side and not need bother with a back-end ever.


Actually I see this as reversed, 5 years ago there were a lot more front-end developers (or just web developers then), since it was fairly common to create static sites with little or not interactivity, and if you had a fat client it was in flash (also a front-end only technology, mostly).

I don't think people writing some scripts in PHP would have considered themselves full-stack or back-end.


I think there are some big holes in the list of occupations.

Let's say you work in a place with a "microservices" architecture. You write in Java or Ruby or another language. Which occupation are you on this list?

Why is there a "backend web developer" but not "backend developer"?


What would be the front end in your example? You'd just be "a developer".

I tend to avoid jobs which self describe as backend as I have no interest in web development and my experience is if it is listed as "backend developer" that it's probably too geared towards web development for my tastes.


Well, "developer" is not even an option for occupation in this survey.


I always assumed full-stack was backend language plus SQL as well as the web server and server OS. So, the L and A in LAMP. Keep in mind that I started in 1996 or so, and only started hearing "full-stack" in recent years.

e.g., using common options:

  - A front end web developer would be HTML/CSS.
  - A back end web developer would be HTML/CSS/MySQL/PHP (or equivalent).
  - Full-stack all of the above plus Apache and Linux.


Besides front and back end, someone who identifies with full-stack should also be proficient at the data layer. https://en.m.wikipedia.org/wiki/Multitier_architecture


> 10% of respondents self-identified as Ninjas. Real ninjas don’t tell you they’re ninjas. They just sneak up on you and slit your throat, which generally constitutes "hostile workplace environment."

Ah, good wit. Very nice write up!


My company makes recruiting software so I talk and deal with many recruiters.

I have to say I severely cringe every time a recruiter says "Rockstar" or "Ninja" (in a job description or ask if I am one). Just imagine using those terms for a talented medical doctor or lawyer. "Microservice" is quickly becoming another new recruiting term that I am beginning to despise. At least "agile" is mostly dead... mostly...

Speaking of which what ever happened to "Scotty", "Rocket scientist" or "Macgyver" (those were the sexy euphemisms back when I started software dev). They were far more apropo.


Maybe we've just replaced "agile" with "devops".


I have heard a candidate for a software engineer position talk with straight face about his current workplace's "devops team" and handing off software to them. So maybe it's getting that way.


If this were reddit this is where I would post a "The force doesn't work that way!" memes.

I can't stand it when people ask about a "devops team". That's not devops then! That just means your sysadmins can code too.

Now, if they are asking about a devops software team, that's a different story.


Yep. What it means is like "agile" did, it's reaching the "old wine in a new bottle" stage, with less actual hard work of changing the way people work for the better, and more easy slapping a new trendy label on existing practices.


If I see a job ad, hear from a recruiter or whatever which uses either rockstar or ninja, or anything along those lines I immediately stop listening/reading.


It's interesting to see that over 34.5% of developers surveyed use some flavor of a JetBrains IDE:

Intellij - 17%

PhpStorm - 7.4%

PyCharm - 6.8%

RubyMine - 1.7%

WebStorm - 1.6%

---

Total - 34.5%

This makes the Intellij IDE the third most used environment surveyed. If you're not using a text editor, chances are you're using a JetBrains IDE. I'd be interested in seeing the text editor vs IDE breakdown (broken down by age and experience) once the full data is released.



Were people only allowed to pick one? If not, I'd assume the total is lower than that since some people probably use more than one of them.


Yeah. I've used multiple ones for years. Especially now that they have the license that gives you access to all of them, I prefer to use the language-specific one unless I'm doing a project that requires multiple languages.


I've definitely noticed the language specific ones are a little nicer with automating some of those workflows that are very specific to the language. Like starting a new PHP project in PHP Storm vs IDEA


I have used Notepad++, Sublime, Vim, Spacemacs and the Jetbrains suite.

If I want to do a large enough project, the Jetbrains suite really can't be beaten in terms of just getting things done IMO.


Probably speaks to the quality of their product. There are a bajillion free IDEs out there and people are willing to PAY IntelliJ.

That being said, their personal licensing is so affordable that I wouldn't blink to buy it out of my own pocket it if my company didn't pay for it. If you don't need IDEA, I think most of the smaller ones are $50 for a personal license.

I used Eclipse for Java and Komodo for Python/PHP for years. Then Komodo 8 was so bad that I gave PHP Storm a try and liked it so much I gave IDEA a try for Java and never looked back.


Interesting that:

   - JS ranks high in 'wanted' to develop  
   - JS doesn't appear in 'love' developing  
   - CoffeeScript ranks high in 'dread' to continue to develop
Big discrepancy in appeal for people on the outside looking in compared to those using it!


Yeah, and a big endorsement for Rust - at the top of the "love" list.


To be fair, JS appears in 'loved' as Node.js.


Sounds right to me. I love writing backend, services, etc in Node but even with libraries I love like React there's a sigh coming out when I start working on a browser app.


Ah, I overlooked that.

Though - without checking the original questions - that still suggests an element of "came for JS; stayed for Node".


Uncertain. There could be other JS-related technologies below the cut - React, Redux, etc.


I remain as surprised as last year about the prevalence of Notepad++. My circles do not intersect these users, I think.


For Windows, Notepad++ fits nicely for situations where "I need more than Notepad, but less than an IDE". It's a great example of the a well done pieces of free software on Windows. I've tried Emacs, Vim, Atom, Code, and Sublime, and none of them beat N++.


> I've tried Emacs, Vim, Atom, Code, and Sublime, and none of them beat N++.

This ofcourse being entirely subjective.


This really surprises me. What can N++ do that Vim or Emacs couldn't do? Or what is easier at least?


Both Semiapies's and Cthulthu_'s comments hit the mark, Notepad++ is a definitely Windows application that just works straight out of the box. (As a caveat, I have spent a lot of with a command shell and vim).

The other thing is that, as a Windows developer, I spend a lot of time in my IDE. Whenever I try to use Emacs I quickly get sucked into the fact that the most productivity gains you get from it are when you use it for as much as possible, like OrgMode, reading emails, etc. It's advantage is that you can write elisp plugins to customize it for your workflow. As a standard corporate "textbox over data" developer, I have the full suite of Office and Visual Studio at my disposal, so I don't see any benefit to use Emacs. Also, Emacs on Windows is definitely a second rate experience. You can't launch a daemon process, and it requires setup to get copy/paste from the OS to work well.

Vim is great, and it works well on Windows, but again, most of the time I am editing code, it's in Visual Studio. If I need text manipulation or searching, it's a real loss to paste into Vim, and then have to switch over to remembering Vim commands.

I've come to the realization that tools like Vim, Sublime, and Emacs are awesome if you do the majority of your work on them. The more tasks you can pile into them, the less context switching you have, and more consistent experience you get.

On Windows, Notepad++ fits that niche perfectly, it uses the Windows commands, present a consistent interface, and it has the power to do powerful text manipulation when needed.


One thing about the context switching comes to mind as I was reviewing this post a day later. I am capable of being very good at vi(m)'s commands when using vi(m). When I need to ssh into a headless server to deploy or modify a text file, I just immediately use vi. When I try to use a vi emulation layer (VsVim, Evil Mode) I choke, because I inevitably use a set of keystrokes native to that application but do not work in command mode. Just more evidence towards my claim the benefits of a text editor can only be realized if you try to pile in as much as you can.


Be easy, straightforward, and immediately productive for someone used to Windows apps.

I love Emacs, but it took a deliberate, determined effort and time sacrificed to get productive in it, so that I didn't feel like I was handicapping myself.


Vim / Emacs have a very steep learning curve, and highly unintuitive, doubly so if you've rarely worked with a commandline.


And in the end, you are not more productive than with sublime text or notepad++. In my experience.


What does "in the end" mean? I've been working in Vim and then Emacs+Evil for four years or so and it is pretty clear that I'm still far from proficient. That said, it is an enormous step above a text editor (and somewhat better than any IDE I've tried).


I really tried vim for months. I found it uselessly verbose while sublime has straightforward key shortcut that help a lot.

How could you be more efficient using vim ? That's something I don't understand. I always suspect vim and emacs user saying it because it makes them feel like super programmer.


It can take awhile for things to "click" with Vim before you really understand it.

Start by reading this StackOverflow answer[0] titled, "Your problem with Vim is that you don't grok vi."

Like that poster states, when you are using Vim correctly you are speaking a language as you are editing. You provide it an action and then you tell Vim what to apply the action to. This is usually either a motion command, or a text object. Combining these concepts allows you to have a level of expressiveness that non-modal editors cant easily replicate.

If you are just using Vim as you would use a non-modal editor you aren't going to see any gains. But if you embrace the "language" idea of Vim, learn to spend most of your time in command mode, and start combining actions + motions/text objects, you will start to see the real power of Vim.

[0] http://stackoverflow.com/a/1220118/2635


A bit of history helps to understand why vi(m) operates in this fashion. Vi was first released in 1976 as the visual editor to the ex line editor. The networks were very fast in that time period, so it helped to "load up" on commands before you submitted them to gain as much productivity as you could:

"Joy explained that the terse, single character commands and the ability to type ahead of the display were a result of the slow 300 baud modem he used when developing the software and that he wanted to be productive when the screen was painting slower than he could think."

Taken from: https://en.wikipedia.org/wiki/Vi

An example to me, of how something pragmatic (wanted to avoid round trips) took on a life of its own.


As implied by "I've tried"


And by that, I mean a dedicated effort. I used VsVim and Vim for years, and I've made multiple attempts to switch to Emacs. But I keep coming back to the fact that the majority of what I need can be done in VS and Office.

Don't get me wrong, the idea of Emacs is awesome: a configurable text editor using a dialect of Lisp? This is great, not only can I shape the tool to my needs, I also get to use a great language. However, at some point I do need to get my work done.


Interesting. In my experience, Sublime crushes Notepad++.


More like crushes your wallet

Sublime = $70

Notepad++ = free


Considering how well-paid developers are on average, $70 hardly "crushes" anyone's wallet.


True, but it will not be the only tool in the toolbox... So taking into account all the other software you've purchased, the costs will add up.

Just an anecdotal example, before JetBrains switched to their subscription model I was paying individual licenses for IDEA, PyCharm, and ReSharper. So if I had already spent over $300 p/a for IDE and tooling, another $70 will seem like an excess.


Multi-cursor in N++ is not even close to Sublime one.


This advanced editing thing has completely evaded me. I'm a long time Windows dev and never got to terms with emacs due to non standard (i.e. non Windows) default keybindings etc.

The editors and IDEs I do use likely all have very advanced text editing ability but I just never reach for them! Not once have I felt "now I'd really like 3 cursors". What are the normal use cases? Maybe I'm leaning on auto-formatting and refactorings more that lets me do things you would otherwise do with e.g regexes, multiple cursors?


The most common use cases for me are just replacing words and tweaking alignment. Obviously there are ways to do it in other editors, but having multiple cursors exposes these capabilities in a convenient way.

But one thing it's really useful for is making bulk replacements on the fly without having to think too hard about what to match on. Instead of fiddling around trying to create a perfect regex to match the right cases, you can just step through instances of a loose match, choosing the right ones, and then make your edit.

Overall, for me it just feels like a much more intuitive ad-hoc style of editing.


My experience is the opposite: I found multi-cursor in Sublime to be a big pain, whereas in N++ it Just Works.


Windows + free + low system impact / short install time. Makes it a goto in a lot of cases on the Windows platform.


I've found myself using Notepad++ for personal notes/to-do lists and Sublime or Pycharm for coding. I could do everything in Sublime, but this division of duties seems to reduce clutter.


Question - are you primarily a windows or mac developer? Because the counter part on mac is sublime text and I see a ton of that!


What really hit me was the graph about valuing salary[1]

On one hand it looks like there is a drastic difference: Developers in Finland and Sweden don't care about their salary! But looking at the Y axis reveals that the difference from the mean is about 15 percentfigures.

On the other hand, even that is quite a lot. It also allows us to make sweeping statements like Finland's coders are undervalued (?) or that over half of the Developers in Finland or Sweden did not value Salary.

cool cool!

[1]https://stackoverflow.com/research/developer-survey-2016#mon...


Just want to point out that the top 4 most loved languages are ML derived/dialects.

And poorly utilized. When is the rest of the software world gonna catch up to this?


As a non web developer I am fairly surprised that about 50% of developers are "web developers".

Is this the distribution in the global developer population as well ? Or is this a bias due to Stackoverflow which by its very nature is web centric ?


I see it kind of like this: 10 years ago when I had my first official job post college we needed some tools for interacting with our manufacturing data sets. I opened up Visual Studio and created some Windows applications and installers.

Then we deployed a web service written in Java (because at the time any web server we had was *nix) to create some additional functionality and hooked the desktop apps up to it.

Then we swapped out the desktop apps because too many people were not upgrading and getting all kinds of errors. Or desktop support was getting too many calls because the end user had a borked environment.

This was all many moons ago and happened in the span of 18 months.

I started out as a desktop and server API application developer. Today I haven't written an exe since I left that job but to build UIs over the years I had to learn HTML/CSS/JS. That is, I feel, we got the 'original' full stack developer.


I have no doubt that the web will eat desktop application (maybe native app as well at some point).

However, they are plenty fields from machine learning, to robotics that are also likely on the rise that would require some SW development skills.

Also, as mentioned by d0lph, I believe the high churn in web technology makes more people relying on SO, compared to let's say someone coding in C99.

But my view is probably skewed by working in embedded SW.


The thing is, with the ML code or the code for robotics that I've written over years, it's been predicated on the fundamentals of software development I've learned doing everything else. Good habits are good habits, disorganized code is disorganized code.

In some ways all the C/C++ I've written for my various robots and gadgets have been easier than even web development UI code because my button is LITERALLY a button, my screen resolution is a 2 row LCD, and I'm designing the system my code will run in. Don't get me wrong, I'm half kidding, but my point is that a good developer is a good developer in whatever area of development they want to work in.

You take a good web app developer and move them in to robotics, they'll be good quickly. At first they're obviously not as familiar with the domain, so there is a curve. But they will get strong eventually- assuming the EE side of things doesn't drive them away.


I agree with your point. When I said "development skills" it was not a judgement about talent, rather about "body count".


Ah, that makes sense and I definitely agree. The ability to write code in a decently maintainable fashion will certainly be necessary in fields that it wasn't and new fields entirely.

The upside for people that do this, as I alluded to, is that if you have these skills and want to do a new thing in a new field, it's an option. Things like SO will help you play with the new thing in the new field where you might otherwise not have any help.


>I have no doubt that the web will eat desktop application

I hope not.

There's nothing like a well-done desktop GUI EXE for richness of UI / UX. And desktop GUI apps can still connect to back-end services over HTTP or other technologies.


>I have no doubt that the web will eat desktop application

Both Steve Jobs and Bill Gates disagree with you[1].

[1] https://m.youtube.com/watch?v=wvhW8cp15tk


In 2007. Everything changes, it's our only constant.


What has changed in the limitations of the DOM?


Quite a bit, actually. Since 2007, we've gotten Javascript JITs, Canvas, WebGL, consistent box models, consistent event models, flexbox, CSS transitions & animations, CSS transforms, localstorage, IndexedDB, websockets, HTML5 audio & video, history.pushState, and several other features. And components (custom elements + Shadow DOM) are coming, and already implemented in some browsers.

Pretty much anything you could do in a native Windows app in 2007, you can do in a webapp now, except pwn your computer. Only problem is that the goalposts have moved: now everybody expects you to be able to do it on a phone as well, as well as access the camera, accelerometer (which you can do on the web, actually), contacts, calendar, and bluetooth hardware.


Uhm... the DOM is single threaded and sequential. It will never EVER be comparable to native clients.


Web Workers.


Yeah man. I've never heard of those. They sound like the best thing since sliced bread. Only if they could access the DOM...

Seriously... what are you even talking about? Why do you even mention them? You read single threaded and thought "Quick, I must come up with an answer! I can't let a stranger on the Internet change my opinion!"?


So, it's hard to understand exactly what it is you're trying to accomplish and why Web Workers wouldn't work for you because basically every single desktop GUI framework is single-threaded when it comes to actually updating the components on the screen. Win32 uses the GetMessage/TranslateMessage/DispatchMessage event loop. Swing has the UI thread, and then to update the UI from a background thread, you need to call invokeAndWait or invokeLater and pass a Runnable. Cocoa and iOS have Grand Central Dispatch, and to update the UI you pass a block to dispatch_async on a dispatch queue. Android has you call View.post() with a Runnable that contains your UI modifications. WPF has two threads, a rendering one and a UI thread, and you're supposed to pass long-running operations off to a threadpool and then call Invoke or BeginInvoke with a delegate to actually update the UI from them.

Web Workers are exactly this model, applied to the web. It's a dispatch queue running inside a threadpool. To update the DOM, you postMessage back to the UI thread and make your modifications there.

Are you willing to let a stranger on the Internet change your opinion?


This is getting tiresome. You cannot access key objects with webworkers. It's a lipstick on a pig. If you want to kiss it, be my guess, but please do not try misguide other people to do so.


Perhaps not in the limitations of the DOM, but how we deal with it is changing.


Their arguments are just as valid as then. Web interfaces will never be as rich as desktop ones. Cloud connected desktop applications will gain a lot of momentum going forward.


Right, roughly what I said in a parallel comment. Good to see others think so too.


Biased towards users of StackOverflow, not developers in general. Unless you believe the population of developers who took the survey is representative of the entire world of software developers--I'd be willing to bet it's not.


Yep, StackOverflow tends to be a ghost town on non-web-related technologies, and basic programming language contructs/techniques - and those are heavily weighted towards Ruby/Java/C#/Python, where the questions are not necessarily about web dev, but you can tell the questioner is working on the back-end of a web app.


Right.


Web is where the new stuff is happening, if you see a new framework or library 90% of the time it is some JS/browser based language. Thus this leads to a larger online community of people trying to make stuff work, and in the end more SO users.

Not to mention web apps being the new big thing.

To further that I think a lot of devs that tinker with things outside of work tend to tinker with web stuff more.


Web is where the new stuff was happening. The browser is very constrained - most of the 'new' stuff is to get around the browser shortcomings - e.g. react, angular. These are to solve front end problems that have been long solved on desktop environments (.Net, Delphi, VB maybe even Obj C though I'm not a fan)

Actual new tech is in the mobile sphere now imho, or server side AI, very little of this is web development except for the occasional front end for said apps.


As a former desktop developer, current web developer I think WebAssembly has a decent shot at changing that.

The tools I use now are significantly more crude in the business domain/for line of business stuff than I was using in the days of Delph 5.

Personally, give me something that can run Qt (or something like it) and Python in the browser and I'm 95% to been in heaven.


Am I really that much of an outlier in loving coffeescript?

I know a lot of people don't like the extra translation effort to debugging, and some aren't fond of significant whitespace, but I'm surprised that that's enough to make it into the top 5 most dreaded. Is there something else I'm missing?


My reaction to CoffeeScript over time:

CoffeeScript is shit, CoffeeScript is ok, CoffeeScript is great, CoffeeScript is ok, CoffeeScript is shit


I would assume it got "downvoted" by JavaScript developers that had to deal with it at some point.

(I personally prefer coffeescript)


Right there with you. I was generally aware (mostly from HN) that it seemed less popular than when I started using it -- but _dread_? Surprising. I really enjoy it.


I think dread is warranted. Seeing Coffescript is enough for me to completely disregard and abandon a project I otherwise perceived interesting.


Can I ask why? Just out of legitimate curiosity. I don't work with a lot of other developers.


I think it's ugly. It introduces uncertainty about the exact semantics of statements (as in does this code really do what I think it does?). It doesn't add any capabilities which JavaScript doesn't have. It makes debugging more complex, because errors are not actually happening in the code you wrote, but code a compiler wrote based on something else.

It introduces indirection and complexity, while adding zero value. As such it's on overall a negative value proposition, and that's everything it takes for me to decide something is not worth it.

I find it a perfectly rational decision and attitude.

While I'm not a fan per se, at least other transpired languages like typescript and clojurescript at least adds new capabilities to justify the additional complexity.


Definitely not calling you irrational - I really was just curious. I actually find your analysis pretty straight on. I realize now that part of the reason I like Coffeescript is because I like the way it looks! I'm more of a hobbyist, and haven't really had time to keep up with the latest developments in JavaScript, but I do understand a lot of the original reasons for CS may have been covered by the latest ES6.

Anyways, I do appreciate the response.


From the looks of it Ruby has really lost it shine.

It doesn't appear at all in the "most popular technologies, not even in back-end, and it lost 6% in "trending tech". It also doesn't appear in any other metrics.

Is it really a trend or that SO's community is not representative of Ruby practitioners ?


My personal impression was that Rails has matured and there aren't as many open problems at this point-- there are agreed upon patterns and gems for most things you want to do in creating a web app-- or at least a relevant SO answer that is the first thing that comes up when you google a problem or error message.

I know that isn't exactly what this question was measuring but I'd expect engagement for Ruby in general to fall on SO. Compare that to the current wild wild west of JS frameworks where everyone seems to be doing their own thing.


Well the SO community is definitely the representative of Web Developers community. And since Ruby is mostly Rails, and Rails is a web development stack, this tell a lot.

And I think that is the biggest problem with the Ruby communities in general, NO one cares about Ruby is dying. Not Matz, not DHH.


I noticed the same. Maybe the results are skewed a little bit by the SO audience but I think it's a real trend.


Very happy to see Scala both in the "Loved" and also in the "top salaries in US", and same goes for Apache Spark. I made a bet on Scala more than 5 years ago and it finally starts to pay off... although the Scala job pool is only a fraction of the JS one.


Here I thought it was referring to the Spark programming language.


> JavaScript is the most commonly used programming language on earth. Even Back-End developers are more likely to use it than any other language.

I'm not convinced this conclusion applies to the software development community as a whole. s/earth/Stack Overflow/


I read it as: "Man, I better get over my hatred of JavaScript." (Started when building front ends to databases in 1999. Haven't really looked back and that is 100% my fault.


I disagree. I'd much rather be forced to learn an entirely new profession and leave coding all together than to be required to write Javascript professionally.

One thing this survey doesn't really touch on is the way the rise of Javascript is related to a fall in software quality. We write a lot more code now. More people write code. And a lot of that code sucks and it's a shame someone foolishly considers it productive labor output. And a lot of that code, the sucky stuff, is Javascript.

Refusal to use Javascript is still a signal of a smart and quality-focused developer. Similar to refusal to use Mongo.

I wish the SO survey didn't just measure what tech is popular among employers or what tech is paid well. Employers are notorious for incorrectly investing in the wrong tech, shoehorning things in, and declaring 'victory' when they deploy a bug-ridden, 1-star app or something. That kind of situation, which is common, should be down-weighted in the survey results, if only it were easier to collect that data.


Cool story, bro, spread the gospel. Better keep people from easy access to programming and enjoy the beautiful software we had in the 90ies.


The same phenomena existed in the 90s. Enterprise and corporate bureaucracy will always be the main driver in terms of which skill sets appear most in-demand. They have been since the dawn of computing.

The modern misguided infatuation with Javascript is just another boring chapter in the same repeated story. In 15 years it will be something else.

My point isn't to convince anyone of anything. Indeed, most people who just want a job and just don't care will simply comply with whatever is popularized by enterprise bureaucracy.

But thoughtful people ought to remember there's no need for anxiety. Great developers survived the 90s and made lots of money without ever writing a single line of Java or enterprise C++. Great developers survived the 00's and made a lot of money without ever writing a line of enterprise C# or even ever opening Visual Studio.

And great developers will survive the 2010s and 2020s and make a lot of money without ever writing a line of Javascript.


So... If one was a great developer through the 90s to today and didn't write C++, C#, Java, or a line of JavaScript, what the hell were they writing? PHP? Perl?

Great developers are great because they love what they do, they're critical thinkers, and they've got an ability to find creative solutions to problems. Great developers are not great because they hate 'the man' and refuse to write code in the languages put forth by 'the bureaucracy'.

Bureaucrats didn't invent any of these languages or technologies. Developers (some of them great) did. You know who guides technology platforms in companies? The developers and the software architects. If Java and C# couldn't get the job done well for writing services and applications, nobody would use them.

If JavaScript wasn't the best we had available to us to create dynamic UIs in the biggest distribution platform in the history of civilization, we'd be using something else.

People that stand on the sidelines bitching about how GREAT PEOPLE don't do that without joining the fray and making it great to work with them often get left behind and forgotten.

Help make it better or get out of the way, but it's not a conspiracy by Big Company bureaucrats to trick us into creating the most engaging applications deployed to the most users easier than we've ever had it.


> If JavaScript wasn't the best we had available to us to create dynamic UIs in the biggest distribution platform in the history of civilization, we'd be using something else.

This is circular: "Because we use the thing, it's the best. If it weren't the best, we wouldn't use it. We use it because it's the best."

Companies use non-best things all the time, even when the better options are cheaper, easier, faster, safer, etc. Political control, gate keeping, nepotism, kickbacks, drumming up showy re-orgs and migrations and initiatives for short-term executive bonus optimization ... there are endless reasons why executives and management couldn't care less what "the best" solutions look like and will use unequivocally crap solutions, solutions that are demonstrably wasteful and inefficient, if it gets them their short term bonus or promotion, or whatever.

> Help make it better or get out of the way...

Complaining is perhaps the most useful tool there is for effecting positive social change. It's not only helpful, but necessary and vital that we keep whining incessantly about how unreasonably poor a tool Javascript is, and how most of the work people choose to do with it or choose to invest in is clouded by mistaken impressions about the usefulness of that work.

Most of what we have done to the "biggest distribution platform in history" is to utterly destroy the value it held, to make it a cumbersome, psychologically manipulative stream of noise that, while still providing value, doesn't provide nearly as much value as it could if we just simply stopped fucking it up with poor web development priorities.

It seems we won't rest until there's an ad tagged to every single transmitted bit. And we can't slow down at all, lest short term bonuses be lost, so we have to evolve our way to every-bit-an-ad using whatever bad tools there are now (Javascript) as opposed to stepping back a bit to think critically about what we're doing, and what good tools would be to actually solve the problems we should solve.

Instead, libertarian brogrammer founders and VCs just spew Randian nonsense that no, this is the market economics, and if every-bit-an-ad via bad Javascript is what makes money, then it must be what the world at large wants. Ugh...


You still never answered the question. What languages does a great programmer write in? All I've heard is what would exclude someone.


I would suspect that many of the grunt Javascript jobs would have been grunt VB6 jobs 20 years ago.


It's also the most common language on GitHub in terms of both # of repositories and total pushes: http://githut.info/. Why is it hard to believe?


Well, anyone who has ever written a webpage with a single script has used it.

I suspect that accounts for the overwhelming majority of developers now. I doubt that it means that majority is also writing the majority of their code in it.


I think it might actually be the case. It's a testament to how valuable it is to have a ubiquitous platform (especially one that's fairly uniform) on which to run your software.

But, sure, SO is extrapolating here.


> The average developer is 29.6 years old. The median is 27.

Does anyone else find this concerning given all the talk of age bias in tech?


Older devs probably don't use SO as much, because they are the one who built the great tools. They built the techology stackoverflow was based upon, they didn't need SO when they were developing in the 80s, 90s. they probably don't need it now.


Also: If you've spent 10+ years on a language/system, you aren't gonna need to ask questions nearly as much


Tbh, I haven't posted to SO in years but I participated in their survey.


Well, even if there weren't a problem with age bias I would expect the median to be skewed lower. The details indicate that not all respondents are professionals. This could include youths, still in secondary school who are learning to program.

But if the age distribution of people is such that the median age of humans were 27, it shouldn't concern us that the median age of this population of survey respondents is 27. I don't know what the human population distribution is but I took a quick peek at the US census bureau and it seems to indicate much more young people than older. I suppose that shouldn't really be surprising.


That caught my eye as well so I googled past surveys to see how the results have shifted. What was more interesting to me is the 2016 distribution is very comparable to the 2013 distribution. But then again this survey hasn't been going on for that long. https://docs.google.com/spreadsheets/d/16C6ZeNSvd-qIg45J9E-v...


Nope. A lot of people that identify as 'developer' move on to other roles such as team lead or architect or, if they're lucky, retire before they hit 40. There's also the bias of stack overflow's users, of course; I can imagine that experienced devs visit SO less and thus never saw the survery (I know I didn't, and I still occasionally visit it)


Those numbers are for the average SO user, not the average developer. Developers who've been developing for 20 years before SO showed up on the scene are less likely to make SO part of their development routine and less likely to fill out surveys about current programming trends.


In any field undergoing exponential growth, the median experience will be the same as the doubling time.

It wouldn't surprise me if tech doubles every 5 years, so 27 is not unrealistic.


In the past, gender discrepancy was justified just as glibly as ageism is now. People said almost exactly the same nonsense then: women just got married, they moved to other fields, this particular poll is biased (never mind they all show the same trend), they quit to raise children. In the ageism case, someone even ludicrously suggested retirement before 40 accounts for a significant percentage

Ageism is indeed a very serious problem and the same personality types that didn't want to fix bias problems in the past are resisting addressing the age problem with equal vigor today.


probably due to young populations in countries like India.


Finding it a little suprising that C# is still decreasing in popularity, despite Microsofts recent efforts:

2013 - 44.7%

2014 - 37.6%

2015 - 31.6%

2016 - 30.9%


I wonder if it's actually decreasing in popularity or StackOverflow is just becoming increasingly popular with other languages.

Looking at the number of responses to that question, there are lots more people taking the survey in the last two years!

2013 - 8042

2014 - 6537

2015 - 21982

2016 - 49397


There is probably a correlation to the slow rise of the mac platform and the slow fall of the OS X platform.

http://stackoverflow.com/research/developer-survey-2016#tech...

There are a ton of developers that will choose whatever language they have available and if developers are switching to mac they wont be reaching for C#. Then you have those that have moved on to F#. Objective-C has the same problem for those that have moved to swift. It is weird to think that next year perhaps 1/3 of SO developers will be on OS X. That is such a huge amount.

And in the last decade Linux has absolutely won the server market. It is going to take some time for the clr on Linux project to stop the bleed from projects that moved off c# just to move off of Windows servers.

Link to the full answers about tech from parent: http://stackoverflow.com/research/developer-survey-2016#tech...


Perhaps Microsoft's reasons for their "recent efforts" are becoming more obvious to you...


Well. It didn't decrease as much. Perhaps it's just taking a moment to reverse the momentum.


>We’ll also be keeping commas outside quotation marks, because that’s what developers do.

+1

This syntax feels so right to me, but I feel bad about myself when I use it. No longer!


Half of all respondents have 5 years experience or less. That seems likely to colour a lot of the other responses.


Apparently the last 15 years of your working life you will be more rare than a woman programmer (3% vs 5.8%)

It is absolutely fantastic the gender issue is being thought about at long last.

But it is absolutely horrifying the ageism issue is not. Or worse, is as glibly explained away as past discrimination used to be.


It might also be partly explained by selection bias among SO's audience. At my first real job there was no other developer there below 40, and a few approaching retirement age (indeed, I was brought on to replace a developer who had retired). But I was the only one who used SO, and really the only one who turned to the internet for answers at all rather than reaching for the books on their shelves.

(And also, our proportion of female developers was way, way higher than 5%.)

Older developers are certainly out there, but they're woefully underrepresented in open source.


Atom adoption among SO developers increased from 2% in 2015 to 12% in 2016. VS Code is at 7.2% and it's not even out of beta.

Both Atom and VS Code are built on Electron so it seems that web tech for building code editors and IDEs is getting really popular.


"95% of developers identify as either a Developer, Programmer, Engineer, Senior Developer or Full-Stack Developer. Embedded Application Developers are most likely to identify as Engineers. Graphics Programmers are most likely to identify as Programmers.

But Developer is the runaway choice here. It’s our top choice, too."

Good. This has always been a very silly thing to have to argue about. The people who care a lot about this topic are saying more about themselves by caring so much than any of the above titles would say about what they do.


II. Most Loved

1. Rust 2. Swift

That's interesting and cool. I have to agree myself.


Most loved top 5:

1. Rust

2. Swift

3. F#

4. Scala

5. Go


I would say "Most Hyped", perception of what we love is shaped by the internet opinions. I doubt many people do Rust as part of their job or even hobby projects. On the other hand Sharepoint and Objective-C is part of our day to day routine...


I... Love Scala.

It's just a really flexible language, while it has its warts, I feel they almost got it in combining the best of FP and OO.

I was a SharePoint developer in previous life. End-users love SharePoint, but it's a headache to maintain and debug. I think there is only a very small use-case where you will actually need some *.wsp developed. I use Nintex Workflow + Forms the rest of the time.

That being said, SharePoint devs gets paid well :)


The question was based on languages which you currently use and whether you would like to continue using them, little to do with "Most Hyped" or "Internet opinions"


What I want to know is, how many pennies were in the piggy bank? My guess was 176.



Damn, I was way off. Guess I badly misjudged my spherical pig radius.


I totally forgot that they even asked that, even more I forgot what my educated guess was.... Shame on me.


I see QA broken out as an occupation type in several graphs, including 11.6% of women. Overall, however, it's apparently lumped into Other, which would put it at less than the 0.1% who are BI or data warehousing experts, or machine learning developers. Really? No XY QA on SO?

Pretty sure the math doesn't add up, though:

* 5.8% of the 56,033 respondents were women

* 49,525 overall specified an occupation type, so let's assume 88% of the women did as well

* 11.6% of the women specified QA

* .1% overall specified machine learning

That's 56033 * .058 * .116 * .88 ~ 331 women QA alone, compared to 49525 * .001 ~ 49 machine learning developers.


If 10% identify as Ninja, and 17% of ninjas use windows phone, that seems to contradict this:

> We received 59 responses from Windows Phone Mobile Developers (.1%).


It's users vs developers.

1.7% of respondents are WP users (10% x 17%), and only 0.1% of respondents are WP developers.


I don't see a lot of Ruby. What's going on?


Ruby is part of the "Losers" in the Trending Tech. But so is Rust that is also the most Loved. The trend is only the number of upvotes in a topic year to year.

But this is always hard to interpret : does it mean that all basic questions have been asked so there is less activity or is it due to a drop in questions because lack of interest ?


Better proxy of a need/popularity for particular tech would be stats of stackoverflow careers tags not the questions


Use of Ruby is probably mostly for Rails and while Rails is still cool it's not as big as it was before. There's competition.


I'm surprised average hours per week or per year wasn't on the list. This also just confirms how grossly underpaid I am.


If 10% of developers on SO are students, and 2.5% graduate every year, does that mean every 10 years the population of developers increases by 25%? Do 25% of developers retire every 10 years?


Well actually close. If you have 40 years of productive work in you (20 years to 60 then retirement), then yes every 10 years 25% of the workforce does retire.

But I would guess that those 10% of students are heavily skewed to students in their final year of study. Second point is that not all undergraduate courses are 4 years, some are 3 years, so probably closer to 7.5% of students on SO graduate every year.

Which might indicate that the software development field is growing in terms of people active in the field.

*Then again software development is a young persons game, so "retirement" out of the industry might be higher since a lot of people will retire to other fields / management positions.


> Worldwide, developers with Masters degrees have the highest average salary. Developers with industry certifications and PhDs are also paid more than most other developers. Stay in school, kids

But in the graph masters was second to "mentorship program"

Can someone give an example of one of these programs? Is this just another name for an internship?


hey guys I want to learn node.js, and react.js where's a good primer on learning these things along with javascript fundamentals?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: