20 ms·
State of JavaScript 2019
- atroche 7y agoSomething that jumps out to me in the demographics is how few respondents are from Japan (0.6% vs e.g. 5.1% from Germany). Does anyone have a good explanation?
- woutr_be 7y agoI would be more interested as to why there is so little response from different demographics in the first place, even in Europe there’s little response, except for a few countries. It seems to me they mostly targeted English speaking countries, which would explain why Japan (and Asia in general) has such low response.
- hellofunk 7y agoExcept they excluded the country with the highest English language proficiency on the continent of Europe, the Netherlands. I suspect there’s another reason.
- sgdesign 7y ago(Survey author) The Netherlands doesn't have a large population, so it's never going to show up as a large part of the results. For next time it would be interesting to also let you toggle a relative view of participation vs population though.
- hellofunk 7y agoIt’s a small country but with nearly half the population of Spain, and the most densely populated country in the world outside of Taiwan. Not to mention a massive development community (and one of the largest internet infrastructures in the world). So, more relevant than you’d think :)
- woutr_be 7y agoTaiwan and The Netherlands are not even close to being the most densely populated countries in the world. Taiwan is 652/km² and Netherlands is 418/km². Compare that to Macau 20,286/km² or Singapore at 7,804/km². But I agree that The Netherlands has a pretty big development community, and generally their English is fairly close to being native.
- hellofunk 7y agoThat’s interesting, I’ve never done the math myself but I’ve seen it mentioned in many places that those are the two most densely populated countries in the world. Maybe they are only looking at the density in urban areas and excluding agricultural areas?
- hellofunk 7y agoOh, I see now that the stats I frequently hear cited exclude small city-states, and have a smallish threshold of somewhere in the 10 to 20,000,000 range for the country population.
- dragonwriter 7y agoThey were probably excluding city-states like Singapore and Vatican City (Macau is probably excluded because it is neither in theory nor in function a country, but is a special administrative region of China.) Or setting a minimum size or population threshold that has a similar exclusive effect.
- tuwtuwtuwtuw 7y agoHmm why would you expect anything else? They do not live in the same Internet bubble as say US/Nordics/Germany.
- 734129837261 7y agoThe Asian markets typically have their own news letters. They will report the findings from the State of JavaScript 2019 from the western world, but they'll probably have their own polls. We are primarily English speaking (myself being European and working in the USA now) and they struggle with English immensely, in general. Many projects from Japan that I see have faulty English grammar in variable names and is documented only in Japanese characters.
- Thorentis 7y agoSad to see Ionic in the avoid category. Their latest release I thought was quite polished, and I've enjoyed using Capacitor rather than Cordova. I think the key to further success is breaking away from Cordova entirely, and expanding the native features supported in Capacitor. Right now I find myself having to use both due to some things not being implemented in Capacitor yet.
- warent 7y agoAt this point with React Native (or even Flutter if we're considering things apart from JS) there really isn't a compelling reason to build anything in a Webview as far as I know. Also in my personal experience their support team members have been pretty impatient and passive aggressive in the Github issues tickets so I'm not entirely surprised that they're building something that the community has moved away from.
- kayoone 7y agoNot an expert, but the multiplatform story for ionic is pretty nice. One codebase to run on iOS/Android and Web is easiest with ionic and I see a lot of small-mid size businesses using it. It's usually not about top-of-their class apps though.
- virtualwhys 7y ago> there really isn't a compelling reason to build anything in a Webview as far as I know. Neither RN nor Flutter fulfill the promise of, "write once, run everywhere", whereas Ionic, warts and all, does today. Maybe Flutter web will work out though, we'll see. If Dart evolves then Flutter becomes a pretty compelling stack.
- yesimahuman 7y agoThere are a ton of compelling reasons to build apps targeting mobile web views, and despite Ionic's poor showing on this survey, we are seeing a lot of serious apps and brands doing so and picking it explicitly because of those benefits. Perhaps the biggest is the overlap with web dev tech, team skill makeup, and the hiring market for web devs being incredibly vibrant. Vast majority of teams have struggled to go native and build/hire those teams, and are instead excited about using the web devs they already have or taking advantage of that hiring market. One trend that is really interesting is that many teams have decided they need to be prepared for a PWA future and can't afford to have two separate efforts to accomplish that (i.e. app store apps and PWA). They see Ionic as a way to do both and be ready for the expansion of PWA adoption which is early but happening fairly organically, and has some key enterprise benefits that make it attractive for those teams. Sorry you had a bad experience on our github issues. We're a small team relative to the size of the community and have had to resort to automation and tooling to figure out signal from noise. It's been a constant process of iteration on that front.
- deathtrader666 7y agoEmberJS should not be in the "avoid' section.. it is one of the most well thought-out framework which just gets the job done.. and it is a bit contra-indicatory that Ember guys are the highest paid.
- 734129837261 7y agoJust the fact it uses Handlebars templates disqualifies it as a viable option for me. Handlebars is terrible to work with, especially once you're used to JSX type of options. HBS = restrictive for nonsense reasons. The separations of Model, View, and Control really don't make sense anymore. It's outdated. I've worked with it for years and I consider myself familiar with it up until 3 years ago, but I would never go back to EmberJS. And that's why the salaries are higher for Ember developers: they're rare.
- jgresty 7y agoI'm curious to know why you think separations don't really make sense any more. Care to elaborate? Personally I prefer anything that is restrictive, I would take the price of less flexibility for the ability to stop people doing stupid things.
- codegladiator 7y ago> The separations of Model, View, and Control really don't make sense anymore. It's outdated. What ? why ? care to elaborate please ? and what do you use instead ? MVVM ?
- someexgamedev 7y agoEmber uses MVVM
- codegladiator 7y agoFair enough, but I still think its a stretch to call MVC "outdated". And "outdated" kind of has a hint of "bad" and "should not be used", hence the question.
- cstuder 7y agoThe most interesting data in my opinion are the conflicting opinions on the overall state of the ecosystem:: https://2019.stateofjs.com/opinions/ https://2019.stateofjs.com/opinions/ While there is a sharp downtick of people who think that JavaScript is moving in the right directin, most agree that the overall situation in terms of complexity and velocity is getting better. I don't have any explanation for this, but would agree: Developing in JavaScript feels easier to me than just a few years ago.
- tcbasche 7y agoMaybe by now we're all conditioned to immediately respond with "argh it's moving too quickly" :P But I totally agree. Things like the various cli tools, widely available documentation and good IDE support for frameworks has made JS a lot better in recent years.
- rhacker 7y agoGenerally have to agree there, but I do feel like there is a reason. ES6 modules (or typescript modules) and the simple fact that the variability is finally dropping: It seems like there was one specific winner of all of the UI frameworks. React. There is now pretty much one specific winner to package managers. Yarn. There is one specific winner for language front-end: Typescript. There are basically two front-end build tools left: Webpack and CRA (of which is basically a Webpack wrapper with babel and a million other things) All of the latest npm packages are either coming with ES6 modules or, more interestingly either are completely written in Typescript or at least have @types now. And all that stuff helps people writing JS too.
- yitianjian 7y agoDisagree on yarn - npm is still trying to keep up and the latest releases are doing well Seems like within React, Redux/Apollo/plain is splitting the data layer again too But the yarn/npm is a tiny difference and data layer is much more application specific
- rhacker 7y ago
- tcbasche 7y agoInteresting that GraphQL is slowly gaining interest - I kind of thought the hype would fizzle out. Good to also see Typescript making a foothold - it's a great alternative to pure JS.
- cheapsteak 7y agoI've rarely seen a technology so eagerly embraced by both bleeding edge tech enthusiasts and also enterprise behemoths (granted, tech behemoths, but still) Having API documentation that is guaranteed not to go out of date with your code. Having a shared standard for describing your endpoints in a machine-consumable way. Being able to automatically generate typescript types from any schema (correct me if I'm wrong but I don't think there's any tooling that would do the same for arbitrary REST APIs). Being able to get autocompletion when writing queries for free ^ Those were all things I didn't know I needed until I started using them, and like Typescript, it feels painful to go back to not having them
- iCarrot 7y agoYou can write Swagger definitions to serve as contracts for your REST API. Swagger files are machine consumable and can be used to generate client SDK.
- toastal 7y agoIt looks like more people need to learn about PureScript. I was happy to see it included this year though.
- 734129837261 7y agoI really don't see the point of strong typed programming. JavaScript is fine without it. I've been working with TypeScript for a while now and I never think "this solves a problem I had!" On the contrary, I constantly think "why..." I feel strong typing JS is just a result of backend developers not questioning their upbringings and failing to use proper naming conventions, progressive enhancement in the form of JSDOC comments, proper unit tests, and proper peer reviewing processes. Honestly, I don't get it. In all my 20 years as a professional web developer (full stack and specialising in the frontend for the past 12 years) I have never needed it... I really don't understand the charm of it.
- jevgeni 7y agoAren't you describing exactly the problems types help with? Must be a reason why typed backend developers allegedly don't pay so much mind to: - "proper" naming conventions - JSDOC comments - unit tests - peer review
- 734129837261 7y agoSo, I've worked with JavaScript since 2001. Up until two years ago I never used a strong typed flavour on top of JS. And I have never needed it. Not in big teams and not in small teams. At work we recently did a timed programming problem solving competition. 20 Teams got 1 hour each to solve multiple levels of the same problems. Some teams used TypeScript. None of the TypeScript teams got past level 5. All of the rest got past level 15. I've been taking job applications where applicants get a limited amount of time to make their project. Let's say 20 hours, and it's a paid job. Everyone gets the same instructions. Those who use TS are NEVER feature complete. Coincidentally, those who use TS are also the ones who deliver one big DIV-soup and barely seem to understand CSS to begin with. Strong typed JavaScript doesn't solve anything, in my opinion. And nobody has been able to convince me otherwise. TypeScript seems to be a reason for many developers to completely avoid documenting their code... I mean, TSDOC or JSDOC allows you to write human-readable comments AND strong type your code where it matters. But they don't. In any case, this article was a fun one to read: https://medium.com/javascript-scene/the-typescript-tax-132ff4cb175b https://medium.com/javascript-scene/the-typescript-tax-132ff...
- baron816 7y ago91.3% male. Could that really be all because of discrimination?
- cambalache 7y agoYou know the answer
- hanniabu 7y agoThe answer is no
- shabbyrobe 7y agoI find it kinda strange that Flow has been relegated to the write-in "Other Flavours" section so soon. I know that it has been trending downwards for a while (as TypeScript trends upwards), but it feels like that story's not quite over just yet even if the conclusion is foregone.
- acemarke 7y agoFlow appears to be _effectively_ dead outside of Facebook. Or at least plateaued, at a very low peak. For actual metrics, the NPM stats of TS vs Flow downloads [0] show TS usage skyrocketing up to >33M DL/month, while Flow has never gotten past 2.5M. Purely anecdotally, I see numerous articles talking about projects migrating away from Flow, and absolutely nothing about actually adopting Flow at this point. Even projects like Jest, which started inside Facebook, have switched to TS to get more outside contributions. At this point, the only major project I can immediately think of that's written in Flow is (ironically) React itself. FWIW, I wrote a blog post recently about my own experience learning and using TS as both an app dev and a Redux maintainer [1]. [0] https://npm-stat.com/charts.html?package=typescript&package=flow-bin&from=2016-01-01&to=2019-12-18 https://npm-stat.com/charts.html?package=typescript&package=... [1] https://blog.isquaredsoftware.com/2019/11/blogged-answers-learning-and-using-typescript/ https://blog.isquaredsoftware.com/2019/11/blogged-answers-le...
- madeofpalk 7y agowhich is sad because I think Flow does things like error messages a lot better than Typescript.
- hellofunk 7y agoI think the name Facebook being attached to just about anything is a disadvantage, if there are other alternatives.
- chillee 7y agoDoesn't seem to have been a problem for React/PyTorch/GraphQL. Although perhaps I'd agree, actually. I'm not sure. It's at least not a huge deterrent.
- HenriNext 7y agoRedux has the largest shift towards "negative opinion" out of all technologies. Did people just get fed up with the boilerplate or is there something else going on?
- jameslk 7y agoIt's usage is probably being replaced with GraphQL + Apollo/Relay since the need for FE app state is reduced when you no longer need to make multiple round trip requests. Also Apollo (possibly Relay?) offer local state management too.
- HenriNext 7y agoThat would explain drop in use/popularity, but actually Redux is raising in usage, while sharply dropping in the other dimension towards "negative opinion".
- deleted 7y ago[deleted]
- woah 7y agoI started to realize that it just doesn't make a lot of sense. It doesn't actually have a real concept of how to deal with asynchronous things (like, http requests). You have to use weird things like redux-thunk, or god forbid redux-saga. The event system is basically synchronous, and just changes data which will be displayed in the UI. Why use the event abstraction and all the boilerplate that entails for synchronous code which doesn't really benefit from events? It feels like a cargo cult. What it boils down to is any function which will at some point change the UI needs to be written weird, so that it takes the "dispatch" function and calls "dispatch(nextFunctionEvent)" instead of "nextFunction()". Lots of developers always implemented their own half-ass systems to eliminate some boilerplate by automatically defining events from handlers and state or vice versa or some other combination of the above. React hooks have basically eliminated it's niche, and none to soon!
- 7y ago
- durnygbur 7y agoWhat a holy mess is the landscape of the testing frameworks, even worse than that of the front end frameworks itself.
- spankalee 7y agoThis is incredibly true. Testing libraries have not kept up with changes to JavaScript and web dev in general. I long for a test runner that does as little magic as possible, doesn't try to be a build system and module loader, doesn't inject random libraries into the environment, it just loads URLs and reports back test results. Test runners and assert libraries can massively slim down too if they because simple importable modules and don't modify the global environment or create plug-in systems or complex test lifecycles. Tests are async functions that resolve or reject, that's it.
- gherkinnn 7y agoI’ve used TAP and nodeTAP and always ran in to some problems. Then I gave AVA a try. Makes a pretty decent impression, though I have never used it in production. It’s simple enough, fast, and I have yet to run head-first in to some problem.
- aphextron 7y agoJest with Enzyme/react-testing-library seems to be consolidating things in the way React did for frameworks. It's batteries included, and everything "Just Works".
- mouzogu 7y agoWow, 39.9% of respondents mark themselves as "Expert" at CSS. I've been doing front-end in various guises for 12 years and I would only rank myself maybe 5 or 6 out of 10. As I've gotten more experienced in my career I've become more aware of what I don't know as opposed to what I do know. It's funny that "Advanced" is mastering animations and transitions whereas "Expert" is being able to develop a full-front end consistently. I know many people that can build a front end, myself included but are nowhere near mastering anything, especially animations and css transitions. I write this in jest of course. As we all know, self-assessment is about as reliable as...
- rhacker 7y agoProbably because a lot of people have been working with it for a long time (like you). I think I started 20 years ago - but I just learned like 40% of css grid this past weekend. (I've been a happy flexbox user for a few years) But I know what you're saying. I also noticed a few percentage points of people saying they have 20+ years or React experience at this point.
- jvke 7y agoThe `20+ years` demographic refers to 20+ years of JavaScript experience, AFAICT.
- cheapsteak 7y agoI had the same misunderstanding, thanks for pointing that out
- rhacker 7y agoahh thanks for that, I misread the survey notes on that.
- deleted 7y ago[deleted]
- sgdesign 7y ago(Survey author) yes, it seems like I made a mistake with the different level descriptions. For me knowing how to do things like transitions and animations is comparatively "simpler" than being able to architecture an entire CSS front-end including managing a design systems, naming, specificity, etc. but I guess many respondents didn't see things that way.
- lgessler 7y agoSo sad to see Meteor solidly in the avoid quadrant, but it seems deserved. Meteor is what I learned how to do web development with back in 2015, and it was fun. It didn't take much to make stuff happen, and the baked-in live sync was like magic. I'm still eager to whip Meteor out for proof of concept prototyping because of how convenient it is to have a schemaless database and a framework that abstracts away HTTP, but for one thing I feel Meteor's big bet on Mongo hasn't paid off. Also surprised to see ClojureScript's satisfaction rate at 60%. In the past year or two it's become much easier to use NPM packages, which was IMO the last remaining huge missing piece. It's now a great language for web development, providing what JS couldn't: a rich standard library with, ahem, consistent API's, a strong FP flair with excellent immutable data structures built in, and maybe most critically of all, a somewhat constrained macro system that allows users to write and distribute third-party libraries for syntax that in other languages would have required an extension of the language standard. All of that is (I think) desirable by anyone unless you're hardcore anti-FP (with the one exception, I guess, that macros can be and are abused, though I haven't seen it very often in the CLJS ecosystem). So why hasn't ClojureScript seen more adoption? It's the age-old curse of Lisp, I guess: those dang old parentheses which decades of CS curricula taught in ALGOL descendents have rendered foreign and horrifying.
- leeman2016 7y agoGlad to see lots of satisfied developers of Svelte as I am one. TBH though didn't expect to see it up there this quick.
- holler 7y agoDo other languages do these types of surveys? e.g. is there a "State of Python 2019"?
- guessmyname 7y ago• Go 2019 — https://blog.golang.org/survey2019 https://blog.golang.org/survey2019 (survey only) • Go 2018 — https://blog.golang.org/survey2018-results https://blog.golang.org/survey2018-results • Go 2017 — https://blog.golang.org/survey2017-results https://blog.golang.org/survey2017-results • Go 2016 — https://blog.golang.org/survey2016-results https://blog.golang.org/survey2016-results • Rust 2018 — https://blog.rust-lang.org/2018/11/27/Rust-survey-2018.html https://blog.rust-lang.org/2018/11/27/Rust-survey-2018.html • Rust 2017 — https://blog.rust-lang.org/2017/09/05/Rust-2017-Survey-Results.html https://blog.rust-lang.org/2017/09/05/Rust-2017-Survey-Resul... • C++ Global Insights 2019 — https://isocpp.org/files/papers/CppDevSurvey-2019-04-summary.pdf https://isocpp.org/files/papers/CppDevSurvey-2019-04-summary... • C++ Global Insights 2018 — https://isocpp.org/files/papers/CppDevSurvey-2018-02-summary.pdf https://isocpp.org/files/papers/CppDevSurvey-2018-02-summary... • StackOverflow Insights 2019 — https://insights.stackoverflow.com/survey/2019 https://insights.stackoverflow.com/survey/2019 • StackOverflow Insights 2018 — https://insights.stackoverflow.com/survey/2018 https://insights.stackoverflow.com/survey/2018 • StackOverflow Insights 2017 — https://insights.stackoverflow.com/survey/2017 https://insights.stackoverflow.com/survey/2017 • StackOverflow Insights 2016 — https://insights.stackoverflow.com/survey/2016 https://insights.stackoverflow.com/survey/2016 • StackOverflow Insights 2015 — https://insights.stackoverflow.com/survey/2015 https://insights.stackoverflow.com/survey/2015 • IntelliJ, Dev Ecosystem (All) — https://www.jetbrains.com/lp/devecosystem-2019/ https://www.jetbrains.com/lp/devecosystem-2019/ • IntelliJ, Dev Ecosystem (Java) — https://www.jetbrains.com/lp/devecosystem-2019/java/ https://www.jetbrains.com/lp/devecosystem-2019/java/ • IntelliJ, Dev Ecosystem (C) — https://www.jetbrains.com/lp/devecosystem-2019/c/ https://www.jetbrains.com/lp/devecosystem-2019/c/ • IntelliJ, Dev Ecosystem (C++) — https://www.jetbrains.com/lp/devecosystem-2019/cpp/ https://www.jetbrains.com/lp/devecosystem-2019/cpp/ • IntelliJ, Dev Ecosystem (C#) — https://www.jetbrains.com/lp/devecosystem-2019/csharp/ https://www.jetbrains.com/lp/devecosystem-2019/csharp/ • IntelliJ, Dev Ecosystem (Go) — https://www.jetbrains.com/lp/devecosystem-2019/go/ https://www.jetbrains.com/lp/devecosystem-2019/go/ • IntelliJ, Dev Ecosystem (Javascript) — https://www.jetbrains.com/lp/devecosystem-2019/javascript/ https://www.jetbrains.com/lp/devecosystem-2019/javascript/ • IntelliJ, Dev Ecosystem (Kotlin) — https://www.jetbrains.com/lp/devecosystem-2019/kotlin/ https://www.jetbrains.com/lp/devecosystem-2019/kotlin/ • IntelliJ, Dev Ecosystem (PHP) — https://www.jetbrains.com/lp/devecosystem-2019/php/ https://www.jetbrains.com/lp/devecosystem-2019/php/ • IntelliJ, Dev Ecosystem (Python) — https://www.jetbrains.com/lp/devecosystem-2019/python/ https://www.jetbrains.com/lp/devecosystem-2019/python/ • IntelliJ, Dev Ecosystem (Ruby) — https://www.jetbrains.com/lp/devecosystem-2019/ruby/ https://www.jetbrains.com/lp/devecosystem-2019/ruby/ • IntelliJ, Dev Ecosystem (Rust) — https://www.jetbrains.com/lp/devecosystem-2019/rust/ https://www.jetbrains.com/lp/devecosystem-2019/rust/ • IntelliJ, Dev Ecosystem (Scala) — https://www.jetbrains.com/lp/devecosystem-2019/scala/ https://www.jetbrains.com/lp/devecosystem-2019/scala/ • IntelliJ, Dev Ecosystem (Swift & Objective-C) — https://www.jetbrains.com/lp/devecosystem-2019/swift-objc/ https://www.jetbrains.com/lp/devecosystem-2019/swift-objc/
- geewee 7y agoAll the content aside, I just want to say that the presentation in State of JavaScript is magnificent. Some of these charts are superbly designed.
- ing-norante 7y agoDo you know what charting library has been used? These charts are indeed magnificent!
- jashmenn 7y agoD3. Incidentally, the creator of the overview chart [1] is also the author of an excellent book on D3 [2]. [1] https://2019.stateofjs.com/overview/ https://2019.stateofjs.com/overview/ [2] https://www.newline.co/fullstack-d3 https://www.newline.co/fullstack-d3
- smashface 7y agoSome of them look good but some of them are terribly designed. The rankings for testing graph shows storybook visually trending down when it actually increased in satisfaction.
- LessDmesg 7y agoThe state of Javascript in 2019 is that it should be deprecated. I have never had more problems, undefined behavior, mysterious errors and malfunctions, dependency hell and generally shitty syntax as when dealing with Javascript. God, please, just destroy this language. The web needs something different, something not broken and flawed.
- Gibbon1 7y agoA friend of mine worked on JavaScript at Netscape. He says he's sorry.
- LessDmesg 7y agoThanks, I appreciate it as I go on to the third day of trying to find why Javascript cannot get the correct width of an image but only under some circumstances unconnected to the JS code.
- adventskalender 7y agoMaybe sometimes it is not loaded yet? (Just a wild guess)
- LessDmesg 7y agoYes, that's the typical explanation, but no, the images are most definitely loaded, thanks.
- adventskalender 7y agoMeaning you have received the event that it has been loaded?
- arvinsim 7y agoTell me about it. I have tried my darndest to use types and tests to make things predictable. But there is always something that comes up. It might be Javascript itself. It could also be the endless permutations of environments(browsers, resolutions, devices, etc) that we have to cater to. Front End Web Development is hard.
- pkalinowski 7y agoCharts in this report are very misleading. In some cases 6% difference is 2 times bigger on chart than 5% difference. I’m aware they have no scale, are simplified etc, but chart format has very specific meaning and I believe that visualisations could be chosen in a better way.
- jccalhoun 7y agoI also noticed that on the Front End Frameworks awareness chart where react and angular flipped places from second to first even though they are both at 100% and then I saw that the vuejs was in 3rd place although it was also at 100%
- samspenc 7y agoI'm surprised to see Angular drop in ratings and rank so poorly compared to React. I personally prefer Angular myself because it's (a) opiniated and (b) has everything included (HTTP REST calls, Material UI, etc). Just curious why so many people prefer React and mark it so positively.
- ggregoire 7y agoIt takes 1 afternoon to learn React and it never requires you to open the doc again. Angular, on the other hand...
- jamil7 7y agoUntil you need a router or state management ect, then you've got a few tabs of docs open and a case of anlysis paralisis and a bunch of glue code to write.
- Supermancho 7y ago> It takes 1 afternoon to learn React and it never requires you to open the doc again. You are confusing your imagination with reality (or the history of your own experience).
- 734129837261 7y agoAngular ng-is ng-very ng-opinionated and requires a ton of boilerplate knowledge. It requires typescript knowledge, and I've noticed that (finally!) a lot of developers are realising that typescript actually doesn't make life easier at all. React, on the other hand, is a very intuitive library instead of an all-encompassing framework. You can easily setup a React application in a few seconds and get started, adding whatever you want as you go. The JSX syntax is infinitely more intuitive compared to the Angular way of doing things. Which also gets me to the point of Angular having a specific way of doing things, "the Angular way". With React there's less thinking required to get things done. The learning curve is steep (as in: you pick up the knowledge quicker) because the amount of information to take in is relatively low. Angular takes months to master. It's very opinionated. And it requires typescript. I for one hate typescript with the passion of a thousand suns. I know it very well because I have to if I want to keep my job, but it's so freaking unnecessary...
- napsterbr 7y agoI dream of an alternate timeline in which today we would release "State of ClojureScript 2019" with Javascript being listed as a ClojureScript flavor :)
- tonyedgecombe 7y agoI expect we will still be talking about JavaScript in another twenty years.
- swah 7y agoHappy to see ClojureScript mentioned since it feels that Clojure is past the hype cycle for a long time now. But in reality what I see is Typescript getting huge. Almost every big project I stumble has Typescript definitions.
- elwell 7y agoJavaScript is slowly feeding off ClojureScript's design.
- mijkal 7y agoSad to see Atom take such a sharp decline. I've finally accepted the writing on the wall and began migrating to VS Code last week. Thanks for all the memories, Atom! <3
- thebradbain 7y agoWow, just learned of Svelte from this. After reading their explanatory blog post and coming upon this blurb: That all changed with the advent of hooks [React and Vue], which handle state in a very different fashion. Many frameworks started experimenting with their own implementations of hooks, but we quickly concluded it wasn't a direction we wanted to go in ... We can just use the language. Updating some count value — and all the things that depend on it — should be as simple as this: count += 1; That's super exciting to me, as it puts the emphasis back on solving the task at hand and instead of framework nuances around state management. Will definitely be keeping my eyes on it. https://svelte.dev/blog/svelte-3-rethinking-reactivity https://svelte.dev/blog/svelte-3-rethinking-reactivity
- simooooo 7y agoSounds good until you see the $: syntax
- IshKebab 7y agoUnfortunately even though it is written in Typescript, it doesn't actually support Typescript, which makes it a no-goer for any serious work.
- tomduncalf 7y agoFWIW, MobX lets you mutate state in the same way. It does require you to make use of its observer/observable functions to make things reactive, but in general it works amazingly well. I strongly urge everyone to try it!
- Epskampie 7y agoAgreed. I feel so weird seeing everyone messing around with hooks while all the time I've been using what feels to me like a much simpler better solution. If you know React, look at the "Ten minute introduction to MobX and React" to see if it's for you. https://mobx.js.org/getting-started.html https://mobx.js.org/getting-started.html
- pier25 7y ago
- nablaoperator 7y agoThey could have been more careful when designing the T-shirt: Both Elm and Ember are depicted as 'Em'.
- fuzzy2 7y agoThe heatmaps somehow look all wrong to me...? Almost every percentage has the 40+% color.
- taurath 7y agoI wish “salary” wasn’t the way people were asked about pay. Everyone I know who’s over 200k only has 1xxk salary and like 100% of that in stock compensation. It’d give a different picture of what more people are making.
- epmatsw 7y agoTrue. I wasn't sure how to interpret that section either. Compensation (or Total Compensation) might be a more interesting measure
- tsukurimashou 7y agoOpinions: “JavaScript is over-used online” Strongly agree: 7.3% Agree: 16.9% How?
- Nextgrid 7y agoUsing SPAs where they're not necessary like for a purely content-based website. See the "new" Reddit, Twitter, etc.
- woutr_be 7y agoI think that for a lot of people, SPA + API is just the default, even though most of the time you can get away with a traditional MVC.
- austincheney 7y agoEven then MVC is almost always far more than needed to get the job done well... as are most frameworks. I have noticed in the big corporate space many people writing this code are formally educated to write code in a very specific way that isn't quite JS-friendly and they need the extra boilerplate to make JS behave.
- woutr_be 7y agoI see some of my colleagues (mostly front-end devs) don’t even know how to write code that’s not SPA + API, it’s pretty sad. It over complicates every project, and like you said, MVC in most cases is enough.
- stupidcar 7y agoState of JS is always a fun and interesting survey, but I am wary about drawing conclusions from its results because of the self-selecting nature of the participants means they are probably not a representative sample of JS developers in general. They're inevitably going to trend towards English-speaking developers who read coding news sites, participate in social media.
- deleted 7y ago[deleted]
- fourthark 7y agoEvery year I glance at it, thinking maybe I will learn something about the state of JavaScript. Then I remember that it's a popularity contest and I get bored pretty quick. I'm not sure why I should care what everyone else wants to learn. I guess it's worth finding out if there is a new popular framework this year. Sigh.
- keymone 7y agoi'm conflicted about this, but happy to see typescript overtaking the space. looking forward to the day we can all forget javascript the language as a bad dream and move on with javascript the vm.
- kbd 7y agoI wonder why https://markojs.com/ https://markojs.com/ never gets any traction. It wasn't listed in the front-end frameworks section, even in the free-form part.
- WA 7y agoInteresting. React is the thing. But some trends are weird: People ditch Cordova heavily, but also React Native and native apps. Electron rises to the top, although you can't build mobile apps with it that are distributed through the various stores. So, what's filling the void for app development, if everything just went down?
- marton78 7y agoMaybe Ionic with Capacitor?
- WA 7y agoNah, Ionic goes down as well for whatever reason. I'm still all in on Stencil + Ionic/Core + Capacitor. Maybe people use NativeScript, I don't know. Just found it interesting that the trend seems to go down for ALL mobile development tools.
- erokar 7y agoFlutter.
- namanyayg 7y agoHave the same question. Seems like most web mobile frameworks break when you need anything advanced. I've been hiring Java and Swift devs for my shop after a really poor experience with React Native. Hoping that changes soon, but it seems unlikely given how infantile Electron is still.
- joekrill 7y agoI think it's just because "Mobile & Desktop" are grouped together. React Native is still number two in the list, so if they were separated out, you'd have Electron rising to the top on desktop, and React Native staying at the top on mobile.
- LocalPCGuy 7y agoDefinitely Flutter. It's pretty easy for JS devs to work with Dart, and the Flutter architecture is basically like React - component-based (called widgets in Flutter) + RxJS (Streams and RxDart).
- pastelsky 7y agoI didn't see a section on CSS-in-JS libraries (or did I miss it?). That seems to be one of the more divided areas as far as opinion is concerned.
- urban_alien 7y agoCheck out the State of CSS survey.
- machiaweliczny 7y agoSeems like these "usage by" charts are probably not properly normalised(or how you call it?). Seems like these are showing for example how many users (earn 200k+ and use typescript) from all developers instead of percentage of TS users from 200K+ subgroup (which is much more interesting IMO), similar with experience and others.
- edem 7y agoTL;DR -> still shit, will never get there.
- TomMarius 7y ago18.1% of respondents are working with TypeScript (released in 2013) for more than 10 years... Eh, sure
- irrational 7y agoSome of the data visualizations seem... strange. For example, on this page: https://2019.stateofjs.com/front-end-frameworks/ https://2019.stateofjs.com/front-end-frameworks/ We see React go 93/93/91/89, but the 89 circle is higher than 91 and at the same level as 93? We see Vue go 87/91/91/87, but the second 91 is at a higher level than the first and the 87 is way below the first 87. It seems like the React line should be straight, then dip down a little bit, then dip down a little bit more. The vue line should go up a bit, then be straight, then dip back down to the original position.
- idoubtit 7y agoThe data visualization is often awful and misleading. For instance, consider https://2019.stateofjs.com/javascript-flavors/ https://2019.stateofjs.com/javascript-flavors/ 1. The first graph shows "Rankings". I strongly doubt rankings are more importants than values. When Clojurescript goes from 67% to 72%, this increase is shown as a ranking decrease because Reason was introduced at a higher ranking. 2. The meaning of the data is unclear, since the exact questions and proposed answers are not shown. 3. Some measures have varying populations, so ranking them is absurd. Supposing that 2% of people use A and 80% use B, what does ranking satisfaction with A above satisfaction with B mean? Since the uncertainty is huge on the A measure, the "real" ranking is not known. 4. Having to click in order to switch the measure shown is strange. The three measures should be display on three consecutive graphs. 5. The Categories graph is unreadable for a slightly color-blind like me. 6. The Categories segments aggregate data over 2 levels which makes them unreadable. First levels: Used, Heard, Unheard. Second levels should be computed relatively to their containers. Who cares if 1.8 % of users would not use Elm again? What is important is that ~28% (1.8/(4.7+1.8)) of those who used Elm would prefer not to do so again.
- emilecantin 7y agoI think the best visualization overall is the first one on https://2019.stateofjs.com/overview/ https://2019.stateofjs.com/overview/. Seeing the trajectory of each piece of tech gives a lot of insight on overall trends. For example, I was thinking of learning a bit of the more recent Angular (last time I used it was Angular 1.x, before React was a thing), but now I think I'll look more into Vue.js, as its trajectory looks much better.
- deleted 7y ago[deleted]
- zild3d 7y agoThese graphs were also pretty misleading https://2019.stateofjs.com/data-layer/redux/ https://2019.stateofjs.com/data-layer/redux/ Hard to get over the initial assumption that dark red means negative, and bright happy blue means positive.
- mschuetz 7y agoThe "Changes Over Time" graph is awesome. It does an excellent job of conveying current status and change.
- 8bitsrule 7y ago"State of Javascript trends", yes. Not much useful there for someone who just, you know, plods along with mere vanilla javascript. And when I flipped to 'inverse' (because of the blinding white) ... there went the color scheme.
- jermaustin1 7y agoHow do 3.6% of respondents have more than 20 years of experience in TypeScript? And 21.7% have more than 10 years? EDIT - They don't. They have 10+ years using JavaScript TypeScript was released in 2012, sure there are early adopters and beta users, but I seriously doubt that nearly 22% of the people using TypeScript prior to it being released.
- asdff 7y agoEither they are padding themselves on an anonymous survey for that sweet sweet ego validation or they have gaslighted their own experiences. Makes me pretty incredulous at the quality of this sample. It could also be some prick who converts 80 hour weeks into years of experience x2.
- mando75 7y agoI believe the question you are referring to is asking what general level of experience TypeScript developers have. I too was a bit taken aback when I saw that. I had to reread the question. They should have done a better job making that clear in the chart for people just skimming the data. https://2019.stateofjs.com/javascript-flavors/#javascript_flavors_experience_heatmap https://2019.stateofjs.com/javascript-flavors/#javascript_fl...
- jermaustin1 7y agoI completely missed that last sentence I guess.
- sgdesign 7y agoDon't worry I added it later on to clarify.
- yboris 7y agoTo me it seems like the winners of 2019 are: - GraphQL - Jest
- bbmario 7y agoSad to see that CoffeeScript is not even listed.