Although I like this a lot, and I think it addresses most individual nuggets of React Sadness in a pretty reasonable way, I am still sad.
I am sad because every process rectangle in this chart should also point to a decision diamond that says:
"Does it seem that the entire industry has migrated to this stack, whether or not it really makes sense for everyone to? That a feedback loop now influences shops to choose these tools/technologies not because they are called for, but simply because they are trendy? That present excitement outweighs the question of 'whether you need this or not' in the eyes of most of your peers and colleagues? That the incentive to not get left behind is stronger than the incentive to stop and consider?"
And then, that diamond should point to a final rectangle that says:
"If you wish to remain employable, learn React + Redux + ES2017 + Webpack now, or join a different sector of the industry. As for the sadness, deal with it."
This isn't only true of React, of course. The underlying sadness comes from watching one's valid hesitations drowned out by the mob.
>Does it seem that the entire industry has migrated to this stack, whether or not it really makes sense for everyone to?
It definitely doesn't make sense for all types of websites, but React seems to me like a solid choice any time a) a true web application is desired and b) maintainability, interactivity, and scalability are high priorities. React isn't the best choice for static informational sites and such, but I can't think of an application that wouldn't be well suited to React.
Did anyone claim the same about jQuery a few years ago? First people claim about js library fatigue, now we are complaining about there only being "one employable js library."
My point is more that, while Dan A.'s chart does a good job of addressing individual parts of React Sadness, it is sort of moot, because those choices will already be made for me, wholesale, via tangential incentives and community mob rule, instead of consideration and consensus on a per-project basis.
It doesn't matter (for example) if I am/am not comfortable with ES2015 syntax. A junior developer already made that decision for me when he decided to implement the modal window by adding React, Babel, and Webpack to the project, instead of just writing a two-line event listener and a CSS class. Meanwhile, my colleagues are standing at the kegerator toasting his choice, because how could we ever have maintained or optimized such archaic vanilla JavaScript before without arrow functions and DOM diffing!?
React is not bad. In fact, it is great. But instead of being "an option" it is becoming "the default." Sadness results from being forced by industry trends into using it everywhere, despite knowing that it doesn't solve any problems that I did have while introducing new problems that I didn't have.
Vanilla JS was so horrible when JQuery came out that pretty much everyone loved it, except for a few folks who had been early adopters of Prototype/Mootools/YUI/Ext and were decrying how JQuery didn't have their favorite pet utility function.
I think the JS fatigue we're seeing is because web development is now largely a mature industry. React is roughly the 4th generation of Javascript technologies (1st = DHTML/Layers, 2nd = JQuery/Prototype/Mootools/YUI/Ext/Dojo, 3rd = Angular/Ember/Backbone, 4th = React/Polymer). At this point, there are millions of JS developers, they have seen multiple generations go by, and they just want some stability. The folks who always want to be on the bleeding edge are off doing IoT and VR startups.
IMHO, React is a nice piece of software, but it's a nice piece of software entering a market where existing solutions are already pretty good and much of the action is moving elsewhere. They have to hype it up, because people won't give up their JQuery/Angular/VanillaJS otherwise. It's a very different situation than when JQuery was introduced and web development was recovering from the .com bust and years of stagnation in browser innovation.
Web development has reached "maturity"... How funny a thought us that.
Sorry to be brutal but. Fuck no it's not. An hours studying of the JavaScript ecosystem should be more than enough for most to see that not only is web development not mature its mutating and beginning to try to consume other programming disciplines like some form of cancer. Just look at how NodeJS has been creeping its way from server to desktop to mobile.
There's a new generation of web devs that are starting to feel old and cranky. jQuery will be 10 years old this year (I KNOW!?); Gnarls Barkley's Crazy was on the radio then.
you have a lot of truth in what you say. the funny thing is how this bunch of kiddos / noobs that started doing "websites" and "mobile apps" after iOS and Android thinks they know it all and they are doing the best thing ever when actually they are just implementing shitty designs that were done by other noobs that have never ever animated a button rollover properly or even a "website transition" in their life but call themselves "art director" , "senior bullshit" or something like that
I am sad because every process rectangle in this chart should also point to a decision diamond that says:
"Does it seem that the entire industry has migrated to this stack, whether or not it really makes sense for everyone to? That a feedback loop now influences shops to choose these tools/technologies not because they are called for, but simply because they are trendy? That present excitement outweighs the question of 'whether you need this or not' in the eyes of most of your peers and colleagues? That the incentive to not get left behind is stronger than the incentive to stop and consider?"
And then, that diamond should point to a final rectangle that says:
"If you wish to remain employable, learn React + Redux + ES2017 + Webpack now, or join a different sector of the industry. As for the sadness, deal with it."
This isn't only true of React, of course. The underlying sadness comes from watching one's valid hesitations drowned out by the mob.