We introduced
React
to the world two years ago, and since then it's seen
impressive growth, both inside and outside of Facebook.
Today, even though no one is forced to use it, new web
projects at Facebook are commonly built using React in
one form or another, and it's being broadly adopted
across the industry. Engineers are choosing to use React
every day because it enables them to spend more time
focusing on their products and less time fighting with
their framework. It wasn't until we'd been building with
React for a while, though, that we started to understand
what makes it so powerful.
React forces us to break our applications down into
discrete components, each representing a single view.
These components make it easier to iterate on our
products, since we don't need to keep the entire system
in our head in order to make changes to one part of it.
More important, though, React wraps the DOM's mutative,
imperative API with a declarative one, which raises the
level of abstraction and simplifies the programming
model. What we've found is that when we build with
React, our code is a lot more predictable. This
predictability makes it so we can iterate more quickly
with confidence, and our applications are a lot more
reliable as a result. Additionally, it's not only easier
to scale our applications when they're built with React,
but we've found it's also easier to scale the size of
our teams themselves.
Together with the rapid iteration cycle of the web,
we've been able to build some awesome products with
React, including many components of Facebook.com.
Additionally, we've built amazing frameworks in
JavaScript on top of React, like
Relay, which allows us to greatly simplify our data fetching
at scale. Of course, web is only part of the story.
Facebook also has widely used Android and iOS apps,
which are built on top of disjointed, proprietary
technology stacks. Having to build our apps on top of
multiple platforms has bifurcated our engineering
organization, but that's only one of the things that
makes native mobile application development hard.
This is an excerpt. Read the rest of the post on
Facebook Code.