Why I’m leaving React behind

In the recent past, I’ve worked rather extensively on learning React and its ecosystem. It fits with my world view of things. I’m not a great programmer. I’m not going to learn five different frameworks in order to work. However, I’m leaving React behind and learning another framework now.

Why? Well, it has to do with licensing.

As an individual developer, you might think “wait, React is open source, so what?” Well, it isn’t my definition of open source. Facebook slipped a fairly broad patent protection into the license agreement. Put on basic terms, if I sue Facebook, my license to use React is terminated. The actual wording is as follows:

The license granted hereunder will terminate, automatically and without notice, if you (or any of your subsidiaries, corporate affiliates or agents) initiate directly or indirectly, or take a direct financial interest in, any Patent Assertion: (i) against Facebook or any of its subsidiaries or corporate affiliates

But I’m just an individual developer. I’m highly unlikely to sue anyone, much less Facebook.  Except that I am then rewarding Facebook for being a bully. Let’s say I’m not an individual developer. I’m a small business. Facebook uses my technology without permission. I can sue them for that and would likely win. However, my right to use React has just terminated. I might have won the battle, but if I based my business on a React platform, I’ve just lost the war. My company is shuttered.

The React license is what I would call encumbered. It has provisions that would give most legal people fits. Sneakily, they have not placed this information in the handy LICENSE file. Instead, they have placed it in a PATENTS file.

I’m an individual developer. My non-use of React will not persuade Facebook to remove that patent claim. But I can express my displeasure with my feet. If
Facebook wants to do this here, how long before the use of Facebook login and social features has the same restrictions? I don’t care to find out. I’ll reorganize my side projects around companies that work with developers.

So, what frameworks will I look at? The world has moved on since I last looked at frameworks. Fortunately, most of the frameworks I am going to look at have a nice friendly MIT-like license. Angular 2, Ember and Aurelia all are looking good. A bonus is that they inevitably support ES2015, which I now see as a requirement. Polymer isn’t quite a full framework, but has a nice friendly BSD-style license. None of these have a patent clause.

Are there others I should be looking at?  Let me know in the comments.

13 thoughts

  1. You might like to look at CycleJS. I’m exploring it and do like it. The ‘framework’ is only a few lines of code but it’s a clean way to use Reactive Programming with an Elm style unidirectional flow and Input / processing / output structure. Your code ends up being declarative pure functional with all side effects in the input/output modules called drivers. DOM updates are done in JS using a virtualdom and DOM events come in via a single stream.

    CycleJS originally used Microsoft’s RxJS but now has own xstream reactive library which is tuned for web apps. Can be use on server too. Some great docs by stalz and small friendly community (I went to recent conf). Expect a steep learning curve and brain rewiring but I now really like the explicit flow (in fact I wonder what using CycleJS for Logics Apps would be like :))

    Licence is MIT and xstream is 3 clause BSD


  2. Pingback: Dew Drop - August 15, 2016 (#2309) - Morning Dew

  3. jeepers, forget suggesting an alternative framework, how about calling them out for being downright sneaky barstards…


  4. Pingback: Follow-up to Why I’m Leaving React Behind | Adrian Hall

Comments are closed.