3 ms·
I think the problem is not so much with the React architecture, but with the culture of JavaScript, which: * does a horrific job with documentation * delivers
by woofie11 6y ago
I think the problem is not so much with the React architecture, but with the culture of JavaScript, which:
* does a horrific job with documentation
* delivers millions of packages with demo-grade half-finished projects
* has tutorials which show basic functionality, without going into any sort of depth, which people glue together by pattern-matching
That doesn't work well in general, but for something as complex, deep, and, well, architected as React, it doesn't work at all. People really do need to understand reactive programming, functional programming, and deep concepts to handle React well. Resources to do that don't exist.
This is the claim for React's documnetation:
"The React documentation assumes some familiarity with programming in the JavaScript language. You don’t have to be an expert, but it’s harder to learn both React and JavaScript at the same time.
We recommend going through this JavaScript overview to check your knowledge level. It will take you between 30 minutes and an hour but you will feel more confident learning React." source: https://reactjs.org/docs/getting-started.html https://reactjs.org/docs/getting-started.html
Really? Read that again. REALLY? Someone with 30-60 minutes JavaScript programming is expected to code in React?
That's the target audience of most of the docs, and nothing goes far enough to get people qualified to use the tools. It becomes a magical black box. The posts in this thread show this attitude too: "You don’t really need to understand how React works, you just need it to work"
- mpalmer 6y agoDid you read it again? "to CHECK your knowledge level" Doesn't sound at all to me like they're saying "read this and you'll be ready to learn React". More like "if you find any part of this overview to be confusing, you might find React confusing." Also, I learned enough React to be dangerous when I didn't know anything about reactive or functional programming. I imagine plenty of people have had the same experience.
- mpalmer 6y ago> People really do need to understand [...] deep concepts to handle React well. "Handling React well" is subjective. What are you building? > but for something as complex, deep, and, well, architected as React I'm not sure what "architected" means in this context. But re: complex and deep - React is complex to the extent that you need to build complex things. It is deep to the extent the developer requires. This is a great aspect of its composable design - it's just components made of components made of...etc. But people don't learn React by building huge, complex, deep things. They build simple things, and go from there. In this respect, React does a great job with documentation. They start small.
- woofie11 6y agoIt's deep and complex in the same way Lisp is deep and complex. Or if you don't know Lisp, a weaker analogy is Go. I'm a huge fan of React, but without understanding of why it is, people use it wrong all the time.
- Tiktaalik 6y agoPretty much yes. I'm a C++ programmer that barely knows javascript that is using React to build a UI for a product. It's complete magic to me and I have no idea how it works. I haven't seen any deep documentation anywhere that would give me more insight that I have now. shrug
- acemarke 6y agoFor starters, I'd suggest going through Rodrigo Pombo's walkthrough "Build Your Own React" [0], my post "A (Mostly) Complete Guide to React Rendering Behavior" [1], Dan Abramov's treatise "A Complete Guide to `useEffect`" [2], and Shawn Wang's talk "Getting Closure on Hooks" [3]. I also have additional links on both React's internals [4] and React hooks specifically [5] that should be useful. [0] https://pomb.us/build-your-own-react/ https://pomb.us/build-your-own-react/ [1] https://blog.isquaredsoftware.com/2020/05/blogged-answers-a-mostly-complete-guide-to-react-rendering-behavior/ https://blog.isquaredsoftware.com/2020/05/blogged-answers-a-... [2] https://overreacted.io/a-complete-guide-to-useeffect/ https://overreacted.io/a-complete-guide-to-useeffect/ [3] https://www.swyx.io/speaking/react-hooks/ https://www.swyx.io/speaking/react-hooks/ [4] https://github.com/markerikson/react-redux-links/blob/master/react-implementation.md https://github.com/markerikson/react-redux-links/blob/master... [5] https://github.com/markerikson/react-redux-links/blob/master/react-hooks.md https://github.com/markerikson/react-redux-links/blob/master...