It's great, and it doesn't work outside Facebook.
It's great, and it doesn't work outside Facebook.
Even React, which is their most popular library, is not actually "open source." They're very transparent about the fact that their priorities are Facebook's needs -- even if they do take community input.
None of this is per-se bad, but you should definitely treat an open-source project out of Facebook with skepticism when it comes to adopting it for your own use cases (possibly making sure you're not too locked in when an incompatible v2 comes out with virtually no warning after FB's internal implementation drifts).
How do you define "open source"? It typically simply means the source code is available. By any definition I can think of, React is definitely both free and open source. How they design the software or if they take contributors isn't really relevant.
I agree with you that react is definitely open source, but I'd also encourage you to use more specific wording around what "open source" means.
I think wikipedia gets this right: https://en.wikipedia.org/wiki/Open-source_software
"Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose"
The license is the key bit.
On the other hand, there's "source available" software (also on wikipedia https://en.wikipedia.org/wiki/Source-available_software ), which is what your definition equates to, and I personally don't want to see confused with open source or free software.
- Freely licensed software (eg: MIT, GPL, etc)
- Code visibility (eg: ForgeRock)
- Community focus/contributions
Not all "open source" implements each of these, and just because they implement one and not the other doesn't mean they're not expressly open source. Just some ecosystems are more open than others.
That Wikipedia definition sounds more like what typically gets described as "Free and Open-Source Software"/FOSS, no?
As I see it commonly defined, "open source software", FOSS, and FLOSS all mean the same thing more or less. That the project uses an OSI approved license, or one very close to it, whether it's MIT, Apache2, or GPL.
"Free software" is the only of the phrases that I see having two competing common definitions, the "free as in money", and "free as in Free Software Foundation's definition of free software". This seems pretty understandable, since "free" is overloaded.
I only infrequently see people mixing up "open source" and "source available", and that's the specific thing I'm trying to discourage people from mixing up. I think keeping those terms clear, and especially calling out "source available" software as _not_ being "open source" (i.e. not granting you the freedom to modify it or run your own copy in some cases) is important.
Coming back to the original argument - which was that React was not truly open-source - being MIT, it 100% is, so I still don't understand it. That they prioritize their own needs for feature development is pretty much irrelevant, the source is there and you have permission to fork, tweak and publish changes on your own at any time. You legally are in your own right, but they don't have to make it easy on you.
Open Source == other peoples' contributions, to my project's code
Can you link to a reference?
As I understand it, "Free Software" is the term the FSF and general hacker community settled on for licenses that preserve user's freedom to modify and redistribute source code.
O'Reilly etc shifted to the term Open Source as part of making the idea less associated with "hacker culture", and more associated with businesses (as described here: https://en.wikipedia.org/wiki/Open-source_software#End_of_19... )
From there, I see "Open source" being slightly more often associated with companies or younger developers, and "free software" more often being associated with the GNU project, copyleft projects, etc.
I'm curious if you have references or more explanation about the difference you're trying to draw, since it's one I haven't seen before.
My distinction between the two is whether outside contributions make it back into the original project. Free Software is about the rights of end users to inspect the code and make and distribute their own modifications, but then Open Source takes it a bit further by explicitly soliciting contributions with the ostensible aim of building a better project through cooperative labor than an individual programmer could build alone.
In practice though "Open Source" has turned into unpaid project management work for billion-dollar corporations, bitter disputes between contributors over conflicting standards of morality, technical visions in constant flux as contributors come and go, and endless bikeshedding about semantic version numbers / code style guides / other things that don't matter. For years I thought I was totally burned out on Free Software and walked away from all of it, but what I was actually burned out on is Open Source and have been able to love programming again by working on things that are explicitly "Free Software but not Open Source".
The `actix-web` drama a few years ago is a perfect example, when a huge crowd of onlookers felt morally justified excoriating a popular project's creator / maintainer for not managing their project to the crowd's standards: https://steveklabnik.com/writing/a-sad-day-for-rust
??? Isn't React licenced under the MIT licence? It seems to me that it tickes all boxes?
I'm aware react is licensed under the MIT license. I was just talking about how the parent comment chose to define "open source".
I don’t know how we got to this point but it’s interesting to notice that the terminology drifted.
The terminology hasn't drifted that much. I think there is a small and vocal group of people who are trying to take back "open source" by reframing what it means, so as to exclude corporate projects. It doesn't make sense to me.
There are certainly a push in that direction. And that you need a group of people, core or council to be considered as Open Source. And Linux has that.
>The terminology hasn't drifted that much.
It depends how you measure it, but Twitter and HN are at least two places where lots of developers are suggesting Open Sources equals to Community driven. And yes, there are also some movement towards MIT, BSD or Apache 2.0 as being not considered as Open Source because they do not contribute back changes. Although that hasn't gotten any traction. ( yet )
For me, open source and community-driven are not similar and I don't understand why people seem to expect it.
React is a successful Facebook OSS project. An example of one which went poorly is Thrift. Facebook open-sourced it and then internally used fbthrift which diverged drastically. OSS Thrift isn't that popular these days any more.
that is not what that means. "source is available" and "open source" are very different.
> Disagree.
well, fortunately your agreement is not required. "open source" already has a definition and it requires openness.
A standard open source license with a patent grant, like the Apache license, would have been a lot clearer, but Facebook has so far refused to license React in that way.
A problematic patent grant was offered for earlier versions of React but that’s not the case anymore (and didn’t really fix the problem anyway).
The source code to Windows is available.
IMO that should be celebrated, not shitting on fb for their poor track record of going out of their way to open their source code to the public.
I hate meta as much as the next, but come on.
A fork may not be an option. Perhaps a given organization may not even be allowed to use React, if Facebook decides against it for some reason. Jurisdictions can differ as well.
In my opinion, the best thing would be if Facebook simply made the terms clear by using the Apache license or similar. But hey, it’s Facebook, so I’m not expecting much…
By that definition any "Open Source " MIT or BSD licenses that does not offer patent grant has problems.
> Re-sync with internal repository
I wouldn't consider this to be a problem.
So if history serves the next announcement to watch for is your departure from Facebook and the launch of Edenity, which will be sunset and abandoned inside a decade once it fails to IPO. Am I close?