Personally, I believe MIT is correct. I had moved my company away from React when they had the licensing problems. To me, it feels like they are coming back to the community now.
I think they are making these moves because they see that they are going to be in a weaker position in the future and need to open their grip on these projects to make sure that other people will use it. Its probably too late though and people are moving off of it to the next javascript framework.
But is there a viable alternative with the same level of features and ecosystem momentum?
GraphQL and React Native, in particular, seem well positioned to dominate their respective niches. That gives React a big advantage, which might counteract the licensing issues, no?
- React -> Vue, Mithril, etc.
- React Native -> Weex, NativeScript
- Reason -> Elm, Purescript, Scala.js, Typescript
- etc.
FB: OK, we'll remove the part all the FUD is about.
This guy: Here's some entirely baseless FUD to replace the FUD you removed.
Facebook changed that licensing policy for React to a more common license. You could now sue Facebook over some IP issue without losing the right to use React. Facebook could still sue you, of course, but so could any other company. Using React no longer increased your vulnerability with respect to IP or lawsuits pertaining to Facebook.
But Facebook only removed the (claimed) vulnerability-causing license provision for React, leaving it in place for React Native.
And today, they are announcing its removal from React Native as well. Thank you, Facebook.
https://github.com/bschwind/yoga-rs?files=1
I eventually want a React Native esque framework but written in Rust instead of JS. Still a ways away though, I don't have much time to work on it.
React Native runs a JS VM in a separate thread and communicates to the native platform code (Java and objective c) to tell it where to draw things. The native code then passes things like touch events back to the JS thread.
I want to replace the JS thread with native code to hopefully increase performance and gain advantages from Rust such as its nice type system and the Cargo ecosystem.
I have a proof of concept running Tokio and Serde to talk back and forth on Android between Java and Rust but it doesn't do much yet. Needs a lot more time to get anything serious going.
For now it's just Flexbox and I think that covers most developers' needs.
If it doesn't then surely they can't just re-license code that was contributed by others without their permission.
I'm not fundamentally against this and I doubt anyone cares in practice, it just doesn't seem right in terms of the contributor's rights.
* http://en.swpat.org/wiki/Implicit_patent_licence
* https://en.wikipedia.org/wiki/MIT_License#Relation_to_Patents
Regardless of armchair and/or professional legal opinions, I don't believe this has been tested in court in the US at least.The number of lawyers i know who actually disagree in practice, and seriously believe it, is zero.
A significant number even believe there is an explicit grant. That's because MIT explicitly does not mention copyright, so it may not even need an implied license. it just says "to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so""
IE it says "whatever rights you need to use, copy, modify, blah blah blah, you get those".
Other licenses explicitly identify copyright rights, etc. You'd be super hard-pressed to argue this is trying to talk about only copyright (meaning it's not even an implicit grant, but an explicit one).
2. As mentioned, it has been well tested in pretty much every other respect, just not for free software.
IE people giving stuff away, even under licensing agreements, even for free other things, other things under free for use license grants, etc
Like you can't actually find a case that doesn't find an implied license in the standard MIT license kind of circumstances.
That said, implied licenses do suck, and are limited in various ways.
IANAL
the closest comparison i can think of is like the mp3 patent situation. Up until this year you were free to use LAME non-commercially even though its technology was covered by patents held by fraunhoffer & thomson.
even though vue's api is different from react's in lots of significant ways, it's not really clear that vue doesn't infringe on some of facebook's patents anyway (at least i don't know what the patents are) but the impression you get from reading every single post by an ex-fb (or current) employee is that using other react-like library put you in a similar legal situation as commercial users of LAME: while it was highly unlikely that facebook would take any action against your hackathon heroku app, it was never clear that any of those libraries (or their users) were free of actual risk. At least users of react were assured they weren't going to be sued regarding any of those vdom patents held by facebook.
It hardly matters now, but as gets pointed out every time this gets brought up, this is quite false.
You would lose the legal right to use any patents which Facebook might (or might not!) have on React. You did not lose the seperate BSD license on the actual code with grants you your license to "use react".
> Using React no longer increased your vulnerability with respect to IP or lawsuits pertaining to Facebook.
That's highly debatable. If Facebook does have patents on React (and it is believed they do), then using React, or any technology that uses the same underlying technology does, in fact, increase your vulnerability to IP disputes and lawsuits from Facebook. :) The implicit patent grant in the MIT/BSD license will help, but so did the (now removed) explicit patent grant, so it's hardly clear this is a win on net.
The situation has never been as simple as people seem to wish it was. Software patents are an enormous and (so far) unsolved burden on our industry. At least if you're in countries where they are enforcable (and given the nature of the global legal system, probably even if you aren't).
With BSD alone, if you infringe on a Facebook patent then you are vulnerable to legal action from Facebook if they deem that you’ve infringed your patent. And regardless of wether you’d infringed or not, such action would still cost a lot of money to fight in court and would cripple most businesses.
People who claim it risks giving up their IP are ignoring the brutal truth that software patents are shit, and if you’re in the software business you’re pretty much guaranteed to be infringing someone elses bullshit patent.
The BSD+Patent Grant was designed to combat the patent trolls, but people lost their minds and now it’s gone.
The BSD licence is objectively worse than the BSD+Patent Grant. If you opposed it, then the only people you’ve helped are the patent trolls.
So a poker bluff that would be Russian roulette without an expensive comprehensive patent search (and researching their patents itself increases your liability; reading about all the ones that you later determine didn't cover React subjects you to triple damages if they covered any of your other tech).
Facebook could also have acquired existing patents at a later date from other companies and individuals and use them go after you if you triggered the revoke terms, so you had to search all patents ever, not just ones that Facebook filed or owned during your initial decision to use the library. You could argue you have to do that anyway, but keeping with the poker bluff analogy, Facebook could know of the patent already, have undisclosed terms that prevented React licensees from being sued by the holder, and have a pre-negotiated option to buy the rights during a licensee revoke event.
Facebook is an $0.5T company built on open source. Without open source, Facebook would not have been possible.
We recently shipped a music making app which uses React Native for the UI, which is visually fairly rich and non-standard, including real-time rendering of shaders at 60fps responding to user input using gl-react-native and regl, and overall have been very pleased with the speed at which React Native allows you to iterate and the polish/smoothness of the resulting app; not to mention the fact that it allows us to easily make use of web developers’ existing CSS skills (as compared to writing a native app).
The fairly straightforward bridging between React Native and native code has allowed us to have an audio engine running in C++ and to communicate with it in both directions in real-time without significant overhead.
That’s not to say it’s been 100% straightforward, there were definitely a few rough patches along the way, but overall I would definitely use it again. I can easily believe that e.g. 18 months ago it may have been a much rougher experience which may explain your thoughts though!
Doesn't all the communication have to be done by passing JSON-encoded messages between threads? So compared to calling a function on the same thread, there is very significant overhead, especially if you want to pass large data structures (which would have to be serialized) or if the calling thread needs to block waiting for the answer.
But as long as you stick to send small and asynchronous messages, it doesn't have a significant impact on the user experience, I suppose.
Or did they do something to improve this lately?
I tried to implement a native Android button component myself (i.e. hook it up[2] using Java code), but the problem I ran into was that for the button to compute its desired size, React Native wants to do the measurement step on the JS thread, before the actual button is created (so it can't be asked for its size). And the built-in components' implementation of measurement looked really complicated, so I gave up on it.
[1] https://facebook.github.io/react-native/docs/button.html
[2] https://facebook.github.io/react-native/docs/native-componen...
My team first experimenting with RN on 0.8.0. What I found impressive was that some of the experimental code we wrote in RN proved stable enough, that it was still the same on production level builds using RN version 15.x eighteen-months later.
I'm not saying RN is THE solution, but I for one would stand to vouch for it for both top-quality UI output but also for ease of development.
That being said, there's so much cross-platform work going on, who knows where the industry will be years 2 years from now.
I thought it was a good thing personally because patent lawsuits are a waste of everyone's time but apparently enough people disagree.
Not that I know anything. Sorry for rambling. Point is I want to ask the question: are they (practically) identical?
The old Facebook license said that if you issue a patent lawsuit against Facebook, you lose the license to the software. That is in addition to the retaliation clause about the software itself.
So if you are using any OSS from Facebook, and then Facebook comes in and infringes on some unrelated patent you own, you need to stop using that software before suing or you just don't sue.
Out of all the music I listen to on purpose, maybe 20% is popular. I doubt the artists behind the other songs I listen to are multi-millionaires.
For example, many people against Facebook simply want to be in better control of their online identities, and have privacy. I am in this boat. I don't think Facebook is 'evil', or sharing my data with 3rd parties is a 'sin'; I just think society would be better off if privacy of this kind were more strongly controlled by individual choice, rather than the whim of a corporation.
[0] https://hacks.mozilla.org/2018/02/css-grid-for-ui-layouts/
The implicit grant doesn't get revoked, but how it works is still unclear. This is true especially (I believe) when it comes to sub-licenseability and patent exhaustion, where the exact mechanics have yet to be worked out in the courts. If I download MIT licensed code, and then distribute it to you, you have a valid license to the copyright on that code, despite the fact that you didn't obtain it from the copyright holder. Do you also have a valid license to any patents on that code? I have no idea, but I know enough to know it's not as obvious an answer as you might guess.
In general, explicit is better than implicit, and settled legal questions are better than fascinating mysteries. These factors weigh in favour of an explicit patent grant. The terms of the explicit patent grant Facebook was using, granted, were quite negative, but on balance I think I (and my current employer) probably were marginally better off with the older license terms. YMMV. :)
Access to good talent runs try. Maybe you grow a team of highly talented developers using Facebook’s stack. Facebook is more capable of recruiting them since they’re already familiar with some of Facebook’s stack.
I'm not a lawyer, but I have heard a few claim the opposite: BSD plus the explicit restricted patent grant was worse than BSD (or MIT) with no explicit patent grant (because many believe it carries an implicit unrestricted patent grant).
Apache placed React's BSD + PATENTS in "Category-X", banning it from being used in Apache projects:
https://react-etc.net/entry/apache-foundation-bans-use-of-fa...
> The BSD+Patent Grant was designed to combat the patent trolls, but people lost their minds and now it’s gone.
It was designed for Facebook to fight patent trolls, but not for you. In comparison with saner license like Apache 2.0, Facebook's license only applied to Facebook.
> The BSD licence is objectively worse than the BSD+Patent Grant.
That is false. Please read up on "implicit patents license".
The GPL, LGPL, and AGPL are also in that list, so by itself this isn't much of an indictment of the license itself.
We're using Weex [1] or NativeScript [2] now.
http://www.npmtrends.com/react-native-vs-weex-toolkit
Native is hard, React needed years to get it even nearly right, and it did that with the community's backing. At this point RN features dozens of renderers outside of the mobile space, with some of them made by the very vendors that sell their platforms (for instance Microsofts react-native-windows).
A couple of them here: https://pbs.twimg.com/media/DUF19IlXcAE2UC6.jpg:large
Can't imagine why anyone would willingly want to wait another 4-5 years until Weex is where RN is today.
However, another contributor to my repo is doing some interesting work with Yoga here (though it's not quite related to cross-platform mobile apps):
https://github.com/victorporof?tab=repositories
I say "contributor" but he's basically the one doing the heavy lifting on the bindings lately
They have tooling and are well positioned but what they need is big players to also back them so that people are more incentive to buy in. That is where moving the licence to MIT makes sense.
Does it matter? At some point something else will come along and React will go the way of jQuery. And then something else will come along and supplant whatever supplanted React.
Anyway, here's the list (I tested all the URLs):
Windows: https://github.com/Microsoft/react-native-windows
macOS: https://github.com/ptmt/react-native-macos
Linux (Qt): https://github.com/status-im/react-native-desktop
AR: https://github.com/HippoAR/react-native-arkit
VR: https://facebook.github.io/react-vr/
TV: https://github.com/react-tv/react-tv
Shell consoles: https://github.com/Yomguithereal/react-blessed
Word: https://github.com/nitin42/redocx
PDF: https://github.com/diegomura/react-pdf
3D: https://github.com/Izzimach/react-three
Sketch app: http://airbnb.io/react-sketchapp/
Keynote: https://twitter.com/nishb1/status/913744410537537536
Hardware: https://github.com/iamdustan/react-hardware
Samplers: https://twitter.com/GabeRicard/status/911989894267973633
Great work!
Changing the license because people are leaving the project only shows that FB cares about itself.
Claiming that you decided to change it out of the goodness of your heart seems a bit disingenuous. I get if you needed to clear it with the lawyers/business owners over that time but claiming it was changed on a whim doesn't ring true.
So long as you were using the software under those conditions, it would be an interesting argument for how that patent license could now be unilaterally rescinded. (The new license doesn't say anything about it.)
My co-worker Scott Peterson has given a lot of thought to the issue of the MIT license as explicitly embodying a patent license grant; I am hoping he will publish an article on this in the near future.
Honestly, he was the one who convinced me that there really is nothing out there to hang your hat on when it comes to suing people for patent infringement in MIT licensed software.
Granted, the whole patent thing seemed a bit overblown to me. For the vast majority of companies, it's always seemed like you would probably have much bigger things to worry about if you thought protection from Facebook legal over UI patents was your main concern.
https://www.pli.edu/Content/Faculty/Daniel_Berlin/_/N-4oZ1z1...
If there's anyone I'd expect to have a handle on open source law, it's him.
> I couldn't easily find a credible patent lawyer who has written publicly about this
Since DannyBee is quite possibly a "credible patent lawyer", then the above poster is getting what he asked for.
Like i said, it just doesn't say "software" on it. But it's not like this is fresh snow. People have been dealing with this in every facet of thing for years.
There's plenty of caselaw even on things like "person gives away free samples, later tries to sue for patent infringement" or "person gives gift, later tries to sue for patent infringement and "person licenses !software, later tries to sue for patent infringement".
If you have access to lexis or something, it's all neatly organized too :)
If you don't, here's a reasonable case to start on exhaustion:
http://www.cafc.uscourts.gov/sites/default/files/opinions-or...
Exhaustion of patent rights applies even when it's given away free: "In summary, we hold that patent exhaustion principles apply equally to all authorized transfers of title in property, regardless of whether the particular transfer at issue constituted a gift or a sale. "
Here's an older article with a ton of cites: https://www.finnegan.com/en/insights/the-u-s-supreme-court-c...
Note: All the parts in the article that talk about restricting use post-sale are now invalid. The supreme court held, last year, that post-sale restrictions cannot be imposed, exhaustion still occurs, too bad, so sad. (http://www.ipwatchdog.com/wp-content/uploads/2017/05/Supreme...)
Now remember, it doesn't matter if it was sold sold or given away,, i just gave you precedent saying it applies just as well to a gift.
So those are out the window too.
That's just on the exhaustion side, even without finding an implied license (which are closely related).
There really is just no precedent to hang your hat on that says "yeah, you can give people stuff, tell them they can use it, and then sue them for patent infringement".
It doesn't matter if it's an implied grant, exhaustion, you name it. There is just no case out there that says "yeah, that's okay".
I guess I was googling for the wrong term - implicit patent license leads to a very different set of speculative answers compared to "implied patent grant" and "federal circuit exhaustion".