Books of Note

Practical Common
LispThe best intro to start your journey. Excellent coverage of CLOS.

ANSI Common
LispAnother great starting point with a different focus.

Paradigms of Artificial Intelligence
ProgrammingA superb set of Lisp examples. Not just for the AI crowd.

Wednesday, January 05, 2005

Some thoughts on Free Software and GNU 

I was reading this interview with Richard Stallman on KernelTrap today. It's always interesting how a Stallman/GNU article brings out all the zealots, both for and against free software. The comments about the interview were of course even more voluminous than the actual interview itself. I have watched the FSF develop for decades now and this has always been the case from the very start. I remember reading some of the first Stallman writings in the 1980s and thinking, "Hmmm... this guy is probably crazy, but if he pulls it off, wouldn't that be interesting?" Here are some other thoughts on GNU, Open Source, and Free Software, formed over a very long period of time (in other words, if you write to me to debate these, you're unlikely to change my mind unless you happen to come up with something very incisive that I have somehow not considered ;-):

First, let me say that the one thing I disagree with very strongly is RMS's statements that non-free software is immoral and "antisocial." Proprietary software is what it is. If you don't want to buy it because it doesn't meet your need for having the source available and being able to hack on it, fine, but don't go around suggesting that other people are stupid for doing so. As long as nobody is forcing people to use non-free software, all software licenses are just options in the market place and will be adopted by various people depending on what they offer. The freedom to hack source code is just one more "feature" of the product, nothing more.

Similarly, don't suggest that corporations that produce non-free software are somehow evil and corrupt. Again, as long as they aren't somehow forcing people to buy their products, they are just one option in the market place. If they can make money selling non-free software, then obviously "freedom" isn't all that it's cracked up to be. Whenever anybody writes the phrase "corporation producing non-free software," most people think specifically of Microsoft. Note that I don't begrudge Microsoft their ability to field a product in the market and charge whatever they think their customers will pay for the product. However, some of Microsoft's past business practices were definitely oriented toward limiting competition and choice of consumers and I think they have gotten off pretty light in return for decades of anti-competitive behavior. The point is, when you hear the phrase "corporation producing non-free software," it's much better to think of somebody like Adobe, Macromedia, etc., than Microsoft.

Whenever one starts discussing free software, GNU, or Stallman, it's important to remind everyone that "free" in this context means "as in speech," not "free as in beer." Stallman is not saying that you can't charge for bits, just that once you have sold those bits, you can't prohibit somebody from taking the same bits, possibly with modifications, and propagating them downstream for whatever price they want, possibly for zero cost, and so on... In other words, RMS isn't suggesting a software economy where no money ever changes hands; rather, he's advocating an economy where source code always changes hands and people have the freedom to make alterations to a product and then redistribute the resulting hybrid product.

Whenever RMS gets interviewed, somebody always starts throwing around the "communist" label and suggesting that such subversive ideas will lead to the destruction of the software industry. I think such fears are overblown. However, I also think that the FSF's economic theories have a couple problems. Here's the way I see it:

Whew! So what does all this mean? Am I down on either free software, the FSF, the GPL, or RMS? No, not at all. I think free software is a great thing, but I think there is definitely a place in the world for non-free software. I don't buy into the ideology that non-free software is morally wrong and "anti-social." I believe that the amount of free software will reach equilibrium in the market according to the revenue that people are able to derive off of other sources associated with it. In short, if everybody spent all their time writing software for which they didn't derive compensation, they would shortly not be able to eat, they would die off, and would be replaced by developers with a better understanding of economics. Insofar as people want to contribute their work to the market place under various open source terms and conditions (the GPL, Apache, BSD, and even public domain), I think that's a great thing. But we need to recognize that this is a gift from such developers and not expect it as a fundamental consumer right.

As a last point, let me suggest that free software works best for more fundamental pieces of technology that are commoditizing and have an inherent need to be low cost in order to achieve widespread adoption. Things like web servers and operating systems are good examples. More specialized applications which generate lots of downstream revenue dollars for their users are more willing to be paid for. Whether source code comes along with those applications as a feature of the product sale is just that, a feature to be negotiated between the producer and buyer. An example here might be a specialized piece of video editing software used by a movie production company where the company derives millions of dollars of revenue from such a product.

Finally, let me note that it's interesting that some of the free Lisp implementations out there, notably CMUCL and SBCL, are public domain, with no license whatsoever (use the code in whatever way you wish).


I dont want flame with you, but just add a comment because your entry make me think about it.

- The right to have source code
Having the source code is not only meant as to develop on it, but also to study it. In old-economy industry i can ever study the widget i use(because i see it), so i can be sure that this widget is not harmful for me. Where not, law tells producer to publish information on their widget (don't you consider that is it your right to know the ingredients of what you eat?). Source it isnt an added value for hackers, but an insurance(warranty) for all.
(Reply: Ok, but to have it, we need only a sort of qmail license)

Furthermore ClosedSource with the net strategy drive us toward the monopoly (think about macromedia flash and microsoft word). When a closedsource spread around the world, you are constrained to use and buy it.
(Reply: ok but the problem is the protocol sws communicate, not the way the work)

- Custom Software
I think you should consider the concept of custom software (you can find it on gnu site). For Custom Software there isnt free/non-free problem.

- Chain of Value
Ever consider the nonfree-scenario:

Free Software
a or b or (everyone working) could get paid for their work. That is free market.

Non Free Software
only 'a could sell and modify sw, he sold. Less people/value/money/food moves. That is monopoly market.

Sorry for my english

At last i want to congratulate with you for your blog, your site and your activity for lisp and free software. i am just another lisp-lover

This isn't an attempt to change your mind about Free Software! But I think there's one mistake in your account. You write:

"To be awarded a patent for anything (ignore the sensitive issues surrounding software patents here and focus on even hardware patents), the patent office requires an inventor to reduce it to practice. In other words, raw ideas are great, but an embodyment of those ideas is actually something of value because it required lots of effort to perform that reduction to practice. Simply thinking, "Wouldn't it be great if there was a piece of hardware/software that performed function X?" isn't the same as actually building such a thing."

As far as I can tell, at some point Congress pretty much tossed out the "reduce to practice" requirements in patents, or perhaps the new software and business practice patents effectively provided such loopholes as to trash it. But it seems like one of the problems of the current U.S. patent system is that you can file a patent just on the basis of some wifty idea. The patent examiners are too swamped to pay much attention, and challenging them is too hard.

On the other hand, in the old days, when there were no software patents, it seemed like the tradeoff was better. A lot of times it would just be cheaper to buy software from someone else because, as you point out, developing good software is expensive and hard. But if the seller was charging an exorbitant price, or trying to hold some innovation off the market, you could legally reverse engineer it.

Software that's ONLY copyright protected, and not patented, provides a situation offering much more freedom to innovate, and consumer freedom to use.

Nope, the patent office still requires you to reduce an invention to practice such that a person of average skill in the art can reproduce what you are patenting. Naturally, this is subject to some interpretation, but generally most patents are fairly detailed. If you think about the intent of a patent, to grant the patent holder a limited monopoly in return for putting the knowledge into the public domain, you need things to be at a level where the patent application is useful to the public after the patent expires. Because of this, there has to be enough detail in there. So, the requirement still exists, but I don't deny that some patents don't necessarily live up to the ideal.

Post a Comment

Links to this post:

Create a Link

This page is powered by Blogger. Isn't yours?