News for hackers. Stuff that matters.
Re:Explaining React's license by Steeeve on Friday August 18, 2017 @08:51PM (#15050903)
> We've been looking for ways around this and have reached out to ASF to see if we could try to work with them, but have come up empty.

This, to me, is a significant warning sign.

I was leery of the React license to begin with. But the community at large had _almost_ convinced me that it was nothing to worry about.

Unfortunately, Facebook's position as stated here is clearly that the license is weaponized for a reason. I think it's irresponsible to leverage software with this license without clear guidance from legal and corporate overlords stating that it's OK.

Re:Explaining React's license by pdfernhout on Friday August 18, 2017 @09:44PM (#15051138)
Yeah, I got tons of pushback when I tried to steer Automattic and the WordPress community away from React in 2015 with people saying not to worry:

"Replace React with Mithril for licensing reasons" https://github.com/Automattic/wp-calypso/issues/650

Personally, I increasingly doubt that BSD+PATENTS is even GPL-compatible -- and so potentially Automattic may be violating the GPL by using React integrated with WordPress.

What's especially sad about this is that React isn't even that good compared to other vdoms like Mithril and Inferno and others. React just has a lot of name recognition and mindshare from the Facebook association (which then translates into a rich-get-richer effect with more tutorials and components).

Here is a list of more than twenty alternative vdoms I put together in January 2016 (although Mithril remains my favorite): https://github.com/dojo/meta/issues/11#issuecomment-17679024...

Re:Explaining React's license by Lazare on Friday August 18, 2017 @10:57PM (#15051397)
If Facebook has a patent on React, it's almost certainly going to be on the vdom concept.

If Facebook has a patent on the vdom, then all the projects in your list violate the patent, and none of them come with even a conditional patent grant from Facebook.

If Facebook does not have a patent on the vdom or other React technology, then those other projects are safe, but so is React, since termination of the patent grant has zero cost to you.

My personal belief is that Facebook has no patents on React, so I feel safe to use React, Mithril, or any other vdom based library. But I can certainly understand people who feel like they need to play it safe, assume Facebook does have a vdom patent, and avoid all such libraries.

But I'm not really following your logic at all. It's like you think Facebook has a patent, but then you only want to use the libraries that maximise your ability to get sued over it? What am I missing?

Re:Explaining React's license by jnbiche on Friday August 18, 2017 @11:17PM (#15051463)
You're missing the fact that if you sue Facebook for any patent infringement, even a legitimate one (say, you're the creator of some new hardware), Facebook will revoke your React license.

Also, Facebook has no vdom patent. It's not like you can be granted a secret, hidden patent (even the word "patent" itself means "open").

Re:Explaining React's license by Lazare on Saturday August 19, 2017 @12:26AM (#15051674)
> You're missing the fact that if you sue Facebook for any patent infringement, even a legitimate one (say, you're the creator of some new hardware), Facebook will revoke your React license.

Incorrect. (This has been clarified many times, including in Facebook's official FAQ about React licensing.)

> Also, Facebook has no vdom patent. It's not like you can be granted a secret, hidden patent (even the word "patent" itself means "open").

I agree. Many people have looked; no one has found one. Hence why I believe there's no risk to using React.

Re:Explaining React's license by JoshMnem on Saturday August 19, 2017 @01:36AM (#15051864)
Do you mean this one? https://code.facebook.com/pages/850928938376556

It doesn't address the scenario of Facebook's violating your patents first.

Re:Explaining React's license by Lazare on Saturday August 19, 2017 @03:42AM (#15052207)
The key phrase I was replying to was "Facebook will revoke your React license."

Facebook cannot revoke your React license in any circumstances, as that link makes clear.

Re:Explaining React's license by cyphar on Saturday August 19, 2017 @10:03AM (#15053399)
They revoke the React patent grant, which effectively downgrades "the React license" to just a stock BSD 3-clause license. At that point they will likely counter-sue you for patent infringement.

In my mind that situation is effectively identical to losing "the right to use" license on grounds of patent suit (like Apache). Interestingly, in Apache you'd still be sued for patent infringement (not copyright infringement) because "right to use" is provided as a patent license.

Re:Explaining React's license by Lazare on Saturday August 19, 2017 @10:47AM (#15053656)
> They revoke the React patent grant, which effectively downgrades "the React license" to just a stock BSD 3-clause license. At that point they will likely counter-sue you for patent infringement.

Yes, but for what patent? People have looked; none have been found. :)

