Saturday, March 28, 2009

Free as in beer!

The GNU connotation of software as a form of speech never made any sense to me.

"Free speech" means the freedom of a person to express himself or herself without a fear of persecution. It does not mean the freedom to use the results of this expression by everyone.

Quite the contrary - the literary works by the greatest writers are the results of exercising free speech. But rip "Harry Potter", and you will - deservedly - find yourself slapped with a lawsuit, a fine, and maybe a jail sentence.

The free software movement has produced a lot of great things - from GNU development tools to Linux, BSD, Apache, and Firefox. It has also produced legions of activists that bring in the level of politics, acrimony, and fanboyism that is unbecoming to honorable competition in an area that is as much a science as it is an art.

By doing so they actually take the freedom away from people who chose to distribute the results of their work through channels that are different from the ones favored by the Free Software Foundation.

So here's my variant of "free software". The code distributed on this blog is free - free as in beer. You can redistribute it in full or in parts, with or without source code. You can use it in any derivative work without giving me any credit.

//-----------------------------------------------------------------------
// <copyright>
// Copyright (C) Sergey Solyanik.
//
// This software is in public domain and is "free as in beer". It can be
// redistributed in full or in parts for free and without any preconditions.
// </copyright>
//-----------------------------------------------------------------------

6 comments:

Anonymous said...

GNU is not about freedom of speech. See http://www.gnu.org/philosophy/free-sw.html for a description of the philosophy.

I recommend that you use the MIT license instead of your own. The MIT license provides you with some protection. http://www.opensource.org/licenses/mit-license.html

Илья Казначеев said...

The proper name of what you're doing here is 'BSD without clause' ;)

Anonymous said...

There's also something about preserving freedom. It doesn't make sense for small libraries or code snippets - but if a company has modified and distributed a GPL program or modified a GPL O/S in their hardware then I think it makes sense they contribute back, after all they are benefiting by using something free in the first place.

BadTux said...

The main reason I released my open source software under the GPL license was to keep someone like Microsoft from picking it up and selling it without providing the source code (which has my name all over it and thus is advertisement for my skills). If Microsoft wants to sell my software as their own, they have to darn well pay me for getting it under a different license! This is common in the Open Source world. For example, the QT UI library is released under the GPL. But if you want to release non-GPL software linked against it, you better darn well pay them their license fee for a different license!

The end result is that GPL software has driven out BSD software in the marketplace for developer cycles because developers will work for free (as in beer) only if they are convinced that the end product will either remain free (as in beer) or they will get paid for it (as in, Microsoft or Red Hat or etc. approaches them and negotiates a different license with them that puts money in their pocket). So the BSD software lags behind in features and performance, and thus many, many more people use Linux rather than FreeBSD despite the fact that, well, Linux sucks.

In other words, there are some real economic reasons to use GPL for your software, depending upon your objectives. If your objective is to make your name known far and wide (call it the "free software as free advertising for your skills" model) or if your objective is to have a "try before you buy" model for libraries like QT that you believe you can get developers to buy, GPL makes a whole lot more sense than BSD, where your end result is likely to just get locked behind the binary wall by anybody who includes it in their OS or links against it from their programs. If, on the other hand, your objective is simply to get some useful utility out into the world and you want as many people as possible to use it... well yes, BSD will do that.

Based on your own objectives, BSD makes sense. For that matter, at this point in my career (principal engineer at a startup company), BSD makes sense, because I don't need any advertising for my skills and don't care whether someone else uses one of my one-off utilities as part of their own product. But maybe this will help you understand why, in general, GPL software has shoved BSD software out of the marketplace for free (as in beer) software...

Sergey Solyanik said...

Man, you just have no idea to which length Microsoft goes to make sure no external code can ever make it into its products... GPL or not.

We're too big a lawsuit target to risk it :-).

Unknown said...

Sergey Solyanik said...

Man, you just have no idea to which length Microsoft goes to make sure no external code can ever make it into its products... GPL or not.Try the following within cmd.exe:

$ find "Regents" %SystemRoot%\System32\ftp.exe

which will output:

"Copyright (c) 1983 The Regents of the University of California."

Microsoft and Apple and many others build upon BSD licensed code to create proprietary offerings.

They cannot do so with software under the GNU GPL because the GNU GPL is not just a Free Software license, it is a Freedom *Perpetuating* license = insuring all current and *future* users have the freedoms to Use, Modify, Copy and Share.

Profit requires Users NOT have "at cost" access to the Sources of production.

When Users gain "at cost" access to the Sources of Production, the ability to charge price above cost (profit) no longer has meaning.

But that is ok. We, as a society, do not NEED profit. Profit is a measure of consumer dependence upon current owners. Profit can be safely minimized and even eliminated by treating it as an investment from the consumer (user) who paid it.

Note: Wages are not the same as Profit. Wages are another cost of production that are paid to workers for their time and energy.

Profit is on the other side of the equation. Profit = Consumer_Price - Owner_Costs where Wages are one of those Owner_Costs.

Profit requires scarcity, so treating it as a reward for the current owners (as we do now) is only asking for the insane, sui|homi-cidal behaviour we observe in the willful destruction of our planet for the purpose of perpetuating that payment of price above cost.