Hacker News new | comments | show | ask | jobs | submit login
On React and WordPress (ma.tt)
543 points by firasd on Sept 15, 2017 | hide | past | web | favorite | 201 comments

It's too bad that this particular point has become an issue with so many good open source projects. I still think that the risk, even for startups considering acquisition exits, is low (see this great post from a patent/IP attorney [1]), but the fact that it's enough to cause players like the ASF and WordPress to move away from it just means fewer players and less innovation in the ecosystem.

IANAL, but I wish the lawyers at Facebook would take one for the team and relax a bit on this (hey, more work for them, a plus!). If you're going to sue Facebook over patent infringement, you're probably going to spend a lot more on the suit itself than the eng costs rewriting a view layer.

[1] https://medium.com/@dwalsh.sdlr/react-facebook-and-the-revok...

I agree that the risk of running into legal trouble with Facebook is pretty low for many companies. However, that doesn't make it feel any less dirty. It would be nice if the lawyers at Facebook would take a chill pill on this one but that will never happen. It will be interesting to see where OSS projects from Facebook go moving forward given that the noise surrounding their patent clause seems to get louder and louder.

On a side note - I'll bet WordPress get's rewritten in Vue.js

> On a side note - I'll bet WordPress get's rewritten in Vue.js

Seems like a good bet. Developers discussing the matter...


Looked at the issue, Too many Vue fans are there, if I was a core contributor, I would be tempted to lock the discussion to contributors only.

> pretty low for many companies

C'mon. It's not just pretty low for many companies. It's extremely low for almost all companies. Automattic found it extremely low risk for themselves.

If it's not extremely low for almost all companies, then you expect Facebook to initiate patent claims. How soon do you expect to hear that Facebook played offense on them? How many companies do you expect to hear that Facebook threatened or filed against?

I would say the risk is extremely low on average, but for any particular startup the odds of having a patent dispute with Facebook are pretty much unknowable.

Facebook is a very large, rapidly evolving and expanding tech conglomerate. We don't know what all their activities will be in the not too distant future.

Facebook is also a public company. We don't know who will control the company in the future and how their strategy will change.

Why not Preact? It seems the react compatibility would be very helpful when they already have such a significant investment into react.

Personally, I have a hard time imagining that any Facebook patents you use with React wouldn't also apply to Preact.

Then again, I think this whole patents issue is mostly FUD. The number of companies who have to reasonably consider suing Facebook for patent infringement is small and they know who they are.

According to the author of Preact, that's unlikely because Preact's implementation is very different (it's not just a cleanroom implementation of the same thing). However I'd be more worried that Facebook might hold patents not limited to React itself.

Considering how arbitrary software patents often are, I would think it equally as likely that they hold patents covering aspects of Angular or Vue as React. I would also think it's equally as likely that Google holds patents covering aspects of React or GraphQL.

As far as I know, unlike GraphQL, nobody has found any patents filed by Facebook that would actually cover any part of React, so right now the patent grant seems to be more of a statement of intent. But expecting you can dodge patent lawsuits by using different technology is absurd. The only way to avoid software patent lawsuits is not to own, deploy or produce software. The only winning move is not to play.

> nobody has found any patents filed by Facebook that would actually cover any part of React,

Somebody on /r/ posted this[0].

[0]: https://www.google.com/patents/US20170221242

And I responded with this (curious for informed feedback):

I just read it. I can't believe this patent was granted. If I'm reading it correctly, it's a patent for an old trick used by every OS and video game ever made. Basically, don't redraw things that aren't in view, and only redraw the bits of things that are in view.

Anyway, I can't see how this is applicable to React, as it really isn't how the v-dom works at all. The v-dom isn't about failing to draw clipped items. The v-dom is about diffing two trees and only updating changed items.

Am I totally off base here?

Welcome to a larger world. The bulk of patents in the US seem ridiculous.

Nope. Software patents are basically bullshit and I'm glad I don't live in a country where they pose a direct threat to companies.

Thank you, you made me comprehend why all software patents are nonsense.

> nobody has found any patents filed by Facebook that would actually cover any part of React

Let's suppose that the set of Facebook's patents were known. The size of that set is large enough that if someone wanted to validate the claim that Facebook has no patents on React, it would be a massive undertaking—perhaps several man years, even. Not that this really makes a difference.

Facebook has thousands of patents with their name on them. They have thousands more where Facebook's name would not appear, because they control the patents through acquisitions and cross-licensing deals, which means the size of the set of Facebook's patents on any given technology is unknowable. We're basically running into the equivalent of the halting problem as applied to the world of IP—which has always been the crux case against software patents—it doesn't matter how diligent you are, because there's always the risk of being submarined.

So I don't know where this idea comes from that Facebook has no patents covering React. I keep seeing it repeated, and yet it seems to have been derived from nothing more than the same comments I saw early in the conversation about React probably not being covered—in which case, those comments are a terrible thing to base your understanding on, because I know those were just generic, off-the-cuff, probably underinformed speculation no different from 90% of the comments in any other thread about licensing.

My understanding is that you lose access to React if you sue Facebook over any patents at all, not just ones that may be relative to React.

You lose the patent grant, which applies to all Facebook open source projects (not just React), so they can use all patents they own as part of a defensive portfolio.

If initiating a patent war with Facebook is a foreseeable business outcome for you, then you probably shouldn't use React. I remain convinced that logic applies to only a tiny minority of companies.

What happens if you are not the one who initiated the patent war?

My reading of the license is that you lose Facebook patent grant even if your lawsuit was a response to Facebook's.

I am not a fan of (software) patents, but license restrictions are not limited to them either. So what is your recourse if Facebook decides to infringe yours?

Assuming this is true (IANAL), would you still feel as comfortable advising companies to use React?

I don't begrudge Facebook for their license for the same reasons that Matt stated, but I am highlighting this issue to my clients and would not recommend React's use because of it.

IANAL, but you do not lose the patent grant if your lawsuit is in response to Facebook's. https://github.com/facebook/react/blob/master/PATENTS#L21-L2...

I somehow missed that part. Thanks.

Most people do, which is half the reason so many people obsess about it.

You don't lose access to React. You lose access to any patents in React, but not the copyright. We don't even know of any React patents, so for all we know the entire document does nothing.

From Facebook's FAQ about this issue:

"Does termination of the additional patent grant in the Facebook BSD+Patents license cause the copyright license to also terminate?"



> We don't even know of any React patents

This might be the one[0].

[0]: https://www.google.com/patents/US20170221242

IANAL but:

"Additional Grant of Patent Rights Version 2 ... 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"

Seems clear to me that you lose the license to use React. The clause that terminates the license is contained in a grant of rights, but the license it refers to, is the license to which this grant of rights is an "addition".


"A "Patent Assertion" is any lawsuit or other action alleging direct, indirect, or contributory infringement or inducement to infringe any patent, including a cross-claim or counterclaim."

The "other action" is pretty broad and might as well include "use your patents in any way that goes against the interests of Facebook".

Reading legal documents with a benevolent attitude towards the claims, intentions and goals of the issuer is a pretty bad idea. If anyone decides they won't ever have or deal with patents and thus they are free of danger, that risk is up to them; but don't do it because you think the clauses only cover a narrow and unlikely set of situations.

I feel like there is practical worth in drawing a line in the sand, though. If all open source libraries had this then using open source would essentially mean you can't sue the big corporations (or having to go through some very lengthy and very expensive expensive engineering if you do). I think that outcome is bad for the industry as a whole and bad for open source in general and it's better to fight now than have to fight it when it's more established.

Why would suing Facebook be good for anybody? Even if you're a VC backed startup and Facebook steals your patent it still would be a bad idea to sue Facebook. During this whole thing I've been agog because I can't figure out what the problem is. Patent lawsuits are bad!

If you have nothing to hide from Facebook, you have nothing to fear from Facebook.

How do you know that?

The facebook patent clause states that you lose the licence rights to use react if you sue facebook against any patent infringement (for patents you own).

There is nothing in that saying that they have patents on react, and if they have patent covering, it very likely covers very much more than just react (because of the generic way patents are filed).

«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» see https://github.com/facebook/react/blob/master/PATENTS

No, this is wrong. You do not (and cannot, since it’s BSD) have your license to use React revoked. You do have your additional patent grant revoked - that is, if you sue Facebook for patent infringement, you will lose the right that they previously granted to use any and all patents covering React.

If we assume that any patents covering React also cover the alternatives such as Preact, the nothing is gained by avoiding React.

You should read more carefully, or listen to interpretations from lawyers. The license referred to in that document is the license to any Facebook patents granted within, which might not even exist.

The patent grant is separate from the copyright license.

That seems like a fine thing to do as a "send a message" type thing, but doesn't seem to help patent wise?

Am I misunderstanding the flow?

1) Facebook has patents on some stuff React does. 2) (Assumption) Anything similar enough to be near-source-compatible probably runs a big risk of exposure to those same patents. 3) React is licensed in a way that you can use it without opening yourself up to patent litigation (it grants license to them). 4) Facebook infringes on some more-critical-to-your-business thing. 5) You sue. 6) Facebook sues you for using React (or Preact, from (2)?).