Re:Explaining React's license by cyphar on Saturday August 19, 2017 @11:10AM (#15053805)
Patent applications are secret, not to mention that software patents can be very difficult to interpret and search for. RMS gave a fairly long talk about the various problems with software patents[1], and the difficulty in being able to find all software patents that may be related to a project is one of them.

[1]: https://www.youtube.com/watch?v=aiKRt3-FbM0

Re:Explaining React's license by jnbiche on Saturday August 19, 2017 @11:59AM (#15054062)
Patent applications are public for a minimal time period, 18 months at the very most. But obviously patents are public. React has been open source for over 2 years now. It's highly-likely, almost certain, that any React-related Facebook patent would now be public.
Re:Explaining React's license by cyphar on Saturday August 19, 2017 @12:21PM (#15054174)
The second part of my comment is probably more applicable (maybe I should've just excluded the point about private patent applications). Even if a React-related patent was public, it wouldn't be called "Patent on React Framework". It probably wouldn't even use the words JavaScript, HTML, or DOM. You would need to hire a patent lawyer for an extended period of time to have a reasonable amount of certainty that no such patent exists (and even then, it's just an educated guess).
Re:Explaining React's license by JoshMnem on Saturday August 19, 2017 @10:22AM (#15053507)
"Facebook, Inc. ("Facebook") hereby grants to each recipient of the Software ("you") a perpetual, worldwide, royalty-free, non-exclusive, irrevocable (subject to the termination provision below) license under any Necessary Claims, to make, have made, use, sell, offer to sell, import, and otherwise transfer the Software...The license granted hereunder will terminate, automatically and without notice..."

The PATENTS file affects more than just React. It's found in their other projects too.

Re:Explaining React's license by chii on Friday August 18, 2017 @11:51PM (#15051561)
> Facebook will revoke your React license.

you mean their patent grant? How can an open source license like apache, MIT or bsd be "revoked"? Do facebook have a public blacklist of people who aren't allowed to use react?

Re:Explaining React's license by cyphar on Saturday August 19, 2017 @10:06AM (#15053423)
Apache revokes your rights under the patent section of the license if you sue anyone for patents granted under said license:

> If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

Note that the "Grant of Copyright License" of Apache doesn't grant you the right to use the work, so revoking the patent license is effectively revoking the whole license (though you can still redistribute the work).

Re:Explaining React's license by gstein67 on Saturday August 19, 2017 @12:20AM (#15051648)
Correct. Once released under an OSS license, that cannot be revoked. They can change/restrict the license on future releases, but you can also choose an older release, which uses the more favorable OSS license.
Re:Explaining React's license by devdoomari on Friday August 18, 2017 @11:57PM (#15051572)
um... because it's they can? I can make a library with MIT license to everyone else but you.

MIT and BSD licenses merely provide short-cuts to understanding a project's licensing

Re:Explaining React's license by nopzor on Saturday August 19, 2017 @12:22AM (#15051655)
Not practically, because once you make a library with an mit license available to anyone, they can give to anyone you didn't "want" to give it to, per the mit license.
Re:Explaining React's license by gstein67 on Saturday August 19, 2017 @12:21AM (#15051652)
"everyone else but you" would no longer be an OSS license.
Re:Explaining React's license by spacetexas on Saturday August 19, 2017 @12:01AM (#15051591)
The BSD license doesn't allow future revocation in itself. They can make a new version with a different license but not for old versions.
Re:Explaining React's license by falcolas on Friday August 18, 2017 @11:03PM (#15051421)
Being sued, whether the patent is valid or not, is really expensive. Unless you're Google, or of similar size, you're going to lose just due to the costs.

Using React just opens you up to liability, with no real benefit (other than using React). Why would you use it?

Re:Explaining React's license by Lazare on Saturday August 19, 2017 @12:48AM (#15051738)
> Using React just opens you up to liability, with no real benefit (other than using React).

How?

Again, if they have a patent, they can sue you if you use one of the alternatives mentioned. If they don't have a patent, they can't sue you if you use React.

What's your thinking behind saying using React adds liability? Because to me, it looks like either it does nothing or it reduces liability.

Re:Explaining React's license by kavok on Saturday August 19, 2017 @01:57AM (#15051921)
The fact that we even have to have this discussion is a reason not to use it. I'd have to a hire a lawyer and disclose it to my investors to be cleared up. It would cost us money to validate because it does something different compared to any other similar project. My investors were very specific about software licenses - we aren't allowed to use GPLv4 or AGPL at all.
Re:Explaining React's license by Lazare on Saturday August 19, 2017 @03:47AM (#15052220)
> I'd have to a hire a lawyer and disclose it to my investors to be cleared up

That seems extremely weird. Normal startups do nothing of the kind; do you have extremely weird investors?

> My investors were very specific about software licenses - we aren't allowed to use GPLv4 or AGPL at all.

Ah, there we go. First off, there's no such thing as GPLv4. Second of all, you do realise that avoiding even the AGPL puts you in a vanishingly rare crowd in these parts, right? Eg, MongoDB is AGPL; of all the reasons I've seen given for avoiding Mongo, the license is a new one on me.

If you've decided to only use GPLv2 or vanilla MIT licenses software that's totally fine, but it is unusual.

Re:Explaining React's license by kavok on Sunday August 20, 2017 @05:26AM (#15057657)
Sorry - meant GPLv3. All of the software we use is GPLv1/2, BSD, MIT, Apache etc..
Re:Explaining React's license by chrisco255 on Saturday August 19, 2017 @03:32AM (#15052177)
If that's your concern, then you should comb through the source code of all your open source libraries and be certain that none of it violates any of Facebook's patents, including the MIT licensed stuff, which may very well.
Re:Explaining React's license by falcolas on Saturday August 19, 2017 @10:01AM (#15053391)
You have it backwards.

If you have a patent, and use React, you can't sue Facebook if they use your patent.

Re:Explaining React's license by Lazare on Saturday August 19, 2017 @10:53AM (#15053692)
> If you have a patent, and use React, you can't sue Facebook if they use your patent.

Citation needed. Let's say I have an awesome VR patent, and a React based website. I find out the Oculus violated my patent, what happens next?

Answer: I sue them. :) Nothing about the React license stops this; I will even still have a right to use React. What I won't have is a right to use any patents that Facebook might have on React. But Facebook, as far as is known, has no such patents.

Re:Explaining React's license by falcolas on Saturday August 19, 2017 @01:44PM (#15054593)
From reacts/PATENTS

> The license granted hereunder will terminate, automatically and without notice, if you [...] initiate [...] any Patent Assertion

The key part is that if you don't have a license to use the patented technology (or more pertinently - that license is explicitly revoked), you can't legally use that technology, no matter what the BSD license might say: the patent grants supersedes the BSD license.

So, to respond directly to your answer - you lose the right to use React; Facebook can sue you for your use of React, since they own the patents to that technology.

So if you want to operate under the belief that Facebook has no patents to assert, then yes, you will consider yourself to be safe. The fact is that many lawyers, including the Apache Foundations lawyers, disagree with this assertion.

Re:Explaining React's license by Lazare on Saturday August 19, 2017 @08:56PM (#15056414)
> The fact is that many lawyers, including the Apache Foundations lawyers, disagree with this assertion.

Incorrect. The ASF's objections had nothing to do with believing Facebook had any patents, and many ASF projects are looking to move to Preact, which is presumtively covered by the same patents React would be (if any).

Re:Explaining React's license by jaredklewis on Saturday August 19, 2017 @11:00AM (#15053742)
But you can still sue Facebook. Nowhere does the PATENTS file require grantees to waive their right to sue. But if you do sue, Facebook gains the right to counter-sue you with any react related patents.

I.e. the exact situation you would be in if you sued Facebook and there was no PATENTS file.

Re:Explaining React's license by falcolas on Saturday August 19, 2017 @01:49PM (#15054619)
Not quite - if there was no patents file, the BSD license would have a implied grant associated with it which would not be revoked by the lawsuit.

