I'm not blaming React/FB, but I feel like Facebook built React to build Facebook === everyone started building UI's like Facebook would build Facebook.
“Premature optimization is the root of all evil”, which we apply to everywhere but front-end development. We seem to start with an overly complex baseline and work up from there.
if its worth anything at this point, i've loved using React for years now
however, lots of isolated but sequential frustrations with tooling (not React-specific) can lead to demotivation at times
This is something I've been thinking about. There are four pillars to getting started w/ the language,I think: understand the 'this' keyword, understand the event loop, understand objects & how functions realty to them, and understand closures. Once you get those js is readable.
Something weird has happened though. With lambda functions, we can start teaching from a lambda calculus mindset. No more 'this'. And closures are baked into everything. Immitability reduces reassignment bugs due to scheduling.
Very little content on learning functional programming in JS for beginners, but I've seen it being used successfully. The cost is a reduced understanding of classes and 'this'.
i (back-end person) had to do some stuff with gulp and node and handlebars and a million other modules and everything i googled only got me results where i couldn't recognize any of the verbs people were using
Being unfamiliar with React, it took me 2h to figure out how to get a select dropdown to do “selected” on a preset option correctly without warnings, so yeah.
Yes. That. *And* the number of times I see and app that’s 99% static HTML pages but rendered via the gift of 300 NPM dependencies and a bloody unreadable DSL
It might be challenging at first but having React as the single source of truth for that state really helps things scale. This is good engineering. React shouldn't be used for static websites, but for applications it is very good at what it does.
You say you are unfamiliar with it then how can you say it's implementation and execution are sub-par? React is extremely well written and thought out.
React is only 'well written and thought out' if those writing it have thought about it, and can write it well. I'm experienced a truly badly written React app and it's a nightmare.
The current big issue is that someone decided that HTML/CSS were close enough. Things like WPF get a lot right, though they're not perfect. Angular and React though just don't get the MVC abstraction right. They add too many layers to make HTML/CSS fit their style.
retweeters, don't be fooled by bootleg designs; give @stevenf his due and order your CSS mug here today:
zazzle.com/css_is_awesome…
suitable for stuffing into stockings or 12-grids
man, I got a younger friend of mine into html and css. then I couldn't tell him to fall down the rabbit hole of learning JavaScript. it's such an antiquated yesteryear mish-mash! recommended him to learn Elm instead. might actually learn something useful!
Yes - BUT - the overthink is a growing pain. We're doing things that were impossible even a couple years ago. Nostalgia for old frameworks wont fix todays problems. I think we've normalized being on the bleeding edge - not all apps need to be there.
I’d been doing front end dev for 15 years before es modules, React, and webpack. Before, I hated it with a fiery passion.
The tooling made me love front-end again.
One thousand times this. The tools have made front end far easier to deal with, especially for larger projects. If the tools don't make your life easier then don't use them!
So much complaining, so few proposed solutions. Have you ever had to build and/or maintain a frontend codebase with tens of millions of users? Go try doing that with jQuery or vanilla js and let us know if React's ecosystem still feels over engineered.
The problem is that the number of people writing web apps supporting tens of millions of users is infinitesimally small. Right tool for the job and all that.
That's a fine point, but what would be a better tool for an app supporting < 1M users? 100k? Does anyone have better ideas for apps with fewer features and fewer users?
Your number of users doesn't define the right tool. The problem being solved and the resources (people, et. al.) available to solve it define the right tool. Generally, the right tool is the one the people understand the best.
If I've got a giant app I need to build, and I've got 5 good vanilla JavaScript programmers to build it, 99.9 times out of 100, they're going to output better vanilla JavaScript than they will react or vue or whatever the flavor of the month is.
You've been writing "huge apps" with pure vanilla JS with no libraries since the year JavaScript was created? Wow, you must be miserable if that's true, which I cannot possibly believe. But keep doin you. And the rest of us will build better UI's much faster with modern tools.
I've been writing software in general for 22 years. I'd say 15 of that has included JavaScript in one form or another and yes, for the most part, I still use vanilla JavaScript.
So its the tools fault? People bash on webpack and babel like dude, you don't have to use them. Like you said, right tool for the job. Ain't the tools fault they are being misused.
Use what's right for the job. It's not all that hard with boilerplates like create-react-app and sane defaults. 😎
Try building an atleast medium sized responsive SaaS app with offline capabilities lots of interactivity without the frameworks and tooling of today! 😭
Nope. For the most part we are building much more complex applications. Tools like React along with sound software engineering principals such as TDD massively reduce bug density and help things scale.
React shouldn't be used for basic brochure websites.
Disagreed. Overengeneering only happens because people don’t like to read. Nobody needs to use React and all the trending tools. Avoid fatigue by just using what you need to get your job done and period.
Is there any study (I use the term very loosely) that links over-thinking/engineering frontend development with increased remuneration for frontend developers?
I remember the dark ages of FE dev when debugging was done by manually changing CSS colours, and borders, and every site was in Flash. I’ll take the current state of affairs over that.
"over-engineering" means the solution has out-matched the problem in terms of abstraction by some arbitrary margin. Determining if something is over engineered is therefore case-by-case, subjective, and dynamic. Does React outmatch all possible projects?
We've got it the best we've ever had it. Go look back at an old Backbone app, or the tied-together-barely-functioning jQuery from before that. The countless event systems, manual dom updates. The impossibility of debugging. The "build systems" from 5 years ago. It was terrible.