An Initial Reaction to React.js

• ~400 words • 2 minute read

I've been trying to incorporate React.js into my repertoire as of late. If you're on the fence about learning it I recommend reading React.js For Stupid People. While I don't necessarily agree with some the author's conclusions and assertions about the framework's benefits, I do think he does a great job of simplifying and explaining what React.js actually does.

My initial reaction to React.js, after diving into it for a few weekends on some hobby projects: Someone at Facebook was trying to create some job security for themselves, because this thing feels contrived and kludgy as shit!

I'm being a bit tongue-in-cheek when I say that. I know the industry like to reinvent wheels and that you have to be mindful of where the community traction lies.

I've dabbled with Angular and Ember and love a lot of what they bring to the table. For both of those frameworks it felt evident to me what problems they were solving and why I might use either. With React... it was not so obvious. A recurring refrain seems to be it will be great when everyone is using it because the current way is bad, but when everyone is doing it this way it will be good, because we'll all be doing it this way...

I'm paraphrasing and being a bit of an intentional dick with this assessment, but time will tell. Componentized UI structures seem here to stay and are interesting in a web context, but React.js does not seem like an obvious improvement to me.

Building better interfaces on the web is a problem that people have been trying to solve for ages. I can remember the Google Web Toolkit and SprouteCore and Cappuccino. In other words: I am old, in web development years.

The only thing I feel certain of right now is that something will eventually replace React.js — something that will undoubtedly take the best bits and introduce new ones, but replace it none the less. I think something like WebAssembly shows a lot more promise — a broader paradigm shift rather than replacing one gordian knot with another.

For now I remain unconvinced, though as it continues to gain traction I will concede, learn and let it be a part of my repertoire like anything else.

It'll be curious to see how this post ages :-)