Hacker News new | ask | show | jobs
by TheDong 1524 days ago
> How do you define "open source"? It typically simply means the source code is available.

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.

4 comments

There's three domains where people usually use the term "open source".

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

React is MIT, which is pretty much one of the least restrictive ones, granting basically no rights to the original publisher.

That Wikipedia definition sounds more like what typically gets described as "Free and Open-Source Software"/FOSS, no?

I'm aware React is MIT and of the various licenses etc.

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.

I see the opposite often argued too - that open-source is too wide a term as could also be understood as source available, and that FOSS/FLOSS should be preffered. But you're right, looking at most literature, most people seem to refer to oss and foss to be largely the same thing. I guess my biases are showing lol

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.

Free Software == my project's code, to others

Open Source == other peoples' contributions, to my project's code

I have not seen this distinction commonly.

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.

> 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

I don't think your distinction is actually part of a common world view.
>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

??? Isn't React licenced under the MIT licence? It seems to me that it tickes all boxes?

As I wrote at the top of my comment. "I agree with you that react is definitely open source" (and no, I did not edit that in, it was there when you read it)

I'm aware react is licensed under the MIT license. I was just talking about how the parent comment chose to define "open source".