Hacker News new | comments | show | ask | jobs | submit login
Developer Survey Results (stackoverflow.com)
346 points by juba08 4 days ago | hide | past | web | favorite | 241 comments

Cool to see Redis to be in top position. For what is worth, Redis confessed to love developers, so it is definitely a reciprocal feeling.

Btw surprised to see "contributing to OSS" at ~50%. Looks like an incredibly high number (cit. Trump), so would be awesome to see this question more fine grained next time. This may be an indirect measure of all the work that goes into OSS to make it sustainable.

I would like to see: kind of contribution (Opening issues, PR, managing a project, ...) and average hours spent per week.

> Cool to see Redis to be in top position.

For those of us using it for many years now, it’s not surprising at all. Thanks antirez!

> I would like to see: kind of contribution (Opening issues, PR, managing a project, ...) and average hours spent per week.

StackOverflow could infer quite a bit of this by cross referencing the demographics from their survey results (assuming it’s not stored anonymized) with public profile information from GitHub.

It wouldn’t reflect the whole picture but, for a lot of major projects that are hosted there, one could see the engagement vs usage ratios.

I'm not surprised about the OSS contribution rate. I don't routinely contribute to major projects, but over five years ago I once rewrote substantial parts of the MySQL connector for an ORM we were contemplating using at work and got them merged just so we could demo it with support for some MySQL features we used. I also have a github with some really tiny public repos that people in super super niche roles might find useful. And of course I file bug reports and discuss features for projects I use routinely. Do I contribute to Open Source? Yes, I suppose. Am I a super active and dedicated contributor? Not really.

And I kind of think the above ballpark is where a lot of developers are.

Technically, almost anybody that has a GitHub account could claim to be contributing to OSS. I've got a dozen or more projects that almost no one has ever looked at besides myself, but they are public, and they do have an MIT license slapped on top of them, so I could torture myself into claiming that they are open source projects.

Definitely deserved for Redis, so thanks to you!

And I completely agree about the OSS - this makes me really question the sampling bias of this whole survey, because there's no way so many developers contribute to OSS. Unless you really do mean something like "reporting issues", etc, in which case i'd still guess the real number was below 10%.

Maybe "have a GitHub repo gathering dust" already counts?

> Btw surprised to see "contributing to OSS" at ~50%. Looks like an incredibly high number

Not every OSS project is massive and mature, like Linux or Firefox. I use a fair bit of OSS tools and libraries in my job and not all of them are highly polished. So when I run into an issue, I'll file a bug and usually supply a fix if I can.

Given the sheer volume of OSS out there and the ease with which one can make contributions, 50% seems surprisingly low to me. My best guess is that some developers are afraid to contribute.

The love for Redis seems almost the only data point in this survey that makes factual sense. Because Redis is factually awesome (thanks, ect.). Everything else just feels weird (visual studio? 2% woman? 50% contribute to FOSS? none of that makes any sense to me).

Thanks :-) Women at 2% is super discouraging, but it's also odd to believe that there is miscounting of gender. I hope it's just some bias in the amount of people of the two genders that replied to the questions.

