Thursday, May 02, 2024

Over-Engineering, Bad Teamwork, and Unethical Behavior in React Developers

I have observed that most React developers tend to over-engineer their solutions, tend to not-respect other people's opinions if they disagreed with theirs (bad for teamwork), and tend to be unethical, lying a lot about the weaknesses of React, thus very negatively impacting teamwork, slowing down productivity, and cheating customers with higher development costs. That is in spite of React weaknesses being very glaring and embarrassing, like the Fetch Waterfall issue, among many others, which any smart well-grounded Software Engineers saw from a mile away when they heard of the unsound design of React. And, due to that unsound design, every time React comes up with a new solution to one of their embarrassing problems, they end up being very over-engineered solutions that would not be needed in the first place if React had better design. 

Also, as part of lying a lot, many React folks claim that React code is "modern" and "easier to reason about" when in fact React code follows techniques that were known from the 70's in languages like Lisp, and is much much much more complex to reason about given it mixes concerns badly inside low-level mathematical functions that force developers to think about the whole scope of a page consisting of a hierarchy of highly-coupled functions instead of following much superior techniques that make us think about code exactly the same simple way we naturally think about the world outside of software at a high-level, which were invented during the Lisp days as an advanced form of Functional Programming called Object Oriented Programming (contrary to popular myth, OOP is part of FP, not apart from it; as OOP is simply smart data that knows its own functions). React folks try to re-invent weird complicated ways of writing code (like state-hooks/effects & nesting functions within functions within functions) just to show off how "clever" they are instead of simply adopting the simple ways that are proven to facilitate better teamwork in the Software Engineering community.

I think many React developers lie partly because they do not really understand the Software Design decisions behind React and just like to repeat what they hear from its creators without thinking for themselves, just because the sayings they repeat were said by what they deem as "important people at important companies", assuming they are infallible people who never make mistakes. Like for example the saying "easier to reason about", which if they thought for themselves with an objective analysis, they would realize right away that it is not true whatsoever about React, which tends to mix business data/logic concerns with presentation and view concerns. A lot of React folks will then try to show off how "clever" their techniques are, despite the fact that "clever code" is known as a Software Engineering Anti-Pattern. 

The lack of ethics in many React developers and in the React creators is not surprising about React given it comes from Facebook, an unethical company that is known for spying on its own users. Just for the lying alone being very common in the React community, I would pass on using React in any new projects involving Frontend interactions given that it encourages unethical behavior in developers. 


No comments: