

Why is Facebook supporting React? - javajosh

It seems strange to me that Facebook Corp. would want to create and support React for free. What is the play? How is React in Facebook&#x27;s best interest? Is it only about attracting engineering talent? Or is there a long-term play here?
======
smt88
I don't know why specifically, but I can point out some benefits that make
creating/releasing React "enlightened self-interest" (i.e. doing something
good that is a net-positive for the company).

1\. Facebook uses it. Instagram runs on it, and it's used in some other parts
of Facebook. If the community tests it, fixes bugs, and creates a generation
of young people who are already familiar with it, it's great for Facebook.
They have a rock-solid library and a huge pool of potential developers to work
on it with no ramp-up time.

2\. Great programmers like to invent. One of the most-lauded perks at Google
was the ability to spend free time on anything, whether it helped Google or
not. Facebook _has_ to offer its engineering teams fun, cutting-edge projects,
or some of them will leave. Money alone doesn't retain tech talent.

3\. As you implied, Facebook ups its "cool" factor by offering a high-quality
product for free, especially when it's at the cutting edge. A recent HN post
said "Facebook just taught us how to build web apps" (meaning their recent
announcements were a major evolution in the way we build them). That's huge
for Facebook as they hire. Again, they can't pay every engineer $30M/year, and
even if they could, they'd still have people who wouldn't join the company.
They need the intangible stuff, as well.

------
nostrademons
(I don't and have never worked for Facebook...this is my interpretation based
on watching several technology cycles - Windows => Java => Web => Mobile - go
by.)

They want to own the next generation UI layer that the rest of the technology
industry writes their programs on. That's why they've focused on making React
cross-platform with React Native, and it would give them enormous leverage in
adapting the platform to their revenue-generating products' needs.

If you look at the difference between Google's and Facebook's strategic moves
with the shift to mobile, a lot of it can be explained simply because Google
owns a browser and a mobile OS, and Facebook owns neither. So Google puts out
Polymer, and builds it into Chrome, and uses that as a carrot & stick to move
the browser ecosystem in a direction it wants. Facebook can't build their
needs into the browser, and so they put out React, which has to function as a
layer _on top_ of the browser (or native platforms, now). That means you pay
for the download cost, it can never be as fully performant as things that run
natively on the GPU, it won't integrate well with the rest of CSS/HTML, etc.

I bet that if React becomes successful in the UI space and a majority of apps
start using it as their framework, Facebook's next move will be to put out a
mobile OS that runs it natively. Right now, Facebook's phone plans have been
thwarted because there are no apps for it, and so no consumer would buy a
Facebook phone. If they could instead say "All your favorite apps run twice as
fast as they do on competing phones!", people would switch in droves.

~~~
dreamdu5t
Facebook supports React simply because it's a tool that allows them to
effectively develop UIs that perform well. That's it.

> That means you pay for the download cost, it can never be as fully
> performant as things that run natively on the GPU

If you're talking about the web, the virtual-dom diffing strategy employed by
React performs better than other ways to render complex UIs in the browser.

> it won't integrate well with the rest of CSS/HTML, etc.

The whole point of React is to make writing CSS and HTML easier. It integrates
wonderfully.

------
jedi_master
What was the purpose of bell labs making unix or linus torvalds linux? Why is
apache free? open source C compilers? python, java, mysql, go-lang, rust,
angular the list goes on.

Open technology helps evolve the type of applications we can build. There
doesn't have to be a "play". Facebook made something good that makes their
lives easier and their product better. By open sourcing or sharing react
whichever it is they allow other people to contribute which in part makes
their product better but also increases the quality or reduces development
time of the applications that anyone else using it builds.

