Why React?

Published May 12, 2017
Why React?

Even if you have been living under a rock, you propably have heard about ReactJS the past year. You propably already know what it is and what it does so why read yet another article about React. Good question, let cover some of the parts that React is good at. Every tool is useless if it isn't put on the context of business and benefits of the product.

Let me start with a context, why I started to use React (so selfish of me). We are a team of 3 developers. We can cover every aspect of a small to medium Web Application, we grew up not liking much CMS's and as native mobile app's rose on power, we kinda went also to that branch of industry. We really liked what IOS and Android could do that Web couldn't. If you payed attention when Nativa Apps were huger than today, you would see that in many usecases they were superior to Web Applications. Even today thay kinda are. But web being web, learned from what was better, and quickly adopted. Browsers were adding new API's and making the Web App land a happier place. I'm not saying that we dont need more Java/Swift Native apps today, but let's be real for something, not every Mobile App should be native in the first place. As many other people, we were sceptical in the begining because of the Yet Another Javascript Framework syndrom (also from the hype and similarity of Titanium SDK, ask your parents about that). Javascript looked like it could pull over a new tool every today for problems that you didn't had. Angular and Ember worked fine for Google and many medium to large web apps. And also what is this React Native, Facebook couldn't possible be serious about this, right?

As it turns out, it was quite the oposite. So why is that?

Sanity. ReactJS isn't much on itself, but when coupled with Redux (or choose another Redux like software there), it is really powerful. My personal definition on ReactJS + Redux is: "Imagine coding without errors, Imagine that your code is deployed with minimal bugs and errors". It really is like that. If you keep to work by the guidelines of ReactJS and Redux, every bug will show itself. Having a single source of truth (Redux in this case), simplifies the workflow.

Consistency. Officially, Facebook maintains ReactJS and React Native. What would you think If I told you that there are forks of React Native that makes the framework work with Windows Universal Apps and MacOs native apps. But keep that thought out of your mind for a moment. Android, IOS, Windows, Mac is too much for now. Having 2 different codebases for IOS & Android, having 2 different languages isn't a bad thing, but that is equal to time and cost, which in the end of the day equals money. For some project, money is the problem. Using React Native you can develop your app for half of that cost (at least). Now imagine that some of the code that you have used on React Native, could be used on your web application. Don't imagine, you can already do that.

If you mind is blown, remember, this isn't like matrix, you don't have to choose a pill, or it doesn't have right and wrong choice. You only should go to ReactJS and React Native web pages (also check out Redux, is cool).

Did I mention that is hard to find good developers on different areas. Now it's easier, you can have (or be) a developer on React + ReactNative and code Web/Mobile applications. You can be a full stack on both of them. And just as a reminder, React Native, has Native UI so it counts as Native.

Changing paradigm a bit. Don't want to sound much of cool here, but seeing different paradigms is a good thing for you as a developer. It helps you keep up the good work and looking problems from different angles. For example, Redux reminds me much of pure functional programming. It's amazing what functional programming can do sometimes.

Give it a try. Even if you are not thinking to much about this topic, or dont have feelings toward this topic, why don't you give it a try. React is fun to learn and use.

Discover and read more posts from Aleksander Koko
get started