The "implied" license doesn't have a strong legal finding backing it up yet. Even so, most lawyers are comfortable with the idea that if a company tells other people to freely use their software, they can't then come back around and sue those same people.

Re:Explaining React's license by incompatible on Saturday August 19, 2017 @12:08AM (#15051615)
Presumably anybody in this situation will be able to cope with the expense, since they'd already be suing Facebook.
Re:Explaining React's license by mygo on Saturday August 19, 2017 @06:35PM (#15056020)
just because you may have enough resources to sue facebook for patent infringement doesn't mean you can afford to halt all new development and rewrite/rebuild what has become the reason that you have enough resources to sue facebook
Re:Explaining React's license by pdfernhout on Friday August 18, 2017 @11:54PM (#15051568)
It's speculation what patents Facebook has for React or what they cover. I've heard of claims of prior art for vdom-like concepts, so it is possible even if Facebook has React-related patents, only narrower interpretations of any claims might hold up (if that). React has a specific way of updating state which, for example, Mithril does not use. So, it is possible other vdoms may be far enough away from React to not be covered by any patents claims Facebook might try to make. Granted, that is no 100% guarantee of anything.

To me, the most important part of a vdom library like Mithril is using the HyperScript API with it, a library which predates React: Aug 20, 2012: https://github.com/hyperhype/hyperscript/tree/9237f590f3bc82... May 2013: https://github.com/facebook/react/blob/75897c2dcd1dd3a6ca462...

Personally, I feel templating approaches to making JavaScript-powered UIs like React's JSX or Angular's own templating approach or the templating systems in many other UI systems are obsolete. Modern webapps can use Mithril+Tachyons+JavaScript/TypeScript to write components in single files where all the code is just JavaScript/TypeScript. Such apps don't need to be partially written in either CSS and some non-standard variant of HTML that reimplements part of a programming language (badly). (Well, there may be a tiny bit of custom CSS needed on top of Tachyons, but very little.)

Here is an example of a coding playground I wrote that way with several examples in it which use that approach: http://rawgit.com/pdfernhout/Twirlip7/master/src/ui/twirlip7...

So, by writing UIs using HyperScript (plus a vdom library), you can potentially (with some work) replace a backend like Mithril with almost any other vdom or even a non-vdom solution. So, that is another way I mitigate this risk when I have a choice.

Granted, I know many web developers grew up on tweaking HTML and love HTML-looking templates and so they love JSX or whatever and are happy to ignore how hard it is to refactor such non-code stuff in the middle of their applikcations or validate it (granted, some IDEs are getting better at that). But I came to web development from desktop and embedded development working with systems where you (usually) generated UIs directly from code (e.g. using Swing, Tk, wxWidgets, and so on). I like the idea that standard tools can help me refactor all the code I work on and detect many inconsistencies.

Maybe a deeper issue for me is that with BSD+PATENTS Facebook is redefining what "open source" means in a way that is harmful to the open source community -- and also free software community as well like with Automattic using React on top of a GPLd WordPress. Which is why the Apache Foundation rejected the React license.

Re:Explaining React's license by pdfernhout on Saturday August 19, 2017 @12:02AM (#15051592)
Here is a prior art reference by erichocean: https://news.ycombinator.com/item?id=14784983 "To anyone concerned about React's virtual DOM and diff'ing stuff, and a potential Facebook patent thereof, in early 2012 I wrote and published (under a GLPv3 license) a virtual DOM implementation with efficient diff'ing when I forked SproutCore[0] to become Blossom.[1]"
Re:Explaining React's license by bryanlarsen on Friday August 18, 2017 @10:30PM (#15051299)
Most of those twenty probably infringe on Facebook patents. You can choose to use a library with an explicit grant, or a library with unclear patent status.
Re:Explaining React's license by pdfernhout on Friday August 18, 2017 @10:54PM (#15051391)
We don't know for sure what React-related patents Facebook really has or if they would claim any other libraries infringe them -- or whether those patents would stand up in court given prior art. There are vdom-like approaches that predate React.

That said, I would expect that vdom libraries like Mithril that work in a very different way than React would be less likely to be claimed by Facebook to infringe a React-related patent than, say, Preact which tries to duplicate the React API.

Of course, this is all speculation with a lot of unknowns. It all is another example of why software patents are very problematical ways to "promote the Progress of Science and useful Arts".

Re:Explaining React's license by joobus on Friday August 18, 2017 @10:20PM (#15051274)
React also has react-native. There is no comparable alternative for that.
Re:Explaining React's license by pdfernhout on Friday August 18, 2017 @11:05PM (#15051433)
You're right overall (at least for developers who prefer React). React Native is a compelling technology. That said, I can hope that over time, lightweight JavaScript libraries like Mithril along with better mobile browsers with better support for occasionally-connected web applications will continue to reduce the relative benefits of a native approach. Apache Cordova and NativeScript are other options as well.
Re:Explaining React's license by mygo on Saturday August 19, 2017 @11:03AM (#15053758)
Pretty sure VueJS has Weex (https://weex.incubator.apache.org)
Re:Explaining React's license by abritinthebay on Friday August 18, 2017 @09:30PM (#15051085)
That’s an impressive conclusion you’ve jumped to there, but there’s no evidence of it in the linked post or your comment.

That, to me, is also a significant warning sign.

Re:Explaining React's license by jnbiche on Friday August 18, 2017 @09:27PM (#15051066)
I agree. Even if they're not necessarily up to something nefarious, this all seems quite odd.
Re:Explaining React's license by votepaunchy on Friday August 18, 2017 @09:21PM (#15051037)
The fallback to BSD+Patents is simply BSD and should be evaluated by legal and corporate likewise.
Re:Explaining React's license by pdfernhout on Friday August 18, 2017 @09:24PM (#15051054)
No it is not, and that is what so many people misunderstand about this. Plain BSD has an implicit patent grant to the extent needed to run the software. An explicit patent license overrides that implicit grant. Of course, that interpretation is still subject to what the courts say in a lawsuit.

Of course, you are right that legal and corporate should review such a license. And for any company that deals in patents (or has customers who deal in patents), the likely answer is "no way".

Re:Explaining React's license by votepaunchy on Friday August 18, 2017 @09:35PM (#15051105)
That assumption of an 'implicit' grant is quite tenuous. You have taken it as invalidated by a PATENTS file, what if instead of a PATENTS file Facebook legal had blogged that they don't believe in an implicit grant? Does that nullify the grant of patents? What if stated by a project contributor?

That's the conundrum for any open source project and the exposed danger of the BSD license.

Re:Explaining React's license by pdfernhout on Friday August 18, 2017 @09:54PM (#15051177)
See my other comment here on implicit patent grants: https://news.ycombinator.com/item?id=15051166

I doubt some statement of opinion in some out-of-the-way place that did not accompany the software directly would hold up in court.

That said, your point on uncertainty is why many people prefer the Apache2 License or the GPL3 which have an explicit patent grant (but not a one-sided grant like in Facebook's PATENTS file).

Re:Explaining React's license by jnbiche on Friday August 18, 2017 @09:24PM (#15051051)
"Fallback"? Are you referring to Preact?
Re:Explaining React's license by votepaunchy on Friday August 18, 2017 @09:36PM (#15051108)
No. The PATENTS portion of BSD+Patents does not nullify the BSD License. So you are no worse off than had Facebook simply licensed the code under the BSD License.
Re:Explaining React's license by pdfernhout on Friday August 18, 2017 @09:52PM (#15051166)
This suggests an implicit grant is better than an explicit more limited grant: http://en.swpat.org/wiki/Implicit_patent_licence

From there:

In 2005, Dan Ravicher explained[2] that, in the USA, recipients of software under the GNU GPL version 2 receive an implicied patent grant, based on the following US case law.

* De Forest Radio, 273 U.S. 236 (1927) "No formal granting of a license is necessary in order to give it effect. Any language used by the owner of the patent, or any conduct on his part exhibited to another from which that other may properly infer that the owner consents to his use of the patent in making or using it, or selling it, upon which the other acts, constitutes a license."

* Hewlett - Packard Co. v . Repeat - O-Type Stencil Mfg. Corp. , Inc., 123 F. 3d 1445 (Fed. Cir. 1997). "Generally, when a seller sells a product without restriction, it in effect promises the purchaser that in exchange for the price paid, it will not interfere wit h the purchaser's full enjoyment of the product purchased. The buyer has an implied license under any patents of the seller that dominate the product or any uses of the product to which the parties might reasonably contemplate the product will be put."

* Bottom Line Mgmt., Inc. v. Pan Man, Inc., 228 F. 3d 1352 (Fed. Cir. 2000) "Unless the parties provide otherwise, the purchaser of a patented article has an implied license not only to use and sell it, but also to repair it to enable it to function properly. This implied license covers both the original purchaser of the article and all subsequent purchasers"

Re:Explaining React's license by gstein67 on Friday August 18, 2017 @09:54PM (#15051171)
That is not entirely true. As stated elsewhere, there is likely an implicit patent license provided by the BSD. The reasoning is basically, "we are [copyright] licensing this cod e to you to use, so [therefore] we must also be providing a corresponding patent license to use the code."

Legal scholars are mixed on that, and it hasn't been tested in court.

But that implicit license is certainly better than the explicit license in FB's code.

To sum up: you may be worse off with BSD+Patents.

Re:Explaining React's license by chrisco255 on Saturday August 19, 2017 @03:53AM (#15052243)
How is a theoretical (i.e. unproven in court), implicit license better than an explicit license you only lose in the event of patent litigation that you initiate?
Re:Explaining React's license by Steeeve on Saturday August 19, 2017 @02:14AM (#15051962)
There is a serious problem with the Facebook license. I've heard this and many other "it'll be ok because..." kind of statements in discussions about Facebook licensing. The problem is that there is no clear agreement as to what the ramifications are, and no real clarity offered by facebook after repeated efforts by the community to obtain it.

The only clarity they offer is that they have their license in place for litigation purposes.

For a personal project, everybody can make their own decisions. For a project involving a corporate entity or an institution, it is irresponsible to leverage any facebook licensed software without a legal review of the license. I'm not saying that it's bad. I'm not saying that it's good. I'm saying that however a laymen may interpret the license, there is a high chance of being wrong. Better to have the professionals review it and make a judgement call. I have seen many people state that their legal departments reviewed the license and have come back in some cases supporting the use of facebook software, in other cases denying the ability to use it. Even among professionals there seems to be disagreement.

There is a common understanding of many open source licenses. There is none surrounding facebook's.

I have asked ASF to have their lawyers make a public interpretation of the facebook BSD+Patents license for the betterment of the community, but the response was along the lines of "no lawyer would do that." Someone else might have better luck with the FSF. The FSF does support the idea of patent clauses, or at least at one point they did. I have seen nothing from them regarding the facebook license specifically though.

Re:Explaining React's license by jnbiche on Saturday August 19, 2017 @12:03PM (#15054084)
> For a project involving a corporate entity or an institution, it is irresponsible to leverage any facebook licensed software without a legal review of the license.

And this is a problem, because we all know how much of a huge pain in the ass it is to get any new license or legal issue relating to open source cleared with a big corporation's legal dept.

I think this is a pretty clear signal from Facebook that at least part of the company really doesn't care if people use Facebook open source or not. After all the work some in the company have done to promote Facebook open source, to great benefit to the company for recruiting and for synergy with other large company open source, that is a big surprise to me.

This kind of tone-deaf response from part of the company with the other half frustrated that it's causing so many problems reminds me more of how large old, moribund companies like IBM operate. It's a surprise that Facebook's already there, or at least starting to be.

Re:Explaining React's license by jnbiche on Friday August 18, 2017 @09:55PM (#15051179)
Wow, that is pretty disingenuous. Clearly, BSD+Patents places some extra conditions on the BSD license, you don't have to be a lawyer to understand that. I mean, several people have provided the legal reasons elsewhere on this thread, but even the name "BSD PLUS Patents" should be a tip-off.
Re:Explaining React's license by votepaunchy on Friday August 18, 2017 @11:05PM (#15051431)
No, its not at all disingenuous. Facebook could have written the "Additional Grant of Patent Rights" (note: additional) to also terminate the copyright grant under the BSD license. But they did not: https://github.com/facebook/react/blob/master/PATENTS
Re:Explaining React's license by nopzor on Saturday August 19, 2017 @12:24AM (#15051660)
Then it wouldn't be, by definition, a normal bsd license.