Does the GPL (GnuGeneralPublicLicense
) work for all programs?
By work, I think we should be discussing economic feasibility.
Why is that? By doing so, you exclude:
- programs written by hobbyists
- programs written by people who are dedicated to freedom of code
- useful tools orthogonal to their developers' real business.
.. and in doing so exclude the people who write all of my favourite software. -- LukeGorrie
How does discussing GPL and economic feasibility exclude those groups? As long as the development tools are cheap, then those activities are economically feasible regardless of GPL.
Economic feasibility means (methinks) "capable of producing an acceptable return on investment". If your acceptable ROI is zero (or even negative) and you are willing to donate your time, it certainly is feasible - the expenses to the developer beyond his/her time are minimal. If you want to become the next Microsoft, then the GPL won't work for you, as MS's business model depends on being able to legally enforce scarcity of the product in order to charge prices well in excess of the marginal cost (which is zero or near-zero for software). If you want only to become a profitable company (but not a rich monopoly), the GPL can and does work. (Many such companies have failed and blamed it on free software; when a proprietary SW company goes out of business though, nobody blames it on unfree software).
I think that GPL works for every type of program. I used to think that Games might be the exception, but then I realized that just because the game code was released under GPL, the related data didn't have to be released under the same license. Of course, RichardStallman
thinks that data should also be free always, but I haven't figured out how to make money on games with free data yet.
I think you need to define "work". Many people would consider the GPL to "work" for games and their data, even if this means not making money from them - and many would not.
OK, in this case, "work" means that games that people like me want to play would continue to be developed. If it is not possible to finance the making of such games if they are to be GPL, then it does not "work" here.
IMHO, GPL only works if a program manages to get a user base with a long-term interest in the program. Some games fit this bill, some don't. A game that is fun for a while, and then thrown away, isn't likely to find volunteers who actively want to develop it. Games like FreeCiv?
are good examples of successful free software games (don't know if they are actually GPLed). Note that both games get their popularity because of great game-play not because of their great artwork or their flashing 3D effects. This is consistent with the above; good game-play is forever, having coolest 3D-effects is something that lasts for only one month.
Yet still, FreeCiv? and NetHack are not commerically successful. That wasn't the question you were answer, and commerical success was never the aim of the programs creators, but it was at the top of the page :). Interestingly enough, id software has a habit of releasing the code under the GPL to their games years after they're released but not releasing the data along with it (art files, etc.), so that the game is difficult to reconstruct. That tells me two things: there is a major developer who has heard of the GPL and that (I guess) id doesn't reuse much of their code from their old games.
An interesting phenomenon in the PC gaming community is modding. Developers are very eager to make the game easily modifiable by their customers, because such modifications drive sales. To that effect, a few developers create programming languages that are an interface to the engine, which they then use to do some of the development work (I'm not sure how much). The prime example is Bioware and Neverwinter Nights. NWscript is close enough to C or C++ that I find myself wishing for arrays so that iteration would be easier than it is. However, a lot of the basics are, and coming from a C/Java background I found it very easy to learn and was doing meaningful work in it in a few days. The scripting language has access to almost every aspect of the engine, and the entire single-player campaign is written in it. It's also possible to recreate the warcraft 3 single-player campaign from scratch using the map editor, if you so desired. I bought that game because I knew what the mod community was going to do with it. However, the engine itself for both games is completely off limits. Id feels safe releasing the engine to the first 3 quake games because they can't make any money off of it anymore via licensing, which is their cash cow and which the GPL might destroy, or make less valuable. With a GPL of their engine would, eventually, come people besides them who are experts with the code,and then I guess they'd go out of business.
Food for thought on where I think the game industry and open-source interact' -JasonEspinosa
I very much doubt that "RichardStallman thinks that data should also be free always". Do you have a quote that supports your assertion, or are you just arguing with an ad-hominem attack? I expect he thinks that some data - e.g. program documentation - should be released under a free license and that some -- e.g. medical notes, payroll records -- should not.
Why do you think so, because that would be reasonable? I know the man, and I disagree. He has been very consistent in his philosophy, regardless of whether that conflicts with what other people view as pragmatic issues. He is a purist of the Nth degree, and always has been.
I first initiated a conversation with him by logging into his MIT account, back in the mid 1980s, and sent him email from his own account, CC'd to mine...he didn't believe in passwords. I thought this was a novel way of talking to someone, but he didn't, he regarded it as a perfectly normal way of initiating a conversation.
Don't assume that what you regard as obviously reasonable will be his point of view.
I publish an open-source application framework with a more libertarian license than the GPL (often referred to as non-copyleft). Companies invest in the software to create vertical applications of no particular interest to the general public, like air-traffic control systems and military command-and-control applications. They would not use the software if it required them to share the results of their investment with their competitors, and the framework would not benefit from their input and feedback (see EvolvingFrameworks
). I'm all for the GPL when it comes to one-of-a-kind programmer utilities (like emacs or gcc). But there is a place in the world of software for private enterprise (do you really want your plane guided by software written entirely by unaccountable volunteers?), and it is the BSD-like licenses that allows them to collaborate with open-source. -- ScottJohnston
As a many-times participant in ugly free software related arguments, I must point out that your last statement, while a perfectly good opinion, could be interpreted as inviting a often-ugly debate about commercially-supported free software :-).
Actually, that might be interesting argument to bring up again in light of IsThereEverGoingToBeSufficientEconomicIncentiveToDoSoftwareRight
. After all, why buy commercial support for free software in they aren't going to do it right?
Now, isn't it true that they would only have to share their modified source code if there were redistributing their changes to other companies? If the keep their changes to them selves, they are free to make any private changes they want without sharing. They could even contribute some changes back while keeping other's secret. As for do you really want your plane guided by software written entirely by unaccountable volunteers?
, it doesn't matter who wrote it as long as the airline manufacturer has validated the code and stands behind it, which they already have to do even if they purchased the code elsewhere instead of writing it all themselves.
I don't see a sharp line between benefiting their competitors by contributing code, and benefiting their competitors by giving feedback to help improve a free framework, either - perhaps it's a matter of degrees. -- LukeGorrie
My point is some companies are building real-world applications by layering on top of (non-copyleft) free software, and licensing their highly specialized capability differently than the generic foundations they build upon. They help themselves by distinguishing between what is generic and what is specific, and agreeing to collaborate with any parties on the generic part. I know this is flame-bait in the highly politicized (religionized?) world of free software. But I see it is as nothing more than the tried-and-true approach of scientific industry, where companies publicly share results at the same time they privately leverage them for revenue. -- ScottJohnston
I think that this is a good point. In the case where a company doesn't mind contributing to a free generic library, but wants to link it with their own proprietary code, it's just as you say. Under the GPL, they'd have to pass, but under BSD, LGPL, ... they could use it to their advantage and also help others. The GPL is suitable for a closely related case though: when the generic software is a tool they use (e.g emacs or gdb), and not something that they 'link' their code with.
I remain unconvinced that the LGPL gives sufficient freedom to leverage a library in a commercial product. Maybe I'm misunderstanding it, but the LGPL requires that a user of my product be able to replace the LGPL'ed components with later versions. This implies that either I use the LGPL'ed components as a shared library (a DLL on Windows), or distribute my code as object files that can be relinked. I'm uneasy about distributing the object files, and most LGPL'ed projects aren't very easy to get in shared library form, at least on Windows. I don't at the moment see a way to resolve these tensions.
I agree that the LGPL isn't completely trouble-free when it comes to leveraging those libraries for commercial efforts. For one thing, it encourages a binary-only mentality that can be counter-productive for C++ programming. It is fine to slip in a different version of a C library as allowed by the LGPL, but an evolved C++ library is necessarily going to have new virtual methods and member variables that require recompilation of any source that uses those classes. So there is no value in protecting the "freedom" to substitute C++ libraries underneath a binary-only application. -- ScottJohnston
The LGPL works with C, but it doesn't work with C++?
Doesn't that imply that the "trouble" is caused by C++, not the LGPL?
may help a little.
Reasons to free the software, from TheMagicCauldron
- Loss-Leader/Market Positioner
- Widget Frosting
- Give Away the Recipe, Open A Restaurant
- Free the Future, Sell the Present
- Free the Software, Sell the Brand
- Free the Software, Sell the Content
Eric does not argue that all software should be open source. Instead, he covers some of the forces that might help you to decide when having it be open source would benefit you more than having it be closed.
Eric didn't quite capture my business model, of developing custom vertical applications on top of open-source application frameworks. -- ScottJohnston