The State of JavaScript 2018
2018.stateofjs.com
2018.stateofjs.com
ES6 is good, TypeScript is gaining ground, people are moving away from Flow.
Angular is dead? Most don't even want to touch it again ( Great ). Ember hasn't moved a bit in three years with a declining of interest. I am also surprised no one is using preact. The Choice is now either React or Vue.js, I think Vue.js 3.0 will continue to move vue forward.
Given the amount of hype with GraphQL, I am surprised only 20% are actually using it. And nearly 50% are using Redux!
Backend is dominated by Express only, and Testing framework doesn't have a clear winner either.
And my biggest surprise is how Javascript turned from one of the most hated programming language ( besides PHP ? ) into being acceptable and loved.
I really wish other languages communities do a similar survey, Python, PHP, Ruby, Java, Rust etc... It will be interesting to see the trend and big picture.
[1] - https://insights.stackoverflow.com/survey/2018#most-loved-dr...
In the end, it isn't the best choice for many things, but it's good enough for most things. As such, it's what I tend to reach for first, since getting something working takes less time, and gets in my way so much less. Windows, Mac, Linux via Node, Electron, Carlo (node + installed chrome), not to mention Cordova (iOS/Android) and React Native. Best of all, I don't have to deal with a lot of issues seen in other platform specific tools.
It's so much closer to write once, run everywhere with less friction than anything else that has been done in computing. Aside from trivial projects.
HA! maybe this is technically true, because in the end that's where it runs, but have you looked in your modules folder at any substantial project lately?
The dependencies run deep and they run wide...
Having someone like Google steward a "standard" library (and it could even be distributed using NPM), would pretty much bring JS dependency management at par and beyond Java or C#.
Why is that bad? It's a huge waste of effort, increases the burden on anyone who's maintaining a package using those micro-libraries, and will guarantee more unpatched security vulnerabilities and unmaintained packages in the long run.
For instance, apollo-link-rest would be a strong way to bootstrap into GraphQL for shops with heavy REST investments.
That said, Apollo aren't yet doing themselves favors with nearly every part of their tooling still showing a "Caution: Active Development" warning. That keeps them right on that cusp of "Should I use this in production?" worry for enterprise, and slows adoption probably more than they intend.
The standard looks great, and with some time some useful tools will probably arrive. But not right now.
Yet what I see around me is enterprise customers on our projects adopting Angular as the official internal Framework, as React is seem as too advanced.
But it's not that hard to figure out based on comments, upvotes, stories on the front page, etc.
Consider it an educated guess from a relatively active HN member who's been here for 5 years :)
It feels like doing Haskell with JavaScript.
function MyComponent(props) { return <p>Hello {props.name}</p> }
import React from 'react';
export default ({name}) => <p>Hello {name}</p>;
So much nicer than Angular.It would be great if that was true. The fact is that you can not copy Haskell in any mainstream language (Lisp gets the closest), and that hurts.
React is easy the same way jQuery is. Easy, unstructured, foggy, too much permissive tool.
Far too easy to end-up with spaghetti-code.
I prefer not using it, Angular is far more organized.
// MyHello.jsx
import React from 'react';
export default ({name}) => <p>Hello {name}</p>;
Now do the same in Angular.But that is more of an issue for projects maintained for a long time. If you want to crank out small apps fast, your "example" is relevant, and React definitely is the better option.
But hey, most apps are simple, so no need for all the above. I would say Ng/Ember are more specialized / niche.
I think a lot is due to the unfortunate naming, people still confuse AngularJS (v1) with Angular (v2-v7). I totally believe a lot of folks will say "Used AngularJS (v1) won't use it again".
Once enterprise chooses a tool, that tends to stay the tool for that project, then all of the team is competent in the tool after a couple of years working with it. There's a critical time-frame when new competing tools win a geographical majority [2].
[0] Link to facebook announcing Reach license changes: https://code.fb.com/web/relicensing-react-jest-flow-and-immu...
[1] Link to short article on MIT-Patents license in reack. Takeaway: This has never been litigated before https://hackernoon.com/4-lessons-from-the-react-patent-licen...
[2] Geographical majority http://www.businessdictionary.com/definition/geographic-mono... replace 'place' with 'technology tool'
I had a friend (F) interview for a FE developer position. He was more of a React adopter and he spoke with the architect (A) of the team. The company was heavily invested into MS technologies (think a lot of WCF Services)
F: So, what technology stack are you moving into? A: We wanted to retain as much of our backend WCF stuff, while we move our front-end into Angular. F: So has there been a project that was started? A: Yes, we have started to move 8 of our enterprise apps to Angular. F: Any challenges so far? A: Well, the code seems to become a little too complicated for our developers to work on. We'd like to get it to a cleaner and more maintainable state. F: Have you considered other frameworks? A: Sadly, no. Company has invested more than 2 years in re-designing the app. And besides, Angular is backed by Google, hence, we seem to think that it will be the right tool for the business. We've invested a lot of time as well with it. F: But you are saying that productivity overall is low because the complexities of your Angular code base is taking a toll on your developers? A: Yes, in some sort of ways. There are Angular constructs which just does not make sense. And nipping the warnings and errors in the console is just a task that's too heavy and tedious. Although we like the fact that Angular can play nicely with our backend stuff with very minimal changes required on that side.
Practically, the architect was saying that the enterprise adopted Angular due to its immense popularity way back then and being heralded as an Enterprise framework.
Although my friend was offered a very good salary (by Canadian standards), he politely declined the offer, after inspection of some of the code base and the challenges that he would be facing.
(Which is often what you would expect of enterprise development: go with the solution "everybody else uses", whether or not everybody else enjoys using it. ;)
However, regarding the metric that shows developers' happiness over the years:
* If someone asks me if I'm happy writing JS these days vs a few years ago I'll say I'm much happier now than I was before.
* If someone asks me if I'm happy writing JS vs writing Elixir (or Python or some other language), I'll still say I'm much happier with Elixir.
P.S. I don’t, but most people I have met seem to have this kind of mentality.
It's all we've got, but it is assuredly not good. Hopefully WebAssembly comes to fruition and we can leave this dark era behind.
If that takes you forever, consider that it may also be your lack of familiarity as much as the lack of type system/compiler. Despite my preference for the back end, I have spent plenty of time on the front end and can pump out changes very quickly.
At least you have pretty good wiggle room to use other solutions on the browser client, whether it's other languages (TypeScript, Elm), to completely new abstractions (React, Elm again, etc). For example, Elm or React are a fuck ton better than anything we have native on Android and iOS.
Look at other clients people development for like iOS. It's not easier. And any gains in ease of use are traded off because you're developing for a platform that not everyone uses.
Also, continuing with iOS, things like CoreData and the entire UI abstraction are super OOP and not very pleasant (especially the former). And it's nontrivial and a lot more warty to switch out abstractions (like using Rx) or use something other than Swift.
So that things are harder that you moved from backend to client development isn't a very scathing review of Javascript because client development isn't easy.
By that, I mean that you get to choose your entire playing field on the backend. What language are you going to use? What database? What OS will it run on? What (reliable) network connection? All can be tailored to your heart's desire.
No such luck on the frontend. Your code is going to run on a diverse set of clients, which you have no control over. The connection quality might be awful. The CPU on the device might be awful, or it might have low memory.
As much as people like to crap on JavaScript, it isn't the reason the front-end is difficult to program for. And WebAssembly isn't going to solve all of these issues either.
I don't like to target specific words, but the problems you specify apply to JS as much as they do to any other language.
A C/rust like language has far better CPU/memory efficiency than JS.
A batteries included language like python might even be better at network latency since it doesn't have to bundle in the code that should've been in a stdlib, not client code.
We use different languages because they are good at different things. The browser doesn't seem to respect this Philosophy :(
Is it really the case? Both projects are watched and have quite big number of stars in github.
I have tried flow and liked it. I have used typescript in the past and I'm not crazy about it. Therefore I would like to get better understanding here. Is there anything I could read about it?
The survey can be a representative sample, without including your ̈́"circle of JS hackers". That's how surveys work.
Glad to see people don't adopt things only because they are hyped.
At the end you'll even hear questions like "So where do I add <insert hyped thing here>"
New JS dev's in the last few years have been under the idea that using whatever is hyped is cool... ignoring that it's not stable and you shouldn't probably use it in production.
Unsure if the 2018 results are done?
https://blog.rust-lang.org/2017/09/05/Rust-2017-Survey-Resul...
I think a primary reason for this is that Javascript first was a language that was easy to hate because mistakes couldn't be fixed - "don't break the web" and all that. The community then found a way to improve it without breaking the web: add improvements with different syntax, and let your editor/build system/whatever use a linter to deprecate the old syntax from your personal codebase. It's greatly improved in that way and now easily holds a candle to other long-term popular languages.
import React from 'React';
export default ({name}) => <p>Hello {name}</p>;
Now duplicate in Angular and tell me it's simpler.I don't get the Angular hate. I work with it daily and seems like a productive environment. I did some tests with React and Vue too and couldn't find any relevant advantage. Angular has batteries included tools for a lot of tasks: i18n, routing, isomorphic builds, web components, etc.. You get a cross platform mobile development environment too using NativeScript and a somewhat Angular-esque backend development framework using Nest.js. Seems like a good deal to me.
I weep for the people that will maintain all the React mess that is being created. React is great, but the current ecosystem has too much liberty for too many junior dev using it.
Angular being a framework has a lot to offer in term of maintainability and good practices.
You're spot on with that in my case. I already knew JS and wanted to build on top of it. React just felt natural to pick up than Ng. Also, the fact that ng completely changed in v2 really put me off and I haven't looked at it since.
2018 state of Haskell survey results:
https://taylor.fausak.me/2018/11/18/2018-state-of-haskell-su...
Quite the opposite is happening from what I'm seeing. More people seem to move away from React towards Angular, but that's just my anecdotal observation.
I enjoy modern JS myself, but I'd be careful about coming to a conclusion like that based on this survey. All it tells us is that JavaScript is very well liked among people who wanted to take the time to complete the State of JavaScript survey.
People who dislike or hate it JS probably wouldn't see the value in completing the survey, so the happiness factor might be a bit biased as a result.
BTW, I insist that is a missed oportunity of clean JS even more (ala typescript, whit some of the wats removed).
I don't know a language in a better position of improve by a HUGE margin than JS.
I really wish more would migrate to Koa over Express, but I get it.
As to the JS Love, I think there's still plenty of hate around.
For real?
I personally think JavaScript is awesome.
I personally think jQuery is awesome.
And I feel really alone a lot of the time in these opinions. I see a lot of disdain for JS here in comments in particular.
I also see a lot of people browsing with JS disabled, and who complain when a site doesn't function without it.
It used to be really popular in 2017 (double the popularity of Atom/Sublime/Webstorm), now it's just eating everyone's lunch (triple the popularity of Sublime/Vim/Webstorm/Atom, almost equal to all of them combined).
Also Atom is declining sharply.
Compare https://2018.stateofjs.com/other-tools/ to https://2017.stateofjs.com/2017/other-tools/
Anyway, props to Redmond for a major coup — from webdev pariah to owner of the most popular development platforms in just a couple of years! It took both money and sincere dedication, but they managed to effectively turn around the external perception of Microsoft in this field.
I have 3 editors I regularly use, emacs when I need to edit something in a terminal (eg ssh'ed somewhere), Intellij when I need a full blown IDE (refactoring and debugging), VSCode for everything else.
It's fast, well updated, works well ...
No.. NO, it isn't.
Amusing, but we've got better things to do.
"zomg new framework, I have to LEARN again :("
The problem isn't that you have to learn another framework (although it does become a problem when they're all slightly similar and they start to meld together after the umphteenth, not to mention that learning slows down with age). The problem is that each frameworks brings along new edge cases, new problems and forces you to reinvent tools you already had for this new framework. Although learning new shit can be exiting, at some point, you gotta stick to something for a while so you can also actually build a lasting product with it, rather than building a new prototype but never finishing anything because you're distracted by a new shiny.
I'm sure glad we're advancing beyond the abstractions we have in, say, Cocoa development (which is evolving as well). Seems incredibly selfish to suggest that everyone is incompetent and nothing new is good because you don't want to have to learn new things.
Yet somehow HNers convince themselves that it's scathing sociotechnological criticism of an ecosystem because we tolerate it for some reason. Meanwhile everyone would roll their eyes if you suggested something like "ugh, Objective-C replaced by Swift is like watching Apple read old books."
https://en.wikipedia.org/wiki/Not_invented_here
Even if there were no reason at all, the bias toward writing things ourselves ensures that we'd continue to see these new frameworks.
I suppose the analogy in medicine would be to have this "medical hacker" mentality where you just go and do things, all the while learning. First you start with leeches, then you develop your own theory or four humours, https://en.wikipedia.org/wiki/Humorism, then you figure out there was this guy called Hippocrates who had lots of great ideas about medicine which you should totally read, but hey, who has the time nowadays, so you just skim through a blogpost with the summary of the most interesting tidbits.
You keep hearing the name "Pasteur" and the "germ theory of disease" which sounds mildly intimidating. Instead, make your own plague doctor mask with a organic herbs as a safekeep. That'll keep the germs away.
People think your plague doctor mask is really cool in instagram and you become moderately famous. People start asking medical advice from you. They keep mentioning something called "vaccines", which sounds really convenient. You read an obscure reference about primitive vaccination to smallpox and decide that's a great idea. You start scratching yourself with random things you find in the street to increase your "resistance" to all ills.
You create a blog around this cool concept of "resistance" and invite other people to scratch themselves. Someone dies from infection and you say they just can't use the tool right....
etc.
I presume the protagonist will eventually reach modern medicine if he's alive still, but it would be so much more convenient for all parties if he had become familiar with established standards before starting to share his ideas with the greater public.
I think he's doing something with Sitecore now, make of that what you will.
The first step is knowing that the current state of things is deficient in some way.
He gave me his version which was around 10x more code and only worked in a subset of the latest browsers, while mine not only did but would probably work in everything since maybe IE5 or so...
Maybe that's considered a bug, but I don't want any of this trend-chasing. I write code to get things done. My users don't care, and they want to get things done too.
With CSS it's actually easy to display the grid `\*{border=1;}`. With tables, you have a lot of them, and must go into each line of your page adding that clause.
> It looks like 2018 was mostly a continuation of the trends we already observed last year.
> That's bad news for us, because we can't come out with a big scoop on how React's days are numbered, or the next big thing is this new state management library created by a 17-year-old Vietnamese high-schooler in her spare time.
> But that's great news for you, because it means you can spend less time worrying about what to use, and more time actually using it!
I got dizzy from all the options out there so I spent some time improving my knowledge of JavaScript itself instead of focusing on someone else's library.
In the end, those frameworks are "nothing" but a lot of JavaScript patterns stuck together.
Switching from one framework to another should't cause THAT much friction.
Well, it would be, and it should be, except for the unreasonable expectations from the "owners" who assume that everything they don't understand must be simple to do.
A junior dev is going to learn ES6, and Vue and/or React because they want a job, but learning Polymer/Ember/Relay/ClojureScript isn't worth the time because there are fewer jobs for it. But a more senior dev has probably maintained a few projects using that tech, maybe surveyed it for use in a new project, etc.
1. Popular languages would have lot more developers so lesser salary (Supply-Demand)
2. Since the newer devs have started their careers when the newer languages have started to get mainstream, more senior devs are the ones who remain with the niche languages.
(As long as the question is not something along the lines of "My favorite library Foo.js is doing pretty poorly in your survey, surely there must be an issue with your methodology?")
https://www.ordnancesurvey.co.uk/blog/2011/08/whats-the-diff...
To the parent - Great Britain is the land mass containing England/Scotland/Wales. The UK is the whole thing.
Anyone doing a state of any language/platform should take note.
1. https://2018.stateofjs.com/front-end-frameworks/other-librar...
How do you think does this bias towards "enterprise" affect more full featured solutions like Meteor, that are more geared towards small teams and indie hackers?
I guess it deserves its own category, maybe data model library?
I knew about it then, and made some small uses of it for SVG, but thought it was just an SVG generating library that could technically be used for HTML.
I did a deep dive into D3 last year and it is amazing for generating HTML. I think in 2018 I prefer the model that React provides, but I didn't like approaches that required the sort of infrastructure React and Angular require back in ~2010.
D3's use of vanilla javascript would have made it a top choice, and maybe would have promoted more D3 development.
No it's a poor tool for what you are suggesting.
People using d3.js as a library for generic data binding UI? It's technically possible I guess, but the API, with its enter, update, delete paradigms, is very much data viz centric. Not the best option for a general front-end UI library.
https://paradite.github.io/hn-ratio/
Source code (87 lines of JS):
https://github.com/paradite/hn-ratio/blob/master/app.js
A sudoku solver I built with d3.js a few years ago:
http://paradite.github.io/sudoku/
I think d3.js really striked a balance between raw jQuery/JS and full-featured React/Vue.
I would recommend using it for building small-medium sized web apps with heavy data-centric UI.
Forces you to use sensible technology, like svg and not fonts for icons, and catch these types of missing optional dependency errors, and not depend too much on a specific font in your design, so that if brwser forces something else, you don't start having overflowing text everywhere.
2017:
React: 58%
Vue : 20%
2018: React: 65%
Vue : 29%
So both have been growing at a similar pace.Not sure about Angular, as in 2017 they listed 'Angular 1' and 'Angular 2'. This year only 'Angular'. Is that the combined number for both versions?
From what I've seen, if there's an Angular project it's still Angular 1
Don't know if you can compare these numbers that easily: one increased their userbase by 12%, the other by 45%.
First is Polymer 3, which is Polymer available as standard JS modules and on npm for the first time ever. Dropping the huge barriers to usage of Bower and HTML Imports should have a large impact all on their own.
The other is lit-html and LitELement. lit-html is a template system that's much better suited to being embedded in JavaScript, and allows a very similar style and expressiveness of JSX without the VDOM overhead or a compiler. We've seen a lot of excitement and uptake of lit-html independent even of our other projects. LitElement is a Web Components base class that does async rendering with lit-html.
Given what we've seen with lit-html early adopters, I think trends will look a lot different in future surveys (even as flawed as this survey is).
I do think that if not Polymer specifically, something similar will win in the end eventually... probably something between React and Polymer. Of course Polymer will be a better model working with HTTP2 features and js modules. It'll likely come down to who gets the tooling stories worked out, or if the browsers themselves catch up first.
At the top of: https://2018.stateofjs.com/front-end-frameworks/angular/
What I find most interesting is "All JavaScript development is considered clumsy" – kidding.
What I find most interesting is the geographic distribution of tech. On HN, you mostly find positive comments on React + Vue, because they're super popular in the US. Other frameworks are popular in other countries. So while it probably makes sense to use React and/or Vue, if you're in a country that has a strong focus on, say, Angular, it might make more sense to improve the skills.
I would like to see two categories added for next year's survey:
1. Auth – would be interested to see if Passport is still the tool of choice
2. ORM – curious how Sequelize, Knex/Bookshelf, Objection, etc. compare in usage.
I understand this survey will obviously skew towards frontend tools, but some of the categorization just feels off to me:
For example, I wouldn't consider Next.js a backend framework. Sure, it's a server-side-rendering framework, but you wouldn't typically be using it for traditional backend things like accessing a database. Perhaps consider adding a SSR sub-section on frontend frameworks.
The data layer section seems a bit confused – it's mix between client-side stores and server-side persistence which have very different use cases. I'd probably move out the databases into their own category - would be interesting to see which JS devs prefer (eg. Postgres, MySQL, Mongo).
And trying to draw conclusions from the testing category seems odd when both frontend- and backend-specific tools are bunched together.
2. I don't. If it's SQL, I use a tagged template string library, and just project from the response of the given library. If it's mono or similar, I don't see the point so much. I understand you can use type checking, but you can still do that at the API layer.
As to the data layer, I agree... client side libraries and abstractions should be different from server-side tech... though there's some overlap (libraries that sync client-server for you).
I've seen lots of questions about Angular on StackOverflow which should be classified as TypeScript questions, since they have nothing to do with Angular itself. I guess that's the confusing and non-attractive part of Angular.
TypeScript is awesome and I love to use it, but some of my clients ( freelancing ) don't want me to write TS code, since they are afraid that it will be harder to find a substitute and will increase complexity - both are reasonable arguments.
I vaguely remember talking with some folks at work who were trying to upgrade at one point, and they ended up changing frameworks entirely (to react) because the effort to upgrade was considered "about the same as a rewrite".
I don't know anyone who used angular v2+ (although I'm sure many did) but have personally been on two teams who ported to react. It burned a lot of people.
The real reason it ever got traction in my opinion was the built in dependency injection. It solved a real problem at the time, but ES6 modules make it a lot less appealing now.
Glad to see Svelte [2] starting to get some attention. It’s a true little wunderkind.
[1] https://2018.stateofjs.com/front-end-frameworks/conclusion/ [2] https://svelte.technology
Then in later years found React/JSX/Redux, Typescript and VSCode ... and started loving it.
I have to say that Typescript in particular has made me like the JS ecosystem a lot more again. Especially in combination with React – type-checked JSX quite often feels like magic. Of course, the downside remains that there is still a large number of JS libraries without type information.
That seems about right.
And in 10 the floating squares don't even show up. And it doesn't have fall-back for browsers with no SVG support - really nitpicky but it is an actual problem.
'await' is a game changer for JavaScript: major libraries like Stripe and Hapi are rebuilding their docs too be ES8 based.
I don't know if the solution is to include each yearly release of ECMAScript since ES6, or to simply add an "ES.Current" option, which would just be the latest proper release.
The description is "tools_descriptions.native-apps", on the page https://2018.stateofjs.com/mobile-and-desktop/native-apps, which is probably, a bug.
My guesses are:
1) Non-JS mobile native apps built on Java and Swift.
2) Native script https://www.nativescript.org/
3) Smth idk about.
NativeScript has its own separate page.
Also, seems like a translation string is missing for vim (displayed as "tools.vim" in Other Tools > Text Editors)
[0]: https://haxe.org/
It is part of the sad state of the web that I often have to hack fonts and CSS of websites just to make them readable.
On Android 8.0
The survey highlights what devs want to do out of interest, not necessarily because that's where the job market is.
The authors actually use thix matrix type viz many times in the report e.g. for correlating salary information to other categories.
In addition, it would be good to see other indicators such as downloads, jobs (admittedly hard to measure accurately), BuiltWith trends, etc. Considering the millions of front end developers, this seems a very small sample size.
Consider the design of the site in the future and mobile browser behavior - for example, tapping the bottom right button to navigate to the next view brings up the toolbar on Safari instead of navigating to the next page.
The animation we're looking at is moving SVG boxes around the screen, so if you search for tutorials about how to animate SVG with JavaScript, you'll quickly figure out how to make the animation happen. Although the technique isn't really specific to SVG; it'll work the same if you're moving divs around instead.
Once you've figure out how to animate DOM elements, to recreate what you saw on the start page of the survey, you'll want to keep track of each box's x and y velocity to know where to move them when you render each frame. If a box hits the top or bottom of the screen, reverse its y velocity, i.e. if its y velocity was 2, when it hits the top or bottom edge, it'll be -2. If it hits the left or right edge, reverse its x velocity.
Next, let's look at what's happening when you hover over the start button: each of the boxes has an assigned position, and when you hover over the start button, each box rapidly moves itself back to its assigned position. And it is timed so that each box reaches its assigned position at the same time.
To make that happen, you'll first need to figure out how far each box will have to move horizontally and vertically to get back it its assigned position. To get this, you just do (assigned y - current y) and (assigned x - current x). This will tell you how far each box needs to move in both directions to get to where it it needs to be. Based on this, you can calculate new x and y velocities for the boxes. Each box will have to move at a different velocity, because they'll all be at different distances from their assigned locations.
I've deliberately been a bit vague here, I know. I was going to put together an example on Codepen, but decided against it because it is so, so easy to take a look at someone else's code example and think you know what's going on without really understanding it. Whereas if you learn how to animate elements yourself, and then follow the thought process I laid out, you're a lot more likely to learn this deeply and remember it.
I hope this all helps, but if any of it seemed unclear, let me know and I'll do my best to clarify.
And I really liked the idea of not putting a codepen -'think you know what's going on without really understanding it' - I totally agree and that has been happening quite a lot to me!
Just one more question - if I may! In the 'Connections' page, the graph looks a lot like D3js interactive 'Chord Diagram'. But I don't see d3js mentioned in <script> tags. Is this due to the webpack that it's possible to hide the underlying dependencies? I'm sorry if this is a dumb question - I've never used webpack.
The state of javascript in 2018 is a dumpster fire. It was a dumpster fire in 2017... it will be a dumpster fire in 2019.
One can hope.
The State of What Men Think about Javascript
but seriously how was this survey distributed and is there any explanation for the gender discrepancy?
If so, then it's still "What JS users think of JS."
According to this woman make up around 30% of web developers in the US. The highest amount of respondents are from the US so I would expect the woman respondents to be more than a measly 5%.
Being aware of sampling bias is good and useful; I'd just worry a bit about pulling too hard on that ripcord here.
Nearly 70% of JavaScript developers have less than 10 years of experience (with an average of 8.3 years).
This means they have never seen a Web where JavaScript was optional and Web developers were used to test their projects without it.
This in turn explains their outraged reactions to anybody that dare to point out its severe vulnerabilities.
See
https://bugzilla.mozilla.org/show_bug.cgi?id=1487081
https://dev.to/shamar/the-meltdown-of-the-web-4p1m
https://dev.to/shamar/i-have-been-banned-from-lobsters-ask-m...
https://www.reddit.com/r/firefox/comments/9v5qst/1487081_und...