Why is Facebook supporting React?
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's best interest? Is it only about attracting engineering talent? Or is there a long-term play here?
3 comments
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.
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.
(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.
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.
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.
> 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.
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.
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.