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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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
> 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.
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.
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.
> 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.
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.
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.
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.
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%.
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.
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.
> 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.
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.
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.
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?
> 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].
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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/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.
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?
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 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.
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.
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?
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.
>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".
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.
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.
Still a sweeping generalization - analogically, there's quite a difference between saying "most programmers are male" and "programmers are male". Having data to back up the former does not justify saying the latter
> 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.
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:
Men:
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
Women:
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.
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)?
> 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 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.
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.
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.
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!
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).
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.
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?
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?
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?
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.
249 comments
[ 5.3 ms ] story [ 140 ms ] threadI only see the "Most Popular Technologies" and it has JavaScript at 71% and it's not "prized":
https://insights.stackoverflow.com/survey/2018#most-popular-...
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".
Certainly, a front-end developer has a choice of compile-to-JS languages from which they can choose.
That will lead to some really weird results when viewed in aggergate.
https://insights.stackoverflow.com/survey/2018#community-sha...
It does not surprise me that it is 40% (and #1) amongst sysadmin/devops practitioners.
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
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)
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.
A lot of my automation is done in Bash, some in Python and other languages, not necessarily in the editor
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.
http://alejandroerickson.com/j/2016/06/11/emacs-to-evil-to-s...
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.
There are actually editors which are disk-based instead of memory-based. The only one I can think of, though, is UltraEdit.
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.
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.
80000(.0000000000001/100)60*60 = 2.88e-7 seconds spent in nano in your lifetime
[ I know it's an exaggeration :^) ]
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'm in the system files / remote box camp regarding vim, tho.
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.
Vim and Emacs are editors for languages where you do more thinking and less writing.
- 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.
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.
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'd be willing to bet that people that answer surveys about this are generally more involved in other areas online like OSS.
This shows how much power 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.
It’s a start.
(Also, this survey never claimed to be measuring either of those metrics...)
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.
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.
People tend to put in the most relevant one anyway when given the exclusive choice.
But still, I'd say the percentage of career changers is much higher than in most other fields.
But I've worked mainly in companies building quite technical products.
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.
You also have to consider this isn't an scientific survey, just a fun parlor game.
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.
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.
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%.
And I kind of think the above ballpark is where a lot of developers are.
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.
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.
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.
This is just one example of a strange anomaly in the data.
https://en.wikipedia.org/wiki/Middle_East
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'
> 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.
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?
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...
On a side note, I've been using it at work and I'm actually quite liking it myself
Also because anyone jumping into the Docker/Kubernetes train eventually has to deal with Go.
But for serious development, I don't think I'll be dropping Webstorm or Rider for it any time soon though.
https://insights.stackoverflow.com/survey/2018/#most-loved-d...
:)
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 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.
https://www.manning.com/books/get-programming-with-f-sharp
Real-World Functional Programming With examples in F# and C# is another good one
https://www.manning.com/books/real-world-functional-programm...
The NoStarch Book of F# is a pretty decent beginner's book
https://nostarch.com/fsharp
Would second the vote for F# Deep Dives as well.
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.
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.
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.
> 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 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.
What a stereotyping generalization.
Also, underpaying is a (fairly common) form of poor treatment.
https://www.forbes.com/sites/quora/2017/02/28/why-women-leav...
https://medium.com/tech-diversity-files/the-real-reason-wome...
https://www.cio.com/article/3229355/it-industry/why-are-wome...
https://www.theatlantic.com/magazine/archive/2017/04/why-is-...
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.
“If you want to be paid the same as a man, maybe you should not have made ‘not being groped’ [aka company culture] your top priority!”
Adjusting for your argument the answers are as follows:
Men:
Women: 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.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.
How can you be labeled sexist if you point out a simple fact?
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).
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.
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 :)
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.
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.
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.
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.
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?
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?
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?
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.
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