(sorry for the sloppy fake news! it's 7% women, not 2%)

Oh ok that is more credible (unfortunately... Since very low as well). Thanks for the rectification.

Uploaded a one liner package to NPM = contributed to OSS.

I love the part about SO developer story: 84% either do not use it or have never even heard about it (which basically shows its failure) yet insights team tries to interpret it as 40% actually using it. Based only on this point, I wonder how extremely biased their conclusions are overall.

Quite a few of those stats seem suspect. For example, I personally find it hard to believe that "80% of professional developers" prize Javascript above all other languages. Seems unlikely based on my network (which of course is a representative sample of all developers).

20% of survey respondents said they're students currently. 50% of survey respondents have less than 5 years of experience. 30% of the respondents said they work on the front-end only.

That will lead to some really weird results when viewed in aggergate.

Where did you get the prized by 80% from?

I only see the "Most Popular Technologies" and it has JavaScript at 71% and it's not "prized":


As far as it's popularity is concerned. It's not surprising the in least. If you have anything to do with web development you're going to have to use JavaScript. Making it "popular" out of necessity but not "prized".

I'm using "prized" here as a synonym of "favored"; perhaps it's a bit archaic. I don't intend to alter or misconstrue the meaning of the survey result.

Certainly, a front-end developer has a choice of compile-to-JS languages from which they can choose.

Not too unlikely. Cannot praise what you don't know and JS is the only language for quite a few developers.

~50% of developers using standing desks is definitely not the norm either

Both you and SO are including the "it's out of date" category in your "side," that's why. Also their choice of wording is odd, I would have expected "Yes, but it's out of date." as opposed to "No, I have one but it's out of date."

IIRC checking it out, even just out of curiosity and not filling anything in, automatically created a sparse one based on your Q&A activity. That could explain the wording.

Were are you reading that? It's a long report but I wasn't able to find what you're referring to. Would be awesome if you could clarify!

Towards the end. Ctrl+f developer story.

With all the talk of Vim vs. Emacs, it surprises me that Emacs is in the low single digits, while Vim is 25% of all respondents.

It does not surprise me that it is 40% (and #1) amongst sysadmin/devops practitioners.

That's because vim and emacs have different purposes and the choices were not exclusive. I use emacs and even I know enough vim to get around and use it regularly. 25% of people claim to use vim, but for what? Occasional editing of individual files? In contrast, those emacs users almost certainly use emacs for everything.

This exactly, the guy next to me said yes to Vim (and makes sure to talk shit to me literally every single time I open nano) but he literally used Atom all day long and only uses Vim when editing a file stored on a remote server.

I don't care how you feel about nano, I use it less than .0000000000001% of my development time and it serves its purpose just fine.

Assuming you work 80,000 hours in your career:

80000(.0000000000001/100)60*60 = 2.88e-7 seconds spent in nano in your lifetime

[ I know it's an exaggeration :^) ]

This is my understanding as well. I “use” vim a few times a year for the past 30 years using only a half dozen commands (xaiwqyp). But I never use emacs other than playing around once a decade or so.

To get a good vi v emacs question you’d want to ask “what is your primary text editing environment?” Or something like that.

I think your point stands, in that there are probably many casual users of Vim who inflated that number. However, I'd like to point out there are many of us, like myself, for whom vim usage is more than "occasional editing of individual files."

Sure, but if you were to count people who have gone "all in" on vim I don't think it would be that much higher than emacs. I've never actually met a serious vim user, but I've seen plenty of emacs use in academia.

I work in an Linux heavy company with open source core product. Quite a few developers use vim as their IDE and all the ops don't really use anything else.

I'm in the system files / remote box camp regarding vim, tho.

It took me 2 weeks to switch to vim. Now I rarely use the vim itself, but I use vim plugins in all IDEs. To be honest, I don't like vim's plugin infrastructure, scripting language and a lot of other things, but the core - composable single-key commands - is a gem.

Emacs I gave a try for a month, and I still felt like a beginner. There isn't a single core idea that you can master; it feels like it's a never ending series of chords that you have to remember for every plugin and lisp code that you have to write to configure and personalize everything for yourself. And pre-configured distributions like Spacemacs feel even more complex. Evil mode behaves like vim 95% of the time, but 5% leaves you buffled and completely, utterly lost.

Sometime in the future, when I have enough time on my hands, I will build myself an emacs build from scratch, learning every plugin as I go along. Right after I build my own linux distribution from scratch - oh wait, I already did that, and it took less time and mental space than Emacs.

Personally, I enjoy the best of both worlds. Emacs with evil-mode (vim key bindings) for the win!



Often when I see a developer that I look up to actually work, they are on Emacs. Its definitely a small user base, but an influential one. I think if you were to limit the survey to readers of Hacker News, the proportion of Emacs users would be much higher.

Vim seems to be default installed on most Linux distributions, and Emacs isn't. If your work takes you across Linux servers, you're 99% sure to be "a Vim user" (in some capacity), regardless of what your daily programming environment is.

I prefer Emacs to Vim, but I prefer Idea for Java development over either, so since I mostly work on java projects on Linux servers, I actually use Vim significantly more than Emacs.

Interesting that you feel you can use Vim to write Java. I love Vim, really. It's my most favorite editor of all time. But for Java I wouldn't want to miss the auto-complete, auto-import, debugging and fuzzy search features of an IDE.

To play devil's advocate, it's possible to get a lot of those features in vim, see

- https://valloric.github.io/YouCompleteMe/

- https://github.com/kien/ctrlp.vim

- etc

Anything else can quite easily be added via more plugins or by using a terminal multiplexer like tmux or screen (or a more complicated terminal like terminator, iTerm2, etc

I use vim/tmux exclusively for my development, and while I don't use Java, I don't feel that I'm missing features that my coworkers running atom/vscode/etc have. I will admit that stepping through a debugger might be a bit harder, but I seem to find a few debugger plugins around, so I'm guessing someone has solved that.

At the time I checked it, YouCompleteMe under the hood was running headless Eclipse as background for its features. So for me it was even worse than using the IDE directly. Now instead of one lightweight tool I had two tools to do the job of one.

If you are programming in Java most of the time. Vim and Emacs are both ruled for any serious work. Its just not possible to deal with that much verbosity without an IDE like Eclipse or IntelliJ.

Vim and Emacs are editors for languages where you do more thinking and less writing.

I'm sorry if that was unclear, but I explicitly prefer IntelliJ Idea over either Vim or Emacs. I'm sure you can write Java in either, but, no, certainly not willing to give up on the auto-stuff.

There’s a VIM plug-in that lets you have the best of both worlds.

Is there still a Vim vs Emacs debate? There was, 20 years ago, but Vim made an entree (renaissance?) outside the old school Unix crowd 5 or 10 years ago, and since then, Vim users vastly outnumber Emacs users (in my highly unscientific observations).

I'm certainly one of the Vim clique and I love a little religious infighting between communities. So I'm quite happy that this battle is ongoing. Just in another thread a few days ago HN community discussed about how much org-mode strengthens the interest in Emacs. And I have to say it's really great, if you can accept that everything happens in Emacs.

It doesn't surprise me that much; I personally found it _way_ harder than Vim to get to grips with. Although I would have thought Spacemacs adoption might have pushed it up a little bit, as that was my entry point as a Vimmer.

it pleasantly surprises me that VS Code is leader in pretty much all Dev categories. I love VS Code.

I personally don't consider vim as an editor, to me it's rather an editing engine, which can be used for Editors/IDEs. You can activate the vim engine in Emacs, VSCode, IntelliJ, etc. I think it's the most powerful text editing engine out there.

VSCode does a pretty good job implementing the vim engine, IMHO. They integrate neovim directly [0]. The plugin has almost 2 million downloads, btw.

I think the future of vim is not "vim the editor", I think it's "vim the engine".

I guess this is also the reason why Vim is so much higher than Emacs in the stackoverflow survey.

0: https://github.com/VSCodeVim/Vim/issues/1735

Emacs's power largely comes from what and how one would use Elisp. Though Emacs is a great editor in itself. But the true power of Emacs is to use Lisp and its power of Macros to convert Emacs into a AI code writing utility. In other words you write Elisp, and Elisp writes your code. Of course this also extends to the fact that you could eventually use Elisp to automate tasks in the software development workflow.

I think huge disservice has been done to Emacs to use it as an email browsing or as an project management utility. One could use Elisp and do all sorts of curious stuff inside the software development workflow itself.

But if you are using it for editing and for that purpose only, I can absolutely see why vim would be winning. Its just the best lightweight line editor out there.

I guess it depends on how people interpreted the question. For example, Vim is the default editor for git commits on some installations, so maybe some people already counted that in, even though they don't use it for other editing purposes.

Isn't much of that talk "hyped"?

vim is for when you want to edit anything in the console. Git commit? Vim. Quickly edit a config file? Vim. SSH'd into a server and need to check something? Vim.

Day to day coding ... VS Code. Used to be Emacs, but I switched.

Oh and Vim is still the only editor I dare use to open a 1GB CSV file with.

>Oh and Vim is still the only editor I dare use to open a 1GB CSV file with.

vim isn’t actually even so good at this. It still needs to read the whole file into memory. Yes, it doesn’t need to syntax-highlight the whole file, but it does still need to keep it in memory.

Other editors work by just loading enough of a big file to keep the illusion up that they have loaded all of it, when they are in fact dynamically loading and unloading parts as the user navigates within the file.

I think sublime works like that, though it still does something that requires load time proportional to the file length.

Many hex editors also do this, probably out of necessity because they are often used to inspect huge binary files (like disk images), though thanks to never having to do line wrapping, they also have it much easier to do so.

> Oh and Vim is still the only editor I dare use to open a 1GB CSV file with.

There are actually editors which are disk-based instead of memory-based. The only one I can think of, though, is UltraEdit.

Yeah, that's what I don't get from the Emacs crowd

The learning curve is anything but smooth for Emacs. For Vim, it's much easier (note I said VIM, I'm not wasting my time with pre-direction keys typing methods)

Emacs is a tool designed for power users. And I think its a good goal to strive for. Programming should be really about pushing the boundaries of what is possible, especially in case of tooling.

I've seen developers even people with 10+ experience repeat several manual things in case of general software development workflow. Every developer must know how to automate things like this.

In fact everything apart from the thinking part should be automated in most cases.

I agree with most of your points, however they can't be accomplished solely by using emacs

A lot of my automation is done in Bash, some in Python and other languages, not necessarily in the editor

vim is Git's default editor. Emacs isn't even installed by default on many system.

"By default, Git uses whatever you’ve set as your default text editor via one of the shell environment variables VISUAL or EDITOR, or else falls back to the vi editor" --git config guide https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Confi...

Git for Windows ships vim for example.

Actually, it ships user choice now. (You can select VS Code if you like.)

Note the salary graph that shows if you've got over 10 years experience you can either be an engineering manager (small cog in a big machine) and make a ton of money, or a CTO (big cog in probably a much smaller machine) and make 20% less.

That graph isn't showing years of experience vs. salary, it is showing average years of experience by role vs. salary. Most developers with more than 10 years experience are at the higher end (at least) of that graph, but those numbers just aren't what the graph represents.

For average salaries, why does this survey not display the sample size and variance of these mean estimates? Also, I doubt that mean estimates are the best measure, rather than medians. I say that since salary data is probably multi-modally distributed with some very high earners and a largely left-skewed distribution with many low earners who do the grunt work / are less experienced.

the CTO/CEO point probably reflects that people who start their own company AND take the SO developer survey always call themselves CTO or CEO. People don't start their own company and call themselves a developer or an engineering manager. CTO ... of what? Most startups will die before they ever have an engineering manager.

C-suite is by definition close to the top but I wish more people would understand it also needs to be far from the bottom. You're not working on the types of things the C-suite works on unless you have a lot of people below you taking care of everything else.

As a queer female go programmer with over 15 years of programming experience, I did not realize how much of a statistical outlier I am. Neat. (I have trouble adopting the mantle of minority, as a well-paid middle-aged white person).

As a straight male Kotlin wannabe with over 35 years of programming experience (with the first 20+ years paired with hardware development), I'm also going to refuse to be categorized (nothing wrong with Cobol but I like the new shiny things the youngin's are playing with). I think the most interesting facet of software (the cerebral creation of something out of nothing) is that there's a way for everyone to contribute in a way they find enjoyable.

I just graduated to the elite 0.3% group, '65 or older'. Like you I like being an outlier.

> Most developers feel that management is ultimately most accountable for unethical results of code. Just under 20% of respondents said that a developer who writes code used for unethical purposes is most responsible.

This kind of surprised me. On the one hand, we complain about being considered code monkeys and mere "implementors," but on the other hand, if we're asked to code something unethical, well "we're just following orders." I personally think we, as a profession, need to kind of grow a backbone and step up our responsibility to no do harm. Ask doctors this survey question and see the wildly different results.

Human beings have a tendency to overestimate our innate ethical abilities. The Milgram[1] and Stanford Prison[2] experiments are usual examples of how quickly and easily humans devolve into despicable behavior. We really only need a small nudge and most of us end up capable of being Holocaust interment camp guards. Recognizing your own enormous ability for evil is important or else you might easily end up acting on it.

[1] https://en.wikipedia.org/wiki/Milgram_experiment

[2] https://en.wikipedia.org/wiki/Stanford_prison_experiment

You should certainly report it to the appropriate managers. But, ultimately, ethics is highly subjective: and it's not your choice. You've sold your time to the company and have to produce the products it makes: even if you don't like their ads or product. You can say no, they can fire you and hire someone just like you and the product would still get made.

Being a doctor or developer is entirely different. The doctor has much more freedom in deciding a course of action. As a developer you have very little power to decide what get's produced, because it's not your job function: that's what product managers are for.

I think that one result is a bit misleading.

79.6% said they consider the ethical implications of what they are asked to do.

82.3% said they would report ethical concerns in some form.

58.5% said they would refuse to write code they thought was not ethical (36.6% said they are unsure).

Good point. I was also puzzled by that result, given the responses to the question I mentioned. The picture it paints is that software professionals feel their duty is to consider, complain, and (less so) refuse, but ultimately responsibility lies elsewhere.

>>I personally think we, as a profession, need to kind of grow a backbone and step up our responsibility to no do harm.

Not possible in most companies where your career depends being a yes man to the management. You would be surprised how often doing the right thing gets people fired. Of course you could say 'grow spine' or whatever. But you can't suffer for ever in a ecosystem where everything is stacked against you.

At some point in putting food on the table takes precedence.

I was seriously surprised how popular VSCode has become. I know it's good, but for MS to win IT crowd that fast... kudos.

Visual Studio Code + the cquery extension is heaven for me coding in C/C++.

Also checkout Clang-Format. It's so awesome to mark some unintended code and have it formatted instantly in your editor with a key press. All while editing the file via the Git diff view :)

It's a good text editor, and when I'm working with lots of Dockerfiles and Terraform configurations it's replaced Atom and Notepad++ as my go-to editor. The JavaScript editor's not half bad either.

But for serious development, I don't think I'll be dropping Webstorm or Rider for it any time soon though.

Remember that this data is representative of Stack Overflow's audience, not of the entire industry.

I'd say that a pretty representative swath of the industry visits StackOverflow. What segment of the industry do you think is missing in this representation?

Different sectors of the industry use StackOverflow in varying amounts. Systems programmers on the whole probably use SO a lot less than JavaScript programmers, for example. More senior engineers use it less than more junior engineers. And so on.

I've visited SO but I've never made an account, took a survey, or even know a survey existed.

yeah those incomes are telling

I’m actually surprised that around 64% of the developers are having a “Computer science, computer engineering, or software engineering” degree.

I do my personal statistics for colleagues I’ve met and the percentage having no degree or degree in another field is around 7 out of 10.

Maybe that’s because I primarily work for startups and do my survey in the startup culture, but still it’s fascinating how much of those developers took the decision to become one at around high school age.

This probably depends largely on the area. Since you mention high school, I guess you're mostly referring to the US situation. From what I've seen in Europe, most (I'd say more than half) of the devs actually do have some degree in CS, or at did a corresponding apprenticeship.

But still, I'd say the percentage of career changers is much higher than in most other fields.

Yeah, most people in the industry don't work for startups.

You also have to consider this isn't an scientific survey, just a fun parlor game.

> Maybe that’s because I primarily work for startups

startups are only a teeny weeny blip on the scale of "code" companies. Mastodonts such as IBM, Atos, CapGemini, Sopra and a few other are alone more than multiple hundred thousand employees.

This does not say only one degree. You might have a percentage that sums to more than 100% here.

People tend to put in the most relevant one anyway when given the exclusive choice.

having interviewed over the years in NZ, I'd say its around 90% with degree.

But I've worked mainly in companies building quite technical products.

Two unrelated remarks:

I'm surprised that Elixir was the 6th most loved language last year and disappeared this time, while Erlang gained some points. Was it even in the survey?

Also it's interesting that women placed compensation at 4th in "Differences in Assessing Jobs by Gender", but if you point that fact as a contributing factor for the pay gap you can be labeled as sexist.

> you can be labeled as sexist

You'd have to take those data points in isolation and conclude "men like money more than women" to earn that label.

I don't think anyone is surprised to see evidence that an exclusive workplace culture contributes to the pay gap. I'd posit that all else being equal, women value compensation and culture about the same as men. The priorities reflected in the survey are a symptom of the problem, not the cause.

Even more striking, "the diversity of the company or organization" is second last for women.

> The tech industry is struggling overall with issues around diversity, and individual developers are not making it a priority when looking for a job.

So perhaps it's not the "tech industry" that's struggling, it's some vocal minority that would like to convince you it does.

that's a poor interpretation of the data.

That question is not "how satisfied are you with the state of each of these things now", it's "how much do you weight these categories when assessing new jobs". The fact that women don't put diversity at the top doesn't mean that they think that the state of diversity is good. It means that it's not a highly ranks job-selection criteria.

What people are prioritizing in a job hunt is what they're not getting in their current job. Women put "The office environment or company culture" first, men put it fourth. Why? Because women leave jobs because they get treated poorly. Men leave jobs because they think someone else will pay them more.

For most people, the priority is not in making sure their company looks like a college brochure, it's in finding a place where people will treat them with dignity.

"women leave jobs because they get treated poorly. Men leave jobs because they think someone else will pay them more"

What a stereotyping generalization.

Also, underpaying is a (fairly common) form of poor treatment.

This is an excellent interpretation, thanks for sharing.

> Even more striking, "the diversity of the company or organization" is second last for women.

My wife works at a tech organization that is (unsurprisingly) mostly men. The data here seem to align quite well with what she has told me several times. Namely, she doesn't much care about diversity at the workplace since she feels the organization's values and culture result in her being respected and able to be a valuable member of the team regardless of who she is working with.

When she is able to work with other women in the organization, she does find that refreshing. So I think she would like to see more women among the team, but it's not something she thinks about much, putting it below other more important matters.

I took the survey and think I remember not seeing Elixir as an option. I would have definitely voted for it.

Just started my first Elixir project using Phoenix since I needed something that could handle a large message volume and scale. I'm a bit surprised how good it is!

> Also it's interesting that women placed compensation at 4th in "Differences in Assessing Jobs by Gender", but if you point that fact as a contributing factor for the pay gap you can be labeled as sexist.

How can you be labeled sexist if you point out a simple fact?

You already know the answer to this. The context of your fact-based statement is where it's meaning (and any offence/labeling) is derived from, not the fact itself, and in this case the person you are responding to is adding an additional fact without citation:

This is the "simple" fact:

> Women placed compensation at 4th in "Differences in Assessing Jobs by Gender" in a StackOverflow survey targeted at people (mostly developers) who use stackoverflow

This is the additional fact that has been added:

> [that fact is] a contributing factor for the pay gap

And then the phrase

> you can be labeled as sexist

is added, which of course can be applied to anything anyone ever says about anything gender related.

If you deliberately add unsubstantiated information to a fact you will probably be called out for it, and rightly so (IMO).

Because there is context beyond "simple facts". A "simple fact" doesn't necessarily mean what the person presenting it thinks it means. There are other factors that go into this "simple fact" that may or may not be mentioned by the person presenting it.

So while the fact itself may be true, the causation could be different from the implied causation by the presenter. For example I'm sure you noticed that women skew younger on this survey. If people are earlier in their career perhaps experience and culture matter more than pay. People later in their careers have families to worry about, so they want more pay and care less about culture and languages.

I'm not saying I'm correct in this assessment, but what I'm getting at is there needs to be greater context around "facts" beyond the first thing that pops into your mind. Facts can be twisted in many ways to hurt people, be more critical of the things people say on the internet.

It jumped at me because many feminists say that "women care less than men about compensation" is an excuse from the patriarchy to pay women less.

So the survey data may be a hint that it's not entirely a myth.

My personal experience would be that developers are bad at (or hate) negotiating salaries anyway :)

See this thread, for example.

Ask Damore.

Yes, he clearly only pointed out facts and nothing else. This is a fair and honest assessment of what happened.

You must be new to the internet. Hacker News has strong moderation so its one of the best asshole corner of the internet, but make no mistake, you are still in an asshole corner of the internet where you conform or are silenced.


If all of the items women prioritise above pay were related to the extra challenge of surviving in sexist workplaces as a woman, your comment would be valid. However that, and—possibly—working from home/remotely, are the only two where this applies (the latter was ranked similarly at 10.2% and 10.3%, and in the same position).

Adjusting for your argument the answers are as follows:


  19.0%   The compensation and benefits offered
  17.6%   The languages, frameworks, and other technologies I'd be working with
  15.7%   Opportunities for professional development

  16.8%.  Opportunities for professional development
  16.4%   The languages, frameworks, and other technologies I'd be working with
  14.1%.  The compensation and benefits offered
Note the large, almost 2% gap for women between pay and the previous priority, and the large, almost 2% gap for men between pay and the next priority.

It's not clear to me that these are the same at all - if (emphasis) it is true that women do not value pay as much as men, and for this reason they apply for roles which lead them to be payed less - who exactly is the victim here? Are we not trusting women to know what jobs will make them happiest?

It is clear from their own accounts that many women face discrimination at their workplace, and that being subject to it brings significant costs.

Unless you want to argue that women should knowingly accept positions where they will be discriminated against, the effect of sexism is that the viable job pool for women is smaller for reasons outside their control.

This is a fair point, I had not thought of it that way before.

It's a similar thing to those old (and way unethical) '70s and older studies they used to do to schoolchildren. Various forms of psychological abuse (telling them they aren't doing well even if they are, grouping them and prodding one group to harass the other) can negatively affects academic performance.

Is it though? Seems as though OP was just pointing out something interesting from the data. He was not making an argument for or against being labeled sexist. What is your solution to the pay gap between women and women, women and men, and men and men (specifically women and men though)?

Well that's stretching my words quite a bit.

>Also it's interesting that women placed compensation at 4th in "Differences in Assessing Jobs by Gender", but if you point that fact as a contributing factor for the pay gap you can be labeled as sexist.

Perhaps the women that responded would rather get paid less than work in a bro culture because they find it unbearable, not because they don't value being compensated well.

Yeah no body is arguing against that particular point. I have to say OP was just pointing out that preference on it's own can contribute quite a bit to the "wage gap".

Yes, I get that. What I'm saying is that it's reductionist to just chalk it up to preference and call it a day. It's a complex issue.

They are less in opposition then people in these discussions make it up to be. The same people who tend to take you seriously tend to also be willing to pay. And jerk culture tend to prevent your career development, will affect your reputation in front of third parties, and affect both your confidence and ideas about what you can achieve, so eventually you end up with less salary. Bad culture usually implies a lot of nepotism and ass kissing with people taking any dirty advantages they can - and that implies any bias against you being much more mattering then in good culture.

One exception is when higher salary is because of "moral values and ethics" trade-offs. And I would be very careful before I would imply that men are more likely to do that trade-off.

I think it's interesting how VS Code jumped from 5th place among web developers in 2017 [1] to first place [2]. This made Sublime Text lose a place, putting it in third. If I were ST's Jon Skinner, I would not be happy about having M$ as a (free!) competitor.

[1]: https://insights.stackoverflow.com/survey/2017#technology-mo...

[2]: https://insights.stackoverflow.com/survey/2018/#technology-m...

I quite enjoy the irony that Coffeescript—a language apparently invented to make Javascript more palatable—is the third most dreaded language in the survey.

Atom is written entirely in Javascript and I can edit it however I want??? Thats AWESOME!

Wait its written in coffescript...fuck you.

That's a replay of a real life experience that went down when I first heard of Atom.

The more layers you add, the less inclusive it becomes. Coffeescript is decidedly a divisive technology.

I think the "dreaded" category is quite complex and hard to interpret. People can dread a language for a bunch different reasons that aren't necessarily related to the attributes of the language, or even how much it is intrinsically liked. One is a class of language where people run into it incidentally without having any deep experience, but are forced to interact with it, and find it very unpleasant. Groovy, for example, is as popular as Scala or Kotlin, but also one of the most dreaded languages, I think because there's a large number of people whose only encounter with it ever is when there's something wrong with their Gradle script that they can't figure out. Coffeescript could be a similar kind of case.

> Groovy, for example, is as popular as Scala or Kotlin

Things have changed in the past few years. I would now put Apache Groovy in a different tier than those other two. Kotlin's rise has been at Groovy's (as well as Java's) expense. So nowadays I would rank JVM language adoption as these tiers:

  1. Java
  2. Kotlin, Scala
  3. Clojure, Groovy
  4. others, e.g. JRuby, Ceylon

Rust wins "Most loved" for the third year in row!

And yet corporates still don't use it and schools don't teach it.

This shows how much power opinions have.

There are over 100 companies who are willing to put their logo on our website, and others we know about but can’t say, including Fortune 500 companies. Dropbox just went public and their project in Rust (and Go) was cited as a reason for their increased profitability. There have also been multiple university classes in Rust.

It’s a start.

(Also, this survey never claimed to be measuring either of those metrics...)

We have been using Rust in production for around 2 years now (yes its been a bumpy ride...) at a big stuffy old school finance company that I'm sorry doesn't want their logo on your website.

The Rust code is not only mission critical, it is literally THE defining factor that has won us several very large contracts now.

I make no attempt to compare Rust to other alternatives in its class, we chose it because we were developing primarily with Ruby/Ember at the time and it felt like a natural fit.

Glad to hear it!

It took decades for Python to be as popular as it should have been. Now it's got the point that it's overhyped. So maybe give it 20 years?

overhyped? why?

It's got to the point that people think their grandma should be learning Python and it's a big buzzword in business at the moment.

> This shows how much power management opinions have.

Or how little power developer opinions have.

Then again, -managing developers is like herding cats I heard so I wouldn't be surprised if there are a lot of small Rust projects hidden in the undergrowth.

What's up with Rails not being included in the Frameworks section when Django and Node.js are? According to Google Trends, Django and Rails have similar interest:


That's weird. Also, can Node.js even be considered a framework? Isn't it just a run-time system?

This illustrates the confusion about JS in general.

Yeah i guess they don't include Rails as an option? Like other comment said, the survey probably didn't include Elixir as well, even though Elixir got a nice rank last year.

As a Rails developer, it's sad the number for Rails is far behind Django. This might make some confusion for people who are deciding which MVP framework to use.

There seem to be a lot more young developers than old developers. But, why? I can only assume that either, the number of developers is increasing (more and more young people entering the work force), or a lot of people stop being software engineers after 8 years. People usually work between the ages 22 and 65, so given a even distribution, if the industry isn't growing by leaps and bounds, the average work experience should eventually be about 20 years with an average age of 42.

Growth of technology and an increase in job openings. Plus, a bit of cultural shift too. I think a lot of older developers grew up during a time when spending a lot of time using technology was considered weird. While today, not using technology all the time is what is weird.

Also, software developers are much more highly regarded by young people now than ever before. There's this image of the young, rich entrepreneur creating products that everyone loves, and people want to be this. So a lot more smart people get into the industry because it's the cool place to be, hence the rise of "brogrammers."

there's a lot of students.

Students and younger devs need to ask more questions, so they have a more active presence. While an older dev may still need to ask questions, they can just google, and find the answer without needing to create an account.

It could also be that more experienced developers don’t have time to take surveys.

Don't take this too seriously. It's a self selected group of people. Most professional developers didn't take the survey and it's didn't corrected for any variables.

I am not sure about you, but as my career as a developer progressed I rely less on Stack Overflow today as I did in the past. To me it seems that this survey may have a strong bias.

One nitpick here - they refer to Angular as AngularJS - these are actually two different things. I don't quite remember but did the survey itself distinguish between the two? If not then this will skew the numbers upwards.

i rather they be combined. I know they are different but one is the successor of the other.

I don't believe that "Almost half of professional developers contribute to open source projects.", even if you count every single half baked unfinished project on Github as contributing to open source.

It's not half of developers, it's half of developers that answered their survey.

I'd be willing to bet that people that answer surveys about this are generally more involved in other areas online like OSS.

Contributions include bug submissions and (were possible) comments in RFCs, right?

Yes, but even there the 50% seems too much. I can see people submit that much bugs in cutting edge communities (where there are still a lot of new bugs to submit), but when you work with something stable you rarely ever need to do so. There is huge amount of positions where people successfully use what exists.

Plus, calling bug submissions as open source contribution is a stretch. You would not call "contributing to close source" when someone reports a bug to a company.

I have 3-4 public github repos ( <20 stars ) and I sometimes participate in definitely typed typescript moderation. I remember that I checked “participate in open source” on that question

The "Platforms" answers are hard to believe, or let's say it's hard for me to believe that they are remotely representative of the overall developer population.

18% claim to have done development work for macOS. That's more than for iOS, which is neck and neck with Raspberry Pi.

What's going on here? Have web devs simply checked all platform boxes?

I guess many misunderstood the question and answered macOS because they use a Mac for development.

It's also really strange (to me) how no PHP frameworks or CMS made the cut.

WordPress is up there at 16%

Ah yes, I was more thinking about the "Frameworks, Libraries, and Tools" section, my bad.

Really, really peculiar to me was that no blockchain platforms were included. Would have been particularly interesting imho in relation to salaries and experience levels.

I'm surprised Vue doesn't show up on the list anywhere. From everything I've seen Vue should probably show up in either the loved or wanted categories.

Maybe because the docs are good enough and easy to understand. I can't remember if I ever looked up things on SO for Vue.

I'm not sure anybody outside of HN readership knows about Vue at all. It's either Angular, old Angular, or React everywhere.

Don't you think that's a bit naïve? Take this anecdotal counterevidence for instance: none of the four people I work with visit HN but all know of Vue.

Who Is Ultimately Most Responsible for Code That Accomplishes Something Unethical? 19.7% voted "the developer who wrote it"

Do Developers Have an Obligation to Consider the Ethical Implications of Their Code? 79.6% voted "Yes"

I initially bumped on this one too, but "obligation to consider" doesn't mean "obligation to quit their jobs over". You consider the ethical implications, you push back against management, management tells you sit down. Are you now obligated to quit? If you decide to keep your job, knowing that the code will be written either way, are you now ultimately responsible for it?

(Completely unrelated but the first thing that came to mind: https://www.youtube.com/watch?v=GKdgDX2dGh0)

The "Why Do Developers Participate in Hackathons?" question is missing an answer option that I suspect is distressingly common: employer-mandated hackathon participation.

Multiple places I've worked, and many places I've heard about from my peers, require employees to participate (either as a "this is just mandatory" requirement or as a "this influences a milestone on your performance review" requirement) in company-sponsored or external hackathons.

This trend is somewhat distressing and deserves to be highlighted, I think.

I wonder why there's so much dread for Cordova. It's a framework you don't interact with often while using it, so I would assume devs would have neutral, unemotional stance towards it, but apparently not.

Because a lot of us web deva used it once for a contract before swearing it and all of mobile development off forever. I’m sure it’s come a long way since, but it was pretty brutal to understand and debug years ago.

Because you're actually interacting with two completely different stacks at least that have a pretty leaky abstraction. So you only get the painful parts of iOS development, certificates and build chains not the fun parts. Repeat that for Android. points double barreled shotgun at chin

As a native iOS dev I write my own wrappers for web applications, I think Cordova is too just too much hassle for what it really does and only limits my possibilities as a native developer hosting a web application.

Off-topic: Any good point in how make the android webview to perform well?

Cordova is highly popular, and is used by web developers with limited native development background. Given that Cordova manages native projects, which is complicated and ever changing, it proves to be a complicated effort. Additionally, it has a large community of volunteers building plugins, but with inconsistent maintenance like any OSS volunteer effort.

You're starting to see the same thing with other cross platform tools like React Native with managing upgrades and out of date plugins that rely on now-deprecated APIs. It's a hard problem if you're not willing to go in and learn how to manage each platform. Cordova is a victim of its own success when it comes to these surveys.

Wow people actually use Ocaml at work?

Yep! Facebook and Docker among them.

Also Jane Street etc.

Another #FunFact: Perl ranked number 5 in "What Languages Are Associated with the Highest Salaries Worldwide?"


#1 in Perl programmer happiness also. (Not part of survey.)


Just out of curiosity, why do so many people want to learn Go despite it not being used that much, 7.1% from the survey?

If you come from a Python/Ruby/JavaScript background (which is a lot of people), Go is a language that is not much more complex but will run faster and be easier to distribute. I can see that being a big appeal, especially compared to something like Rust or C++ which is going to require a lot more learning to become productive.

I started with Go out of shear curiosity a few years ago. Built a few web backends with it, and a number of simple utility tools with it. I know this is a bit of a broken record line, but it's standard library and simplicity have made it something I naturally gravitate towards. Especially when I need to do something quick.

Who wants to learn Go apart from the people posting in Go threads here on HN? I have yet to meet anyone who is not in this micro-cosmos who's even heard of it.

Hype feeding hype?

On a side note, I've been using it at work and I'm actually quite liking it myself

Maybe because it is a Google language, if it was done at company XYZ no one would care.

Also because anyone jumping into the Docker/Kubernetes train eventually has to deal with Go.

Whhy is the salary for F# developers high?

I assume that F# developers bring better business outcomes.

I am both a C# and F# developer, and in my experience functional code (F#, OCaml etc) tends to be 5 times less buggy than an imperative equivalent. F# compiler does an impressive job of catching errors at compile time: this is the primary reason for better outcomes. The second significant contributing factor: functional code tends to have less side effects, and thus developers can reason about such code more realistically.

A third contributing factor is lazy computations. Which leads to (surprise, surprise) better overall performance at runtime.

Less bugs + Better performance = Higher salary

Though I don't say F# is perfect. It has its quirks and there is a lot of room for future improvements.

I'm led to believe F# is popular amongst the quants, quants work for the monied.

Agree so before jumping into learning F# keep in mind it does not go that way "Know F#" -> "high paid job". It is more probable that those guys were already in place where F# was useful so they started using it as best tool for the job. So they were already highly paid.

There aren't that many of them. Companies using F# pay a premium.

I believe it has seen some significant adoption in finance.

On that note: Anyone know of any good F# learning resources (preferably books/text) for an experienced C# developer who has only done a little bit of functional programming (Haskell, Clojure) here and there?

Get Programming with F# is finally done, and looks pretty good


Real-World Functional Programming With examples in F# and C# is another good one


The NoStarch Book of F# is a pretty decent beginner's book


Would second the vote for F# Deep Dives as well.

"F# Deep Dives" is very practical and should work for beginners: https://www.amazon.com/gp/product/1617291323

Coming from the web world I find the term "back end developer" a heavily abused term. Most developers of web products would consider themselves back-end developers and typically program in either Java (or one of its variants) or C#. This isn't back-end merely because it isn't in a browser.

Your average web product Java developer is all middleware. They write code that gels between internal services and output to the user environment. At most large web companies real back-end teams are heavily isolated and don't let the middleware people come anywhere close to them even if they are all writing in the same language. If your web-product Java developer needs data they call to a service managed by an unrelated team.

Any idea why salaries for C/C++ developers seem to be way below average in these stats?

Least paid developer type is game development. And c++ is commonly used there.

International responses skew the salary data and make it useless.

This is true. It always feels weird answering these kinds of questions living outside of the US. You can easily have a salary that is several times the average of your country (I'm talking like 20x) and still make about half of what you'd make in the US, when shown in USD.

C++ is consistently less well paid than Java in the US and in the UK.

C/C++ are basically languages used only for technical products, while Java/web is used internally by pretty much every large company on Earth. This puts immense pressure on salaries.

I like how Scala is connected to Spark and Hadoop but nothing else...

>.NET Core

Thanks they hadn't put a Silverlight instead of .NET. StackOverlow makes this mistake third year in a row. It is not .NET Core, it is .NET.

.NET Core is just yet another implementation of .NET runtime.

As a .NET developer, there's a difference between saying .NET and .NET Core, however.

You can be interested in .NET Core but not in .NET in general if you're looking for cross-platform applications, for example.

Having used .NET for almost a decade, I think I selected .NET Core for a couple options since I hadn't been able to learn about the differences. And there's pretty significant differences, especially tooling support (like the inability to really do database-first as easily as you can with .NET).

So, I think it's fine.

Nice to see C++ on the loved languages section, while C only deserved an entry on the dreaded ones above C++ and has half of the wanted percentage.

Other than the verbosity the new versions of C++ are so much nicer to work with than C++03. C++17 is even better, constexpr if simplifying templates, structured bindings (though I wish there was an ignore option), optionals, if the C++ standards committee isn't careful they might end up with an enjoyable language in a decade or so.

I wonder how many are "web developers". They seem to have broken down that category into three or four possibly overlapping subsets. "Front-end developer" and "back-end developer" should be mutually exclusive because people in the intersection would be "full-stack developers". But if that were the case then more than 95% are web developers.

Backend does not necessarily mean web technology. I'm reminded of an oft-lost distinction between "The (Inter)net" and "The Web".

I've not heard of other network services using the term "backend". Is writing a mail server "back end" development?

Yes. A rather uninspiring appraisal of cyberspace — web browsing & emailing — though.

Yeah, they did not even considered native development.

In the section "Valuing Compensation and Benefits by Geography", I was surprised that Germany (13.7%) and Canada (9.7%) showed similar results to the USA (11.5%) on the relative value of health insurance as part of compensation. I thought they had that covered.

It looks like most people stay at a job for just a year or 2. But, it would have been interesting to see a question as to why they left: were they forced out due to something the company did, or did they leave of their own accord for a higher salary (that was top ranked for how they assess a job)?

Results aside, I really dislike the presentation of different data sets in separate tabs. If I want to see the difference between all developers and professionals, or between genders, I have to click back and forth when it could have all been presented in one chart to begin with.

Do people not know that there is a database called Hana? Honestly before my time at SAP I also didn't know but I thought it's my personal failing.

Was very surprised about the gender ratio: 92.7% Male, 6.8% Female, 0.9% Non-binary, 0.7% Transgender

I was confused about this one - Transgender isn't a gender, it's a change of gender. Why would it be a selection? Wouldn't a trans person identify with M or F?

What were you expecting?

A lot more females?

Like 10% more or like 40% more females?

I get that a lot of people want more diversity in Tech, but honestly it's just not something most girls are interested in.

If you saw the following gender ratios for pre-shcool teachers: 92.7% Female, 6.8% Male, 0.9% Non-binary, 0.7% Transgender

Would you be surprised? Would you think more men need help "getting into the industry" since they are underrepresented? Or would you think that most guys just don't want to do that for a job/career?

Not a multiple choice answer, for one.

A non-binary coder? How does that even work? :P


> Race and Ethnicity > Sexual Orientation

Could we agree that : 1/ a coder is a coder, no matter his color, his sexual orientation, his whatever 2/ the notion of "race" is problematic at best

And before I get down voted : who cares about a statistic about sexual orientation or ethnicity in a survey about IT ? I mean honestly.

> who cares about a statistic about sexual orientation or ethnicity in a survey about IT

People trying to make the IT industry accessible to all regardless of sexual orientation or ethnicity, who want to check in on how we're doing at that?

If you hire 50 random people (uniform distribution) the probability to get twice (or more than twice) as many employees of one sex as the other sex is about 3.5%. If you add ethnicity, age, sexual orientation etc. to the mix you will rarely get a random sample with all attributes proportional to their occurrence in population. Without quotas it will be really hard to be accessible to all regardless of [a long and ever expanding list of attributes].

Thanks for that answer !

Well if the numbers of various minorities are significantly lower in our industry than the overall average, then perhaps it indicates a hostile environment that we can work on.

It can indicate a lot of things, don't know why you would reach that particular conclusion.

Well, maybe adgasf saw some off the accounts[0] by minorities about how they perceive tech as a hostile environment and feel forced to leave because of the harassment?

Certainly, if you remember that minorities are reporting harassment in tech companies as a reason they leave, the demographic under representation of these must at least partially encode the scale of the problem.

[0]: https://www.theguardian.com/technology/2017/aug/18/women-goo...

Thank you for pointing this out. I don't see the relevance myself.

And why group "white" and European descent together? Too much diversity that doesn't actually count as diversity?

What are people finding so dreadful about Redshift?

I think I can answer that, given we're in the business of Redshift performance.

Redshift is incredibly powerful, but can be a pain to work with if you're a data engineer. To get the most out of it, you need to turn a lot of knobs - and knowing how to tune it is really complex. But if you get it right - it blows everything else out of the water. Including Snowflake and BigQuery.

The key to success is using Redshift's Workload Management, and using best practices for your schema, table and query design. Many people who start using Redshift come from a mySQL world and are not familiar with a columnar storage db. Sort / dist keys are not concepts that people are necessarily familiar with.


Quick question: How are ~14% of all respondents from India, but 4.1% categorized as Middle Eastern in the Race and Ethnicity breakdown?

This is just one example of a strange anomaly in the data.

Middle East does not include India.


I guess most will identify as 'South Asian'.

Also you can see that the race/ethnicity question only has ~55k responses out of 100k respondents in general.

To many of us it feels like a very US-specific question that we are glad to skip. Racial identity is just not part of our lives. I might identify as as European, but certainly not as 'White or of European descent'

Yeah, it is a bit weird to use US specific notions of race outside of the US itself. How many Europeans in Europe feel that of "European descent" is an accurate description?

India is not in the Middle East.

Not really replying to the point you're trying to make but I don't think "middle eastern" is a race nor ethnicity...

It's a little disappointing to see so many developers--maybe on average the most comfortable job in the world right now--prioritizing comforts like compensation, using their favorite languages, or remote work, over helping to improve the world.

Over 45% of men prioritized one of the above three, whereas a mere 6.5% prioritized "How widely used or impactful the product or service I'd be working on is." Revealingly, "How much impact I could have by working there" isn't even an option. Sounds like the survey authors didn't even consider that people might actively care about improving the world.

So many developers have comfort to spare! Maybe spend a little bit more optimization power on trying to accomplish something important?

>prioritizing comforts like compensation, using their favorite languages, or remote work, over helping to improve the world.

Compensation isn't a comfort -- it's more like payment which is necessary. Not really something a developer could forgo.

Regarding languages -- why would they not want to leverage their knowledge to get more compensation?

> Compensation isn't a comfort

Sure it is. If you can "be fine" with $X, but are looking for a job that pays $Y (where $Y>$X), then that's seeking comfort.

$X directly relates to when I retire, so I see a high salary as buying time and freedom

How have you had an impact? I'm curious because when I looked, the impact I could have through my job (at the cost of 2,000 hours a year) seemed quite small, and the impact of donating high. I'm aware the topic has been covered in great detail, eg by the organization 80,000 hours.

You are happy doing something because of its impact, but to expect everybody else to seems very presumptive.

Edit: just noticed who you are ha ha

Applications are open for YC Summer 2018

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