If you never use React you never get that patent license anyway, right? So be careful how distinct your replacement is. You'd need to analyze the claims of the patents you're worried about to see if they could still apply.

This guy seems to think the same ( https://medium.com/@dwalsh.sdlr/react-facebook-and-the-revok... ) but also doesn't feel like Facebook would ever use it, though that's not really relevant to the arguments made around the principal here.

This is sort of correct, but what you need to understand is by simply putting something on the web you're probably "violating" dozens of patents held by multiple big scary corporations. The big difference here is that FB has specifically described the patent grant, while most open-source projects leave it ambiguous.

That's true. I wonder if they'd steer clear of Preact just because it is similar to React though? Also, Preact seems to be heavily reliant on the React ecosystem and it wouldn't be much of a rage quit if they picked up the skinnier version of React when that is what they should be doing anyways because... you know... bandwidth.

Could potentially do both interchangeably soon: https://twitter.com/_developit/status/898952382960119808

How does that protect anyone? Any patents covering React would probably cover Preact.

(IANAL) But you didn't use React so you never accepted that Patents file?

That's not how it works.

The patents file does not take away any rights or impose any obligations.

You already have a license to use the React software, because it comes with a BSD license.

The patents file is an additional grant of rights. Specifically, the right to immunity against Facebook patents related to React, unless you have yourself initiated a patent lawsuit against Facebook.

The Apache License and the Mozilla Public License also contain patent retaliation clauses. Not many people care about this, and not many people even read licenses or think about what they mean, except in the case of React, because it's become a FUD meme.

Here's from the Apache License, v2, clause 3:

"Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. 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."

So if you sue over a patent, the Apache patent grant terminates.

Here's from the Mozilla Public License, v2, clause 5.2:

"If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate."

This is even stronger: if you sue over a patent, the entire license (not just the patent grant) is terminated, so that you would then be violating copyright law by distributing software based on that MPL project.

Nobody ever mentions that patent retaliation clauses are fairly common in open source, and nobody definitely goes into any detail about what they mean and how they differ.

This issue is a textbook case of FUD (fear, uncertainty, doubt).

Oh I see. Thanks for the detailed explanation. Just have these questions: Without that patents file and the rights granted within, could Facebook theoretically sue you for infringing their patents by using their own open-source software? If not, what's the raison d'être for such a grant?

This is the question of whether free software licenses without patent granting clauses have an "implicit patent license", and from what I can tell it's not clear cut.


It seems likely that judges would agree that free software licenses come with some sort of implied patent license, but it's unclear how that interacts with modification and redistribution, etc.

> could Facebook theoretically sue you for infringing their patents by using their own open-source software

Yes, but only because the question "can X sue you for Y" is true for any X and Y. Licenses can't protect you from being sued; the only thing they can offer protection from is someone else winning a suit against you.

That would explain the short time frame quoted for the rewrite.

I think preact since they already used react and will only delay them a few weeks preact seems like the more sensible option

I'm unclear on whether Preact solves the issue.

On one hand - it's close that it probably infringes on the any patents that cover React

On the other - it's not infringing patents that scares people - it's the patent clause in the React licence. If you're not using React, you're not accepting this licence.

So Preact seems like it would safe enough - unless you believe that Facebook would one day go on the offensive with React-specific patents. (for the record - this seems unlikely to me)

If you assume that Preact infringes any patents that React does, it seems like you are strictly worse off using Preact than using React.

If Facebook goes on the offensive, you are protected if you use React but not if you use Preact.

If you sue Facebook for patent infringement and they use their patents defensively, you are in exactly the same situation using Preact as you are using React; you don't have a license for the patents in either case.

What react-specific patents do they have? Preact only borrows concepts like VDOM and the component lifecycle (which isn't new), it's not implemented the same. They share the same API but that's just a name against common events in a component lifecycle, and is mostly for interop and developer ease. I don't see how they could do anything to shut down Preact, though IANAL.

> I'll bet WordPress get's rewritten in Vue.js

I had the same thought. If that's the case, it will be a big boost for Vue.

Vue seems the obvious contender but I doubt completely replacing React with Vue this far into development would only cause a delay of a few weeks. Preact or Inferno seem far more likely, considering they won't require massive rewrites.

"A very large software company that use Inferno in production already had their legal team look into Inferno. It didn't infringe on any patents."

— Dominic Gannaway, creator of infernojs https://news.ycombinator.com/item?id=14783208


If these mysterious patents are about things like "virtual DOM", comparing trees of state or something derived from FRP, then using Vue, Preact, Angular 2, Cycle, Riot, Elm, reflex-dom is not more patent-safe. Moreover, they can sue you even if you are not suing them.

It's time to move back to jQuery and Prototype.js. Let's wait 20-30 years until these patents expire so everyone finally can use these nice state-management things.

Vue.js... Which is totally guaranteed to not be covered by any possible Facebook patents related to react, right?

That logic can also be used for Angular 2, Preact, inferno etc. So it is meaningless

Stop spreading FUD.

Yes, that same logic can be applied to Preact, inferno, and maybe even Angular2. But those who spread FUD are those who say you shouldn't use React because it has the patent grant attached.

> It's too bad that this particular point has become an issue with so many good open source projects.

It is assymetric to think that the solution to this problem is not within Facebook's side.

Matt is a copyleft zealot. Of course he'd drop React over this non-controversy. Anyone paying attention to how he views GPL would come to that conclusion.

Did you read the blog post?

His main concern is suddenly updating ~25% of all websites to "include" the React license.

Imagine Microsoft running a small WordPress site off in the distance somewhere that takes the Wordpress + React update. Tadaa, MS is now in theory bound by the FB patent clause.

He doesn't want to be responsible for the potential legal liability of encumbering 25% of the internet with a new license agreement.

Microsoft is already using React in public-facing stuff.

That's honestly not how I read this blog post at all. He came right out and said that they didn't see the patent clause being an issue, but they want Facebook to make that argument and not them.

People who ridicule the notion of FUD causing actual harm, pay attention: this is a perfect example of the chilling effects of FUD on software projects.

Automattic didn't drop React because it doesn't like the license. Automattic dropped React because the FUD surrounding React's license might rub off on them (and WordPress). It's their right to do so and it's in the best interest of WordPress to avoid being dragged into the patent FUD but it's important to understand that this isn't an act of protest against Facebook, it's FUD in full effect.

The term "FUD" is typically used to denote "unreasonable" or "unfounded" fear/uncertainty/doubt. I'm not sure that it applies to situations where doubt is NOT unreasonable.

> I'm not sure that it applies to situations where doubt is NOT unreasonable.

It doesn't, but it does apply to this situation because the fear etc. is unreasonable. Utterly. Either you have an explicit patent license or the entire PATENTS file becomes inoperative and you have exactly what you would have had with a plain BSD license. It's simple logic. Authority after authority, including Automattic's own counsel, has tried to explain in detail that patent law is not immune to logic. But still the FUD keeps coming, and it's harmful to open source because this is the exact same "why risk it" FUD that has been used against open source in general for years. It's the old Microsoft line returned from the dead, after Microsoft themselves have abandoned it to become pretty decent OSS citizens.

Except that the implicit licence couldn't be terminated if you sued Facebook: https://i.imgur.com/geUPyXl.png

> the implicit licence couldn't be terminated

"Couldn't?" I think you just said the opposite of what you meant, and ended up being correct. See https://news.ycombinator.com/item?id=15257004 where I lay out the actual logic involved.

That's what I meant, although I did have a question mark on that in the image, so I was being confusing.

This is what had me questioning whether an implicit licence could be revoked: https://news.ycombinator.com/item?id=15054849

Implicit patent license, the one assumed when your code is open sourced without an explicit patent agreement. The implicit license has no conditional termination clause where the explicit one does. The fear is not unreasonable.

There is no such thing as an implicit license, though. The absence of a license only indicates the absence of a license, i.e. no license.

There is no precedent for BSD/MIT implying any patent grant.

So in other words it's only the chance of an implicit patent grant, which may or may not actually hold up.

In fact, this entire argument is backwards. React is licensed under the BSD license and comes with an additional patent grant. If the BSD license would imply any patent grant, the additional patent grant would only count on top of that so the FB patent grant would actually be irrelevant. If that's not the case, there is evidently no implicit patent grant in the BSD license. You can't have it both ways.

Nobody knows if there is an implicit patent license or not for MIT / BSD Code. It's never been tested in court.

"never been tested in court" doesn't mean you can't have an opinion on whether it would hold up in court: https://news.ycombinator.com/item?id=15051717

(e.g. many parts of the GPL have never been tested in court.)

The parent appears to be using the term FUD with this in mind, to suggest that the doubt is indeed unreasonable.

A deeply arrogant and ignorant notion. If you think this was about FUD you really don't understand why people protest React as a core component inside WordPress. Most people are well aware that they are unlikely to get into any kind of legal dispute with Facebook or otherwise. Nor is it an issue that Facebook chooses to license React the way it wants. And the majority are against software patents.

> A deeply arrogant and ignorant notion.

This sentence is quite arrogant in itself.

> If you think this was about FUD you really don't understand why people protest React as a core component inside WordPress.

Then please explain what this is about? Numerous other posts in this thread (including mine) have explained that you are strictly better off with the PATENT grant. I have yet to see a post that explains why this is bad without FUD.

FUD implies that a decision was mostly based on people's irrationality or misinformation about what the patents clause does or doesn't do. It's a lazy assumption not made by someone who has followed the discussions in the WP community, so yes it was both ignorant and arrogant.

> have explained that you are strictly better off with the PATENT grant

This point is irrelevant even granting the assumption that it does. You're inspecting the wording of the patent grant and gauging whether it is theoretically effective in deterring patent litigation and thereby conferring some kind of benefit to users of the software is (correct?). Well over 99.9% sites that use WordPress never have to worry about relevant patent litigation to start with, it's completely and utterly beside the point. Somehow this has blossomed into an argument that basically says 'our OSS software needs to come included with patent clauses for better protection'. It's ridiculous.

Why the FB license signals a bad fit comes from asking different questions.

Why is it there in the first place?

Because FB is a megacorp and operates like one, it is there to protect the interests of a megacorp. Not a slight on FB, but also not something we should welcome to package with every copy of our pure OSS software.

What is a consequence of non-standard clauses? Businesses and teams feel compelled to take up legal counsel. They may find that it turns out to be totally fine, as even Automattic found when it adopted React for Calypso. But others don't and the mere fact that the adoption of software is necessitating legal counsel adds an unnecessary and negative cost to choosing WordPress as a platform.

What kind of precedent does it set?

That non-standard additions to OSS licenses are fine for companies to impose. Alternatively, FB is a special case.

Does it undermine WP approach to OSS licenses and promoting these?

In WP we take no exceptions to GPL compliance and compatibility, no exceptions for obvious reasons. No business enjoys special privileges or exceptions. That's by design, WP stated goal is to democratize the web. Unstated goals mean that everybody is on equal footing, a level playing ground. You want to use WordPress? You can do so unreservedly as long as you convey the same exact freedoms that come with a GPL compatible license. No exceptions. Whether the patents clause is benign or not - it is a big fat sign that says "FB enjoys special privileges here". It complicates the picture by offering up a contradicting component by way of a non-standard clause. It introduces friction on a point where there should be no friction at all. It also encourages an ecosystem where multiple clauses are introduced with companies adding their own wordings to protect their business, it doesn't scale. No good reasons to support something that doesn't scale.

Who put the clause there?

A company that is hostile the open web, hostile to democracy, hostile to users and with a history of undermining startups while enjoying a monopoly position. It is entirely in-congruent with a world that WP wants to be in. It causes many people that use WP for whatever reason to be suspicious and wary of affiliating with or critically depending on anything this company does. That's not FUD, it's a reasonable position based on a cold hard assessment of what FB is.

But doesn't company X choosing React and determining it to be benign mean other users are worrying for nothing?

Any particular business might be fine with React, it all depends on what their project is and what their goals are. Other companies will explicitly avoid React for good reasons, some have done so on the basis of the patents clause. WP adopting core is making a decision for all people using WordPress and all future projects that would or would normally have chosen WordPress. It's a monumental decision, inviting different considerations. A platform that has pinned its success on offering something that is both free and licensed in a way to convey freedoms while working toward leveling the playing field can't just adopt a special license for all of its users merely on the basis that the software attached to the license currently leads the pack.

Everybody agrees software patents are bad, so why not embrace the patent clause?

I would guess virtually a 100% of WP users are anti-software patent. But clauses that protect corporations are not the solution.

You gave an impressively long comment, but here are my two cents:

There’s no precedent to set here. There’s already a license for BSD+PATENT, and it’s called Apache license. Is Apache setting a bad precedent as well?

Additionally, it’s not like companies licensing open source work under customized license is uncommon — tons of software do that, and Facebook is by no means the first. For example, OpenJDK customized GPL by adding a classpath exemption.

Why then, do you need to give Facebook special treatment, and make this look like a dangerous slippery slope? Oh yeah, because Facebook is a evil megacorp that’s “hostile to the open web”. How is this, as part of a discussion about the license, “completely and utterly pointless”?

This whole argument could be summarized into we want GPL, react’s license is not GPL (“In WP we take no exceptions to GPL compliance”). That’s it. Instead, you have to point to supposedly evil motives behind putting the PATENT file there, and yes, I’ll say it, using not-so-true arguments to spread FUD and perform a character assassination. It’s ridiculous.

FWIW because Apache is a thing, I always assume BSD/MIT means only what the license says it means. This is actually why I prefer large projects adopt Apache because it holds a lot more water by being an actual license with real legal language rather than just something cobbled together by programmers (though as a programmer I have to admit I prefer the brevity of BSD/MIT).

I don't understand how anyone complaining about the FB patent grant could honestly bet the farm on any implicit grants in BSD/MIT style licenses. The only logical conclusion if you're that scared of patents is to avoid anything without an explicit patent grant, i.e. sticking to Apache, GPL and friends.

> There’s already a license for BSD+PATENT, and it’s called Apache license. Is Apache setting a bad precedent as well?

That comparison is incorrect because the termination clauses are different. The patent license under Apache only terminates if you sue about the specific patents covering the software. By contrast, the Facebook patent license terminates if you sure Facebook (or an affiliate -- who is that?) over any patent whatsoever (including patents not covering the software, such as unrelated patents you own and which Facebook is infringing willfully because they know you dependent on React in your products).

Note that we're not talking about the specific details about the licenses. We're talking about "companies setting a precedent".

> > This point is irrelevant even granting the assumption that it does. You're inspecting the wording of the patent grant and gauging whether it is theoretically effective in deterring patent litigation and thereby conferring some kind of benefit to users of the software is (correct?).

You are also talking about the irrelevant stuff here.

I have no doubt Apache is a better license. But what Facebook is doing is by no means something new.

I'm not sure why you want to twist this in to something else.

> Instead, you have to point to supposedly evil motives behind putting the PATENT file there

No where do I imply FB has evil motives for instituting the patent clause, nor do I hold FB to account for putting it there, I don't even dispute in any particular way that it deters patent litigation (at least not for FB), nor do I speculate FB will use the clause offensively. It's their choice and it's reasonable from their point of view. It's a big corporation doing things in a big corporation way.

> perform a character assassination

I think you've assassinated my above comment. What I've stated here about FB is not unreasonable or unfair. It's very odd that you would feel the need to defend a corporation as if you are describing a person (character assassination?). Tell me what is factually incorrect about the way I've described FB here? It matters what effect this corporation has on the wider ecosystem. Corporations of that nature behave in a way to maximize their own interests. This is not a commentary on its developers or even their legal team, it's just acknowledging FB for what it is.

> we want GPL, react’s license is not GPL (“In WP we take no exceptions to GPL compliance”)

It's rather ironic that you took issue to my earlier comment calling out an ignorant and arrogant notion, then make several of your own. The assumption that this is about being hard line about one variation of an OSS license obscures the fundamental objections here (why leave out the fact that I referred to "compatibility", which many licenses are). I have no special affinity for GPL, nor do most others in WP. It's a license that conveys certain freedoms and levels the playing field, this is all I care about.

The 'no exceptions' is a simple first principle in play in the WP ecosystem that acknowledges that all parties should be party to the same conditions in order the obtain the maximal benefit for all users. The WP community has been fairly aggressive in doing that and it has paid off in a big way. Over time there's been some push back from some individual companies wanting to license things in their own more restrictive way (thereby taking away freedoms from other users). Some businesses were resistant about that thinking it would undermine profits, but this has proven to be false. In fact very few companies operating in the WP space use complicated licenses even where it is perfectly kosher (a split license on CSS is fine but hardly used by theme developers for example). This has done great things for the ecosystem, almost all themes & plugins and apps have a simple to understand license that provides great freedoms - everybody benefits.

This is a nuance that might not be grasped when people are just looking at the patent clause in a vacuum, but the way we've pressured compliance has been possible on the basis that no company is a special snowflake, everybody gets to play by the same rules. Putting React in core dents our ability to reason on that basis (this not a unanimous opinion but lack of unanimity to the contrary undermines WP reputation on this issue irregardless).

But I indeed talked about your “fundamental rejection” here: as I explained in the first half of my comment, no special treatment is given for Facebook, at all.

The fact that they happen to be a “evil megacorp” should not change this at all.

It was FUD before Apache Foundation placed React's license as Category X.

Now, it is not.

Why? If I spread the rumor "maybe bananas contain rat poison" and Whole Foods would stop stocking bananas, how would that in any way legitimise fears of rat poison in bananas?


Comfort can hurt. Automattic is not comfortable with the Facebook license and you say it like it's a baseless FUD but even if they get a 1% chance of going to court against Facebook then they rather not take that risk of litigation anytime in the future. It's a business decision for the long term as rewriting doesn't cost that much for them.

Did we read the same article? Automattic is not worried about the license. Automattic is worried about how others perceive the license and how that will lead to WordPress being perceived. They see no risk in the license, they see risk in how they will be perceived for being associated with the license.

The license is ONLY a problem if you intend to initiate litigation against Facebook and can't swap out React (or a React-using product you rely on) with something else. Something tells me the number of companies that a) will ever be in a situation to sue Facebook over patents, b) rely on React or React-based products, c) don't already infringe upon any other Facebook patent without using React, AND d) would be severely harmed if sued over React patents, is exceedingly small.

Google, Amazon, Microsoft and Apple only fulfill conditions a and b (although React is non-vital to their businesses). Most startups only fulfill conditions b and d. In order to meet all four conditions, your company would have to be built entirely on React (or other FB open source technologies), be small enough not to be able to replace React, not infringe on any of the many other patents FB holds and yet somehow own patents FB infringes on and want to actively sue them.

Deciding against React because of the patent situation for most companies is the equivalent of worrying about someone stealing your second million before you have even made a single dollar.

No, that's not what the article says. It says the fears around the license are something they do not want to have to address within their ecosystem. Wordpress itself is comfortable with the license. There is no fear of going to court.

So let's see.

1. Possibility of Automattic attacking FB with patents = 0%. (No issues here with React)

2. Possibility of FB attacking Automattic with patents (No issues here; Patent grant doesn't get revoked for countersuing).

3. Wordpress end users getting attacked by FaceBook (Again no issues here, grant doesn't get revoked for countersuing).

4. Wordpress end users planning to use software patents against FB - The guys who actually have a problem.

So basically, the FUD helped individuals/trolls/companies who want to wield software patents as a weapon; to the detriment of the wider community which sees software patents as evil.

> So basically, the FUD helped individuals/trolls/companies who want to wield software patents as a weapon; to the detriment of the wider community

This is just beyond ridiculous to characterize the FB patents addition as some sort of social good needed in the battle against patent litigation, like they are doing everyone a favour. The patents addition in the license is there to protect FB's interests. Words that specifically benefit the interests of a megacorp do not belong in an open source license meant to be used by everyone and anyone. It sets a terrible precedent that can be used to justify a whole range of different companies adding their own clauses, each of which that can be plausibly argued for. And all of that requires other companies to conduct legal counsel, altering which companies would be adopting WordPress - imposing a kind of decision making process and barrier that few if any in WP would or should desire. And it's not even worth it considering there are equally attractive alternatives out there.

Sadly there's not. I like Vue, but it doesn't have the maturity or ecosystem of React. Plus React Native is a great addition to open source that Vue has yet to fully counter. There's also GraphQL, which is published by this license as well. Lots of great, revolutionary tech impacted by this license.

WordPress is looking for a way to create modern interfaces in a more streamlined way and are looking for a tool to make that easy. Any number of libraries and frameworks are perfectly viable or can be made viable, most of which are operating from the same set of ideas while delivering the same benefits.

The size of React's ecosystem, bus factor and the availability of React Native all are nice but overstated in their importance relative to alternatives and obscure the many other considerations the WP community weighs up.

Further more, React's ecosystem size conveys marginal benefits given that use of React in core would have been constrained (it's not like core devs would be tapping into many additional React-based tools for core work).

React Native has not proven itself to be as stellar and promotes lock-in. If we come to rely on additional FB-engineered architecture to such a degree WP bets its future on the decisions made by a corporate giant with goals very dissimilar to WP and with decisions that may change down the line. This idea that FB has somehow has the closest thing to the holy grail and so we must all jump aboard the FB train is a very foolish and shortsighted one in my view. WP was wise not to adopt it.

Wordpress itself depends on its ecosystem of plugins to make it so powerful. React is no different. There are 40,000 packages on NPM for React. That's something no other JS library comes close to save for JQuery. That does matter. I think Vue may very well get there some day. It's just not there yet. Maybe the WordPress support would be enough to take it mainstream.

Yes, well said and observed.

>> rewrite Gutenberg using a different library. It will likely delay Gutenberg at least a few weeks

I love this. How many times in my career have I heard "the rewrite will take us <some short period of time>". Good luck with that estimate.

Gutenberg's direct React usage is actually quite small - components implement a WordPress element, which is currently a wrapper for React, but can be transformed to use something else behind the scenes.


Also, Gutenberg is still quite a young library (about 8 months old), and just hit 1.0 in the last few weeks, so it's not too late to rewrite.

We've migrated reasonably large React projects to Preact using the amazing preact-compat : https://www.npmjs.com/package/preact-compat -- it was really as simple as wiring aliases in the webpack config!

Isn't it unclear if preact violates Facebook's patents?

The current understanding is that none of the patents in the portfolio currently covers React (and by extension, preact). But flipping the switch would satisfy the first-order requirement of not imposing the FB patent grant upon users of WP

I guess you weren't dependent on Synthetic events then.

This is plausible because there are quite a few libraries that have adopted React's model and some have even adopted React's API (Preact).

Of course, they could still get sued for patent infringement if Facebook has patents covering certain aspects of React (which, ironically, they wouldn't be under the React license).

Lawyers. They sure are spoiling the success for the React folks. You can bet Facebook has alot of them and you can bet their political influence is strong with the upper management.

Lawyer: "this thing, this point in the contract, it's VERY VERY important". The more lawyers you get in the room, the more beard pulling, wailing and hand wringing there would be about the dire, dire consequences of taking this stupid clause out. And of course the world would come to an end if no-one listened to lawyers.

After I fucked several business deals listening to lawyers say how contracts should be changed, I decided to make my own decisions about what matters and what doesn't in a contract.

The real problem for ReactJS is that someone at facebook is listening to the lawyers wring their hands about some possible future that will never happen. facebook should just grow up and tell its lawyers to shut up and go back to doing.... whetever it is they do.

> some possible future that will never happen

Facebook has been subject to numerous patent litigations and is very likely to be involved in future patent litigations. Maintaining a defensive patent portfolio is an important part of preparing for such litigations, so Facebook's lawyers certainly aren't idly protecting their patents.

But that's irrelevant here. FB is likely getting sued by patent holding companies who aren't reliant on or using React. So the patent clause doesn't really get FB anything against patent trolls.

It does get them leverage against legitimate patent holders. There have been reports of companies having to pay in some roundabout unspecified way royalties to FB for React as part of a large patent licensing deal.

I'm somewhat skeptical of these reports, but if there is direct revenue to FB from this clause it would be the Occam's Razor explanation for their intransigence.

The patent clause isn't designed to give Facebook leverage. It's designed to grant patents unless you sue them. Even though patent trolls don't use React, Facebook wants to ensure that they don't grant patent licenses to patent trolls.

> There have been reports of companies having to pay in some roundabout unspecified way royalties to FB for React as part of a large patent licensing deal.

If you can provide any direct evidence of that, I'd be fascinated. I highly suspect it's FUD.

But Facebook can infringe on your patents if they know you have a heavy dependency on React. They won't sue, just infringe. And you won't be able to sue them with zero losses, you will lose at minimum React.

No, you'll only lose the patent license for React, leaving you with exactly the same copyright license you would have had with plain BSD. There is no scenario in which the PATENTS file (not clause) enables Facebook to infringe on others' patents any more than they would have been able to do with plain BSD. If you think this makes using React risky, then you'd also have to believe that using thousands of other BSD-licensed projects has been risky for years. That is, if you want to be logically or legally consistent.

This "adds risk" argument is very familiar from other FUD campaigns (e.g. Microsoft's) against open source in general. It's pretty weird to see people who claim to believe in open source pushing arguments that work against most open source.

Seems that the real issue is that Facebook asserts/implies they have patents relevant to React, and that they are willing to enforce them in court under certain conditions. This creates an uncertain situation. The patent grant helps somewhat, but limits your freedom of action should Facebook e.g. steal your technology. Look at the four possible scenarios:

    Facebook | Your Company | Outcome
    Grants patents conditionally | Does not sue Facebook | Things hum along nicely
    Grants patents conditionally | Sues Facebook | You're liable for patent infringement
    Doesn't grant patents | Does not sue Facebook | You're liable for patent infringement
    Doesn't grant patents | Sues Facebook | You're liable for patent infringement
The patent grant is fine if you think you'll never, ever want to sue Facebook. But should a dispute arise, you'll quickly find the technological rug pulled out from under you. You've now built your entire business on Facebook's asserted IP and have no recourse but to license it or try (futilely) to defend your infringement in court.

That sounds like a positive, if the end goal is the elimination the abomination of software patents.

But I only want to eliminate patents that I don't own....

Yep, exactly what the fb lawyers are saying.

These are the sorts of important sounding things that the lawyers are saying and frightening everyone into thinking just how incredibly important this issue is, how much is at stake.

Well then, do you think they're wrong about it? If so why? How would you address the point about past litigation (e.g. by Yahoo)?

Facebook uses React for their own projects. To them, if more people use it that's probably great and all, but I don't think they are really hurt by people choosing not to use it. They clearly would rather keep their license as it is than change it to win over new React users.

It's getting hard to recommend React when the company controlling it clearly has threatening licensing ideas.

Better use something else open source or just pay a license fee to someone for a clearly licensed commercial framework.

I don't understand this: how are you not strictly better off with the patent grant? This whole fiasco seems to be nothing but FUD. See https://news.ycombinator.com/item?id=14780979


    License with no patent grant: Facebook can sue you for infringing patents, 
    even if you are using a clone!
    License with patent grant: Facebook cannot sue you for infringing patents, 
    unless you do it first.

There are two camps - those who believe that an open source license implicitly provides patent grants and those who believe an open source license does not allow patent use.

Until such a thing is tested in court (in each country) both ideas have merit.

The patent grant is also worded a bit unclearly - implying that if you sue facebook you will lose the copyright, not only the patent right, to use React.

Even though the lawyers clarified it in FAQ and other places, the wording is still what it is.

> The patent grant is also worded a bit unclearly

It's not unclear at all. Here's the file. Note that it's separate from the LICENSE file that grants a copyright license.


> The license granted hereunder will terminate, automatically and without notice, ...

There is no reasonable logical or legal context in which "hereunder" refers to anything except the PATENTS file itself. What lawyers have had to clarify is what should never have been an issue because it was already clear. They're not the ones muddying the waters. Opponents are. We should be asking who is so determined to put this meme out there, and why.

The PATENTS file refers to all patents granted to you by Facebook in any project, not just in React (or any of the other files containing the PATENTS file). I think it's scoped a lot more broadly than you seem to imply.

It refers to all patents as potential triggers, not as potential consequences, and that still doesn't allow a patent license to nullify a separate copyright license. I think it's scoped a lot more narrowly than you are trying to imply. I've provided detailed reasoning for my position. Feel free to reciprocate.

Suing Facebook for an unrelated patent will make any software you use that may only work with ANY Facebook patented works useless. It doesn't discriminate to this project. They retain first strike however, so all the people saying this is great because patent litigation is bad, Facebook still has first-strike here.

Also, the copyright license isn't useful unless you have complete knowledge of Facebook's patent portfolio and are certain that without a patent grant (implicit/explicit) you can still use the software at all. This goes for Facebook as well as immutable, graphql etc.

> ... 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 ...

This amounts to a sprawling amount of individuals/orgs that can make you rewrite everything.

You're still assuming, contrary to all fact and common sense, that either the copyright license or the implicit patent license are affected in any way by what happens to the explicit patent license. I've explained elsewhere in this thread why that's not true. As long as you continue to base your argument on that assumption, without even acknowledging (let alone addressing) explanations to the contrary, that argument is a waste of everyone's time.

> You're still assuming, contrary to all fact and common sense, that either the copyright license or the implicit patent license are affected in any way by what happens to the explicit patent license.

Why would it be unreasonable to assume that the explicit clause in a contract exists to override the implicit clause? Isn't that kind of the point of explicitly enumerating cases? Where, elsewhere in this thread, do you explain this?

And your aggressive tone is unexpected.

Edit: Also, I didn't say the copyright grant was affected, but if you don't have a grant to use a patent that the software flexes.... ? Being concerned vs. assuming flowers seems safer in untested legal waters.

> Isn't that kind of the point of explicitly enumerating cases?

No. Explicit enumeration is also done to address things that are missing or ambiguous. If the intent is to replace or negate something that would otherwise be true, that's usually explicit too. "Superseding all other agreements, express or implied..." or some such.

> Where, elsewhere in this thread, do you explain this?

Mostly in https://news.ycombinator.com/item?id=15257004 and its descendants. Other examples are not hard to find from my profile (two clicks).

> And your aggressive tone is unexpected.

When I'm faced with passive-aggressive behavior, such as persistently making untrue claims even after they've been challenged or even flat-out refuted, I get a bit active-aggressive.

> Being concerned vs. assuming flowers seems safer in untested legal waters.

Then you should apply that concern to all BSD-licensed software. Ditto for MIT license, and others that come with no explicit patent permission at all. All they have is the implicit permission necessary to support the copyright license (which is otherwise separate). The case for that is strong, but it's completely independent of the explicit license. Why not have both? Why take the risk of relying on one alone?

> those who believe that an open source license implicitly provides patent grants and those who believe an open source license does not allow patent use

There's a third camp: people who think this is a false dichotomy that necessarily requires those endorsing it to have an oversimplified understanding of IP law.

The patent grant isn't the problem it's the termination on any action against Facebook. Hence if Facebook infringes on patents you own you can't take action against them if you are using React.

It's not "termination on any action against Facebook", the termination is only for:

1. filing a patent infringement against Facebook (for anything, related or unrelated to React)

2. filing a patent infringement counterclaim against Facebook for patents related to React (after Facebook have first filed a patent infringement claim against you for patents on anything)

3. filing a patent infringement against anyone for patents related to React


> if Facebook infringes on patents you own you can't take action against them if you are using React.

You can take action against them, you just don't have a patent grant once you do.

> You can take action against them, you just don't have a patent grant once you do.

Which opens you up to being countered-sued right? It seems that this leaves Facebook to freely infringe on any patents of React users without consequence.

Only if they have a patent on [edit: something in] React, or on anything else that you use (regardless of it's from Facebook)


Also, patent lawsuits are costly. If you're going to start one against Facebook the cost of switching away from React first would be negligible.

Not without consequence. You as a company will have to determine which is more of a problem: Facebook using your patents, or you using Facebook's patents.

As I replied above, this takes you to the same place without a patent grant.

>you can't take action against them if you are using React.

Umm, no. You can still sue them, but the patent grant is nullified, which takes you back to the place where no such patent grant exists.

Hence, you're strictly better off with the grant.

I think it’s quite fair to say “don’t sue us if you want to use our stuff for free”.

The Drupal community struggled a bit with the decision as well (see https://www.drupal.org/node/2645250). It seems there are a number of open source communities and enterprise development shops who are just not comfortable with the patent clause. React had a lot of momentum, but it seems alternatives like Vue.js are going to be the long-term winners in terms of being 'the next jQuery' in terms of longevity as a front end standard.

The next jquery will be probably Polymer (since it is a library). VueJS/Angular are bigger frameworks.

I very much agree with this. Web components are usable in and out of any framework and once browser support will be there I think they'll be huge. Until then, Polymer helps fill in the missing pieces.

Reminds me of jQuery before browser vendors integrated things like selector querying.

I don't think there will ever be another jQuery. Just like there won't be another Michael Jackson. The world is balkanizing, different people use different tools and listen to different music in a way that wasn't typical 10 years ago.

I'm willing to bet $100 they will switch to Vue. It's similar to react (which they want), arguably easier to learn, and the WordPress community comes from a php background, which has already embraced Vue. This is a big plus for plugin developers.

Vue would be great but preact seems to be a viable option too. Even riot could ..

As other commenters have mentioned - if your project violates React patents, and you switch to Preact, it almost certainly continues to violate those same patents.

Vue is also based on React, it uses the same exact principles internally, although in a less concise and more complex way as it leans heavily in Angulars direction on the outside. All templates are either transpiled or evaluated into createElement-like functions, from then on it has a v-dom and works/diffs/renders/composes like React.

This could "violate a react patent" according to you:

  const Test = () => createElement("div", null, "hello word")
No one has ever seen nor referenced a patent for this, but if we're really at that point then i'm afraid everything would violate such a patent.

Fear. Uncertainty. Doubt.

Many trumpet the problems with patent infringement cases, particularly in the odd calculations of "damages one would have avoided if the infringement potential were known". Few trumpet the real cases of fear, uncertainty, or doubt killing business opportunities. Acquisitions are called off when the IP review finds GPL in a product, or your proprietary networking technology losing its patent protection to Amazon (because someone signed up for AWS for a month, years ago).

I believe WordPress made the correct leap not to embrace a "license taint" that would smell bad to cautious users.

AWS dropped that patent clause a couple of months ago, apparently (https://www.geekwire.com/2017/amazon-web-services-drops-cont...)

I'm glad to see this post. People don't like the Facebook license for React and are willing to invest time and money to steer clear of it.

I still don't understand why Facebook changed the RocksDB license so quickly but then took a hard stance on the React license.

Because React is far more weaponizable and less niche than RocksDB will ever be.

Note that WordPress is ditching React not because they believe there's any problem with React's license and patent grant, but because they think their users will be confused and angry.

In other words, the baseless and meritless outcry about a perfectly OK patent grant caused this, not the patent grant itself.

The subject became taboo, like female nipples in America, and WordPress doesn't want anything to do with the nipples of the open source community.

>> users will be confused and angry

What an ironic statement, considering that that combination can be lethal to a company.

Besides, have you ever heard anyone say why they prefer to use Facebook even when they are aware that it is tracking their every move? Usually the answer is "convenience". By the same token, not getting confused or angry is also a great convenience to the user. Very few Wordpress users actually care about the baselessness or meritlessness of using one JavaScript library over another. They just want Wordpress to work.

I fully agree! I think WordPress made the right move, and I would have done the same in their position. But it's sad that we now have baseless taboos in dev land.

> baseless and meritless

Are you expert in patent law for you to come up with that conclusion though? I you're not a lawyer then your assumption that it's a perfectly OK patent grant is baseless and meritless as well.

> I you're not a lawyer then your assumption that it's a perfectly OK patent grant is baseless and meritless as well.

...as would any non-lawyer's claim otherwise. Do you call them out the same way, or are you selective about where you apply that rule?

In actual fact, it only takes a tiny bit of familiarity with patent law to see that a revocable grant can't be worse than no grant at all. Many engineers have such familiarity. If you haven't triggered the revocation clause in the PATENTS file, you're strictly better off than with plain BSD, because you have all the rights you would have had before while Facebook will have given up the right to sue you first (for patent issues related to your use of React). If you have triggered that revocation clause, you're exactly where plain BSD would have put you to begin with. So you're either better off or exactly equal. Never worse. Anyone who claims otherwise either hasn't actually read the PATENTS file, doesn't have even minimal familiarity with how the law works, or is spreading FUD.

"a revocable grant can't be worse than no grant at all"

an implied license that can't be terminated is better than a explicit license that can: https://news.ycombinator.com/item?id=15051717

I think DannyBee is simply wrong that the explicit grant extinguishes the implicit one, and I've seen plenty of real lawyers agree. The copyright license and the patent license (LICENSE and PATENTS respectively) are separate contracts and even address separate areas of law. The legal principle involved here is that the permissions granted under LICENSE may not be unilaterally withdrawn except for reasons specified in that document itself. That's why some contracts have specific clauses saying that they may be modified by subsequent contracts, because otherwise they may not. LICENSE lacks such a clause. Therefore, in the event of the copyright holder bringing any kind of lawsuit (not just patent) that interferes with others' exercise of permissions given under LICENSE, they would become liable (for breach of contract). It's really not so much an implicit patent license as a guarantee that enforcing patents would lead to mutually assured destruction.

The key point here is: all of that still applies regardless of what other contracts exist between the two parties - including the explicit patent grant. The PATENTS file can not modify or nullify anything except itself, either by its existence or by its subsequent revocation. No court would say that it does, because the implications for contract law in general go far beyond patent and copyright.

Disclaimer: IANAL. I'm just a guy who understands logic, and who has been involved with software patents from an engineer's perspective.

Thanks for explaining your reasoning.

I think where you and DannyBee differ is with:

"permissions granted under LICENSE may not be unilaterally withdrawn except for reasons specified in that document itself"

where DannyBee is not taking the patent licence to be a permission that can be implicitly granted under LICENCE when there is a separate explicit PATENTS grant.

He states in the followup comment "No license can be implied if there is an explicit license." which I'm guessing you would say only applies if the explicit licence is within or allowed for by LICENCE.

Do you think that is that a fair representation of your points of view?

I think that's fair; thank you. I still think it's untrue that an explicit license extinguishes an implicit one. Consider the two-explicit case. Let's say you and I have two separate contracts, both of which grant me the right to cross your land. If one of those contracts completes or is terminated, does that mean I can't cross your land any more? That would be even crazier than lawyers usually are. I'd still have that right under the other separate contract.

Now, why would it be any different if one of those grants is implicit? Again, that would be even crazier, etc. Allowing contracts to interfere with each other like that (in this case the copyright license being affected by a patent issue) would make contract law even more of a nightmare than it is already. I strongly believe courts would reject that not only for the sake of logic or justice but out of sheer self-preservation.

Of course, we're all speculating until this exact issue is tested in court. I just think the people assuming the same as DannyBee are leaping toward the least sane and least likely conclusion, and asking others to do the same.

> The PATENTS file can not modify or nullify anything except itself, either by its existence or by its subsequent revocation. No court would say that it does, because the implications for contract law in general go far beyond patent and copyright.

The law is more about precedent than logic. Unless you can point to specific opinions from lawyers or judges on this, this sounds more like your opinion than any kind of proof.

At issue is that Facebook putting both the License file and the PATENTS file in the same repository seems to many people like an overt act that extinguishes any implicit patent grant in the same way the "Clear BSD" license does (although a difference there is a modified license file). It feels to me like like Facebook is trying to have it both ways -- seeming to be a good citizen in the free and open source community but at the same time creating a one-sided deal with extra conditions. If they wanted to be unambiguous, they could have used the Clear BSD license and then added the PATENTS file.

> I've seen plenty of real lawyers agree.


For reference, here is an opinion from an actual US Patent lawyer citing actual US legal judgement about implied patent licenses implying how an implicit grant in this case would be broader in scope than the explicit Facebook PATENTS license: http://en.swpat.org/wiki/Implicit_patent_licence


In 2005, Dan Ravicher explained 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 with 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."


Still this does not address the issue of an explicit grant extinguishing an implicit grant. It seems like that may still need to be tested in court. The practical issue then is, why bet your company on an unknown like that when there are perfectly acceptable alternative UI libraries (even better ones technically like Mithril, Inferno, and so on)?

I already addressed that swpat article a while ago: https://news.ycombinator.com/item?id=15218068

It provides weak support for your position, because most of the cases it cites are for things that clearly follow different rules and precedents than patents do. Pretty sloppy for an "actual US Patent lawyer" if you ask me. More importantly, "broader in scope" does not imply "exclusive of". The implicit license might indeed be broader and there's still no whiff of either extinguishing the other. As I've said repeatedly, when contracts (of which licenses are a subset) are written to supersede something else, they say so. There's no implicit nullification.

Wow, you formulated that better than I ever could. Thanks :-)

> WordPress doesn't want anything to do with the nipples of the open source community.

Thanks for that image.

Interestingly, Facebook did remove its PATENTS clause on another project they have recently - zstd - https://github.com/facebook/zstd/pull/801

They dual licensed under BSD and GPLv2: https://github.com/facebook/zstd/issues/335#issuecomment-323...

I expect they did a thorough analysis to work out if any of it was either already patented, or patentable. That doesn't mean they don't have patents though.

Oh that's awesome. I had been wondering about zstd!

I understand why Matt came to this decision and ultimately agree with it. As someone who builds products based on WordPres for other companies, I can understand the concern. Imagine I build a site that uses WordPress 4.9 (or whatever release Gutenberg is will come out in) for a startup. Facebook legitimately copies a startup infringing on their patents (think about the Snapchat/Instagram feature battle), and the startup sues Facebook. They then have their react license revoked and can no longer use WordPress. The same thing applies with React native.

On the other hand, I do understand Facebooks reasoning. I'll definitely be watching this over time and hope that a legitimate solution will arise.

The last time the PATENTS file was changed was 3 years ago. It has passed the smell test for Microsoft (and dozens of other large companies) with literal buildings full of attorneys who have more experience with licenses, patents and everything between then most.

This issue seems to be a bunch of nothing. What am I missing here?

Microsoft probably has a separate IP licensing agreement with Facebook. After all MSFT invested in Facebook in the early days, 10 years ago.


You aren't missing anything. What you've pointed out is also the reason I find this all so fishy- it has been the same for years, the risk has been the same for years. No one who was really worried about the patent risk would have accepted a "wait and see" approach. Because... that would be risky to do.

Not a day goes by ... same came up in the project we're working on as our partners got wind of it and are now complaining. It seriously worries me as it's getting harder and harder to justify React although the technology is sound (perhaps close to perfect). The worst part is that this is already threatening v-dom in general (like Preact, Inferno, Vue, etc.) as people are falsely claiming FB holds a claim on it.

The React team should re-think their approach. Is it really worth it to dedicate time and spirit on technology that is dear to us all, that is meant to enable amazing applications, but Facebooks lawyers make it hard for us to use, doesn't even matter if our lawyers understand the patent clause correctly or not because they're the ones having the last say, and as this is snowballing out of control they tend to say no.

Dan, Sebastian, Pete, Jason, Brian, Dominic and so on, wish they'd get together, start a competitor called Fiber, or put FB under severe pressure.

> As our general counsel wrote, we made the decision that we'd never run into the patent issue. That is still true today as it was then, and overall, we’ve been really happy with React.


> …I'm here to say that the Gutenberg team is going to take a step back and rewrite Gutenberg using a different library.

Am I the only one missing the "why"?

> …passing down to our users.

Is that the "why"? If so, what does he mean by it? Meaning: What is the "danger" that Matt says Automattic will never run into, but that WordPress users will run into?

>Is that the "why"? If so, what does he mean by it? Meaning: What is the "danger" that Matt says Automattic will never run into, but that WordPress users will run into?

He answered that already. He doesn't believe there's much (if any) danger, but:

"we have a lot of problems to tackle, and convincing the world that Facebook’s patent clause is fine isn’t ours to take on. It’s their fight".

So what they don't want to "pass down to [their] users" is not something they believe is an actual danger, but the anxiety about the licensing that users would face and the arguments etc that will erupt over this.

In other words they're optimizing for bullshit avoidance - absolutely a valid decision. Or another way to put it would be that they don't want to be in the business of having to sell Facebook's legal turds. ("Sell" as in "persuade people to accept.") There are other client-side frameworks that don't carry that kind of baggage.

Frankly they get bonus points in my book just for the mere act of divesting from something Facebook owns, so that would've been a good enough reason for me. But hey, they also get to retain their right to sue Facebook if needed.

It's saddling WordPress's massive user base with Facebook's patent clause – something the userbase likely won't realise they're agreeing to when they use WordPress.

I think when Matt says "long-term consistency with core" he also means consistency with the philosophical aspects of free software. Note that the piece starts with Facebook's reaction to the Apache Foundation's stance against using React.

If I understand correctly, the Calypso project was related to the administrative dashboard in their hosted WP offering (and other widgets that could be used in self-hosted WP.) Going forward it looks like Gutenberg is also about the code in the pages that visitors see on published sites.

Gutenberg will be distributed with WordPress itself as the new post editor. This means the license(s) used with it will then apply to users of WordPress, who may or may not want to agree with React's license despite Automattic (WordPress.com) being comfortable with it via Calypso (WP.com's front end).

A lot of people here are projecting their dislike of software patents onto this whole issue which is a big mistake.

IANAL but I don't see anywhere in the PATENTS file where it restricts this issue to software patents. In fact it explicitly talks about any software, technology, product or service.

That means you essentially can't sue them over any patent ever. Not just software.

With Facebooks history of "liberal borrowing" when it comes to product, it would be prudent to assume this same strategy might be applied to non-software products and services.

I completely understand why WordPress is doing this. It makes a ton of sense. WordPress powers some ridiculous percentage of the web. They are doing The Right Thing (tm) by not stopping every single one of those users from bringing a patent complaint against Facebook. Software or otherwise.

I'm here to say that the Gutenberg team is going to take a step back and rewrite Gutenberg using a different library. It will likely delay Gutenberg at least a few weeks, and may push the release into next year.

Just a few weeks? Is it that trivial to swap out a library?

The only way I could see them doing it in a few weeks is swapping it out with something with a very similar api like inferno or preact.

Apparently the Gutenberg Element concept (https://github.com/WordPress/gutenberg/tree/master/element) wraps React to minimize contact with React itself. So converting to Preact might not take over long. Note that I haven't dug very far into the Gutenberg codebase so at the moment I am just supposing.

Yah I LOL'd out that one. A year from now we'll be reading the postmortem of the problems the Gutenberg team has faced swapping out React for another library and how things still aren't quite what they used to be.

Depends on how it's written. I'd suspect they've done a pretty good job on eeping the engine as decoupled from their code as possible. It'd probably be just a matter of rewriting a translation layer.

A candidate I'd consider: Preact. While it doesn't have quite the same support as regular React does, it is touted as having a mostly-compatible API and its license is pure MIT.

vue.js will make me want to use Wordpress again

This is not an appropriate vector to 'fix' patent law. If you want to fix software patents, it should happen across the board and not by companies selectively weaponizing their projects and polluting the whole ecosystem in the veil of open source contributions.

Why does the Facebook license try to push an agenda with a perpendicular concern to the open sourcing of Reactjs? Was the purpose of opensourcing Reactjs a way to not get sued? They lost credibility in my eyes on their intention.

There was an article about that recently - it wasn't proactively pushing an agenda so much as, if FB wanted to release any software as OS, without the grant, the lawyers would have had to review every commit to avoid violating someone else's patent.

Do you have a link? That would be interesting to read.

Thank you very much. That's very informative.

What exactly is the agenda they are alleged to be pushing?

I hope they choose Elm.

Elm would be cool, but would probably isolate WordPress from the massive JS community. Community matters.

That would be a lot of work and take more than a small amount of time compared to switching from React to Preact or some other JS library.

That's why I stopped selling tech.

I say I do mobile apps and not React-Native apps.

Maybe I do then NativeScript next year or PWAs with Angular.

I respect their stance, but if I were a contributor I'd be bummed. This issue still strikes me as much ado about nothing.

So Calypso, which has been in the works for 2+ years, is going to be completely rewritten?

Completely rewritten is a bit of an overstatement. It depends on what road they choose. They could go with a react-API compatible library and the work should be minor. They could go to angular/vue/... which is more work, but they all work component based, so you can keep the entire structure.

I don't understand why can't you just replace all React with Preact or Inferno-compat. That would take 2 minutes, wouldn't it?

If Facebook has patents covering React, these probably also cover Preact, so you'd actually be in a worse position: Potentially violating patents and not having any sort of grand.

This is not the issue. The patent clause is not about React, it is about the whole Facebook organization.

How? Isn't Preact totally different? How can Facebook patent other people's code like that?

You can patent the idea or algorithm that the code implements, so long as the code isn't old enough to be considered "prior art".

So all other frameworks that use the concept of virtual dom are also owned by React?

They can only be owned by their copyright holders, which is separate from patents.

If anyone had a patent on virtual dom / diffing, then they could sue anyone else that used an implementation that was implemented in the same way as the implementation in the patent. That doesn't then mean that they "own" those implementations, only that they can use the courts to stop others using them or pay to licence their patent.

Did nobody at Automattic read the licence of react before started using it?

If this is the case, learn from it, please.

Too bad I wasn't able to setup Hot Module Reloading yet, otherwise I'd switched to Preact. Not because I am concerned of the license itself, but because we are heading towards an acquisition exit and I don't want that to be a factor - who knows, where we're at in like five years?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact