Free Software is dead. Long Live Open Source Software. The reason for this is simple: Free Software is simply too radical for most practical uses. The majority of users don't care about the philosophical benefits of one over the other and are never going to contribute back to the original project (think of the millions of Android/Linux or Firefox users). On the other hand, OSS allows plenty of practical benefits: you can view the source, fork it, often times contribute to it. It's often done on good faith. Think of all the projects released under the Apache or MIT licenses which are doing so great. Who cares if someone somewhere is not contributing back: most people that matter do and the license does not hinder them.
The GPL is an appropriate license for lots of projects, such as the Linux kernel. Those are too important and too large a target to leave to good faith. However, something like a JavaScript framework of the week does not benefit from being GPL. Also, think of all those BSD distributions.
Having said that, open source your technology now. Not your secret sauce, but most of your code can be OSS. No reason to hide the Rails app that runs your site. It's not why you are making money, so open it up and let others take a peek. The worst thing that's going to happen is that nobody will look. Chances are, nobody will clone your exact product because you are likely delivering value that's past just the code you are writing.
You seem to be under the very, very, very mistaken understanding that "Free Software" requires either the GPL or copyleft. Apache, MIT, BSD, GPL are all both Free Software licenses and Open Source licenses. The definitions make "Open Source" and "Free Software" almost synonymous.
But the term "Open Source" is much easier to co-opt and abuse. There are a variety of things that broadcast themselves as "Open Source" based only on the sense that "Hey you can look at our code! You can't actually do anything with our code, but hey you can look at it, so duh, it's Open Source!". This is not actually Open Source.
The problem with Open Source is that it seems intuitive that these Open Source posers could be correct--the "open" vs "open" clarification is more difficult and nuanced and not-intuitive esp. compared to clarifying the meaning of Free in Free Software as "free as in freedom" vs "free as in beer".
I understand the distinction. I am talking about the FSF pushing the GPL on everyone as if it's a one size fits all solution. There has been much debate on GPL vs MIT-style licenses and I believe both have their place.
Now, as far as OSS vs open-to-view-but-not-use, it's a different point. The problem is that you can have something like Android where Google has lots of control over where the software actually runs. Technically nothing would prevent you from forking it, putting together your own hardware and running a completely open platform that will compete with Google. Practically, it would cost you a lot of money. I actually think that CyanogenMod is a counter-example to this for Android: it is an open build of Android for the devices that support it. In reality, the problem with Android devices is not Android-the-OS. It's the closed bootloaders and the hardware that supports them. If only every phone's bootloader was as permissive as the BIOS on PC's (EFI notwithstanding), we wouldn't be complaining about this. You get your Moto X, nuke the Motoblur crap, install your favorite Android distro and you are good to go.
Another example: would you classify WordPress as free software? Most people do. The reality is that it is very tightly controlled by Automattic which has its own roadmap that is often times not public. You submit a patch to them, they sit on it, then produce their own solution in the next release that does things completely differently.
In the end, the license can do very little to prescribe governance of a project and that's what things most often come down to: who is in charge and how flexible are they? So we can debate the finer points of licenses or even what to call those licenses or we can write useful software where the source is available and others are free to run it and fork it.
Copyleft and permissive licenses are all both free/libre and open source. The distinction between free/libre and open source does not lie in the distinction between copyleft and permissive licenses.
I see business encapsulation as a legitimate goal. the general public should not be exposed to the internals of your business. They should know what you do and what you can do to help them but they don't need to know all the administrative details. Keep your interfaces with customers clean. That requires not revealing the internals of your business to everyone in the world.
At Efficito, virtually all of our work on LedgerSMB gets contributed back to the community. There is one exception which is not given back for this same reason: We modified LedgerSMB to work ok in a multi-tenent environment.
To do this we did two things. First we enhanced the authentication structure to make it work, and we contributed this work back. However, secondly, we wrote a custom authentication provider to handle the details.
Now, had we wanted to release the custom auth provider back, we would have made some changes in structure. As it is, however, the structure of the auth provider is closely bound to our approach to hosting. Publishing it would effectively ensure that everyone would see our internals, and the benefit to them would be only in cloning our services. The work wasn't significant (maybe 5 hours development time) but it also wasn't generally useful to everyone else.
So we kept it secret. There's nothing wrong with this any more than there is anything wrong with insisting that you don't break encapsulation when doing object-oriented programming.
If you can do so without damage. I suspect that if Google opened up their exact page ranking algorithm, the quality of the web overall would drop dramatically for everyone. But for example, if they opened up their home page, or Google Docs people could actually improve upon them with no downside to Google.
> I suspect that if Google opened up their exact page ranking algorithm, the quality of the web overall would drop dramatically for everyone.
That's only because Google is a single point of failure. They have excellent engineers making their systems resilient, but relying too heavily on a centralised system inevitably amplifies those bugs which do slip through.
If Google's code were Free Software, there would be many much smaller, much less stable instances out there. There would be far more outages, but each one would be very minor.
Of course, a decentralised Google would be excellent. There are projects out there which try to do this.
Interesting versus boring isn't really the criterion, though. I mean, doubtless there are some programmers who read code for entertainment, but they're in a minority. Usually what we care about is what the code does.
Right now I'm using the excellent Dragon NaturallySpeaking, which is useful enough to me that I bit the bullet and paid for a license. But it would be even more useful if it were open source, not because I want to read the code for intellectual stimulation, but because there are several bugs that would be easy to fix, would make it even considerably better, that the developers refuse to fix (a common enough occurrence) and nobody else can fix (a problem peculiar to proprietary software).
It never would have occurred to me to open up my work's rendering pipeline, it's just to boring and ho-hum for words.
You say that, but if there's anything I've learned from HN, it's that nothing is "too boring". I'm not advocating that you do open up your rendering pipeline, but you never know who might find it interesting, useful, or even help you make it better.
The GPL is an appropriate license for lots of projects, such as the Linux kernel. Those are too important and too large a target to leave to good faith. However, something like a JavaScript framework of the week does not benefit from being GPL. Also, think of all those BSD distributions.
Having said that, open source your technology now. Not your secret sauce, but most of your code can be OSS. No reason to hide the Rails app that runs your site. It's not why you are making money, so open it up and let others take a peek. The worst thing that's going to happen is that nobody will look. Chances are, nobody will clone your exact product because you are likely delivering value that's past just the code you are writing.