The React Curve
- Tools and Tooling: Mentioned 22 times
- Redux and Flux: Mentioned 16 times
- Webpack Alone: Mentioned 12 times
- Babel Alone: Mentioned 5 times
To run the code, and see how the results were gathered, simply type the following into your terminal.
git clone https://github.com/Connorelsea/TwitterAnalysis
cd TwitterAnalysis && npm install && npm build
// Edit twitter_account.js and add your Twitter developer info
Though some responded with critiques of React itself, I and many others found that these are minor, asserting that the real problems lay at the feet of its complicated tooling and infrastructure. Most of the responses and critiques had little to do with React itself, and far more to do with it the overbearing set of tools.
This tweet sums up the feelings of many users’ responses and critiques I have heard in the past. Though, as Hunt responded, where do we draw the line on what may be considered difficult to a newcomer and what may not?
“Well hey, be sure to use Babel and Webpack to get the best of ES6 and JSX!”
“No, why use Webpack? Browserify is much simpler and conducive to my isomorphic boilerplate!”
“Isomorphic!? Don’t you mean universal!”
“Remember, you’ve got to choose a way to manage data and state. I personally use Flux.”
“Flux!? Anyone who’s anybody is using Redux!”
“Redux is a fad. I’d use Reflux or Vue.js… or maybe even Meteor with…”
I left the IRC — heading to a Google search page with nothing but an expanded vocabulary and a spinning head.
Unfortunately, even though I’m sure advocates clinging to their respective stacks are trying their best to be helpful, throwing progressive enhancement and isomorphic architecture at a newcomer asking, “What is React?” is not the best way to handle beginners.
React, and many of the tools surrounding it, are heavily unopinionated, which results in much of the community rolling their own stacks, patched together with their favorite libraries from NPM. I am not an advocate for making React more opinionated, or having Facebook include more proprietary tooling, but I am an advocate for experts writing tutorials or guides to remove their react-colored glasses. The ambiguity of React, and the freedom that comes with it, is both a blessing and a curse.
Most of my confusion stemmed less from React itself, and more from the paralysis of choice. In addition, structuring applications using React and the tools in its ecosystem was my first experience with this level of professionalism and complication. I was being introduced to completely new application architectures, 4 or more build tools, and libraries from everyone’s favorite stack that “ you just have to use!”
If anyone has more idea on how we as a community can combat this rough beginning to help newcomers in the future, let me know.
Move fast, break things… but write great documentation along the way.