HN user

orangeshark

103 karma
Posts1
Comments74
View on HN

I would agree the big difference is culturally, but I don't think it is really just the licenses that they choose. Free Software people value user freedoms, any license that allows that is good for them. There is no difference when a user uses a copyleft or more permissively licensed software because they have those same freedoms. Now when the code is a library, that is definitely a concern for the Free Software person because a permissive license can allow that code to be included in software that removes those freedoms from the user. So they might prefer a copyleft license like the GPL or a slightly more permissive license like the LGPL.

Open Source might be a bit more complicated to explain because there actually seems to be multiple groups under it. A big part of it is more about a development method where you develop the software out in the open, allowing anyone to contribute. This was made popular by Linux and is now pretty much used by all Free and Open Source Software projects. People in this community will often say this is a superior way to develop software over other methods and allow you to create better quality and more reliable software. Then there is the group that prefers permissive licenses because it is more business friendly as described by this post. Then more recently is this new group that wants to restrict a bit on the usage of their software with licenses like the Commons Clause and the Server Side Public License. I know many don't consider these open source, but it is a valid concern for these type of projects and they are originally open source projects trying to figure out a solution.

Even though OSI clearly defines what "open source" means, it is sometimes (often even?) used as a synonym for "source available"

Where do they define this? In the OSI definition it doesn't mention having the source available for everyone, only that whoever has the program should be able to get the source[0]. I do believe it doesn't follow "open source" the development model where development is in the open and anyone can contribute.

[0] https://opensource.org/osd

It is a general term for the process of breaking a string into "tokens" which have a sort of meaning. Definitely a common task in compilers, but not limited to it.

And why can't something be open source when it's not free as in free beer

There is nothing preventing you from charging a fee for Open Source or even for Free Software. You only need to distribute source code to users of your software. That means it does not need to be publicly available on a site like Github. You need to remember that users who receive the software and source code are still allowed to distribute your software for a fee or even free. This method of selling software is not common at all though, so I can't really name any successful projects doing it.

So why can't this software be called open source, when the source is... open?

The reason you can't call software like that as Open Source is because Open Source has a clear definition as defined by the Open Source Initiative[1]. Free Software has a definition as well[2]. The Open Source definition is a more expanded and detailed version of the Free Software's Four Freedoms. If the license you use for your software does not allow the things as described by those definitions, you can't call it Open Source or Free Software.

[1] https://opensource.org/osd [2]:https://www.gnu.org/philosophy/free-sw.html

The main difference between Free Software and Open Software is what aspect of the software they focus on. Free Software is more on the freedom while Open Source is more on the development method. They still value the other aspects, just not as strongly.

You can sell your free software, RMS even encourages it. The reason a lot of the software is gratis is to lower the barrier to use and spread the software. This makes sense if you want to quickly spread an operating system composed of free software. Unfortunately that has become the default for most free and open source software, even for many proprietary software these days.

Free software and open source software cover basically the same software. The main difference is that these communities value different parts of the software. Free Software supporters value the freedom aspects of the software, while Open Source Software supporters value the development practices to create powerful and reliable software. If you listen to these supporters on the benefits of releasing your software as Free and Open Source, you will hear completely different reasons why.

Google vs Oracle is about reimplementation of an API. So if someone came along and created a software that provided a Blender-like API, then that shouldn't be violating copyright.

Usually GPL software that provide an API that would allow proprietary software to be built on it tend to have an exception for the API. From what I understand, Blender doesn't provide that.

I don't really have that much industry experience but have been reading a lot about development processes and practices. It seems there just isn't one development process that will solve all your problems and allow you always create successful software. To me it seems you just need to find what works for your team and continuously work on improving on it. What might work today, probably won't work for your team tomorrow so you need to always look at how can you improve your process.

ACM recently had a series of webinars[0] by Ivar Jacobson on Essence[1]. Essence was kind of confusing at first, but it is essentially a language to describe practices from the different processes. The idea is that you can build up a library of the various practices in your company and allow teams to pick their own and evolve their process by swapping out practices that just don't work out. Essence seems like an interesting idea, especially if it allows teams to create a development process that fits them.

[0] https://www.sigsoft.org/resources/webinars.html

[1] https://www.ivarjacobson.com/services/what-essence

When exactly are we supposed to be learning all these languages?

Some argue that as a professional, you should be spending time outside of work learning to improve your career. You can't expect your employer to give you time to learn.

I find it can be difficult though, especially when you want to spend your time outside of work on other things like family and hobbies.

Thinking more about the issues, it really seems this only affects a subset of software, specifically server software. A SaaS company won't be able to turn and sell some desktop software as a service. We sort of seen this in the past with hosting companies selling services with apache, php, and various other software together, but I guess the maintainers of these projects were not competiting in this area so it never mattered.

I also find it odd that one of the reasons to use the term open source was because of the ambiguity with the meaning of free. Even with this reason, the majority of open source software is free/gratis.

I agree with the problem we are facing now, we are just not educating many developers on free and open source software. It is probably something we need to improve on.

The preference for permissive licenses vs copyleft license depends on where you value the freedom. As a developer who wants to write software, you might prefer permissive licenses because you have the freedom to do whatever you want with the software like including it in your propreitary software. As a user who ultimately runs the software, you might prefer the copyleft license because you get those same freedoms as the developer. I would admit that whether a user uses software that uses a permissive or copyleft license, it is pretty much the same.

These Redis modules were originally using the AGPL. From what I understand the issue wasn't that they didn't have access to the modifications but that they provided it as a service on AWS which is what Redis Labs also offers.