Open-source Licensing: BSD or GPL? 631
BSDForums.org writes "Mark Brewer of Covalent Technologies argues BSD is better for the enterprise. As open source licensing models, both the Berkeley Software Distribution license and the General Public License have advantages and disadvantages. But in the end, the BSD offers more benefits to enterprise customers. Matt Asay of Novell makes the case for GPL. He says, no one open source license is ideal in every circumstance. Different licenses serve different ends. Berkeley Software Distribution-style licenses have been used to govern the development of exceptional open source projects such as Apache. Clearly, BSD has its strengths. However, all things being equal, he prefers the General Public License (GPL ). The GPL is one of the most exciting, innovative capitalist tools ever created. The GPL breaks down walls between vendors and customers while enabling strong competitive differentiation.
Which is a better licensing model for open-source applications: BSD or GPL? What do you think?"
Re:And he is right too. (Score:2, Informative)
All depends on what you want. (Score:5, Informative)
The purpose of the GPL is to ensure that the code will always be open.
The purpose of the BSD license is to ensure the authors are given proper credit, not necessarily to keep the code open.
BTW (Score:4, Informative)
This is incorrect. The GPL does not require that derivitive works be GPLed. The key is that the restrictions placed on derivitive works (you must give up the source code and exclusive rights to redistribution) makes the resulting code effectively like the GPL. You can still use some other license for the derivitive code, and once you stop redistributing you can stop giving out the source code. Plus, nothing prevents you (as the copyright holder) from reusing the source that is yours in a non-GPL-derived product.
Clear as mud? Good.
Re:Danger Will Robinson, Danger! (Score:2, Informative)
My experiences of an open source project release (Score:5, Informative)
software. We had done very well in the run-up to Y2K - lots of people wanted
to perform regression testing on their database applications. We were a small
company - much smaller than e.g. Rational.com (Now borged by IBM), but felt
that we had a good product. The management decided that the best way to help convince
customers to buy our product, in the face of arguments that Cyrano might not
be around in a couple of years time, was to open source the code. In these
circumstances, the obvious license to choose is the GPL: it ensures that
the company benefits from any changes anyone else makes.
I spent a very long time going through the files, adding the appropriate
header comments, and removing any comments naming individuals, especially
individuals who were no longer with the company, before setting up the
project at SourceForge: http://opensta.sourceforge.net/ [sourceforge.net]. There were
also OpenSTA.com and
I believe that several ex-employees, made redundant after the company went
tits-up, are now self-employed and using the application.
At the very least, open-sourcing the project meant that the codebase was not
lost when the company folded.
Re:BTW (Score:4, Informative)
Unless I've misunderstood you, you've got the facts wrong yourself. You claim: The GPL does not require that derivitive works be GPLed. and You can still use some other license for the derivitive code
If you distribute your derivative work, b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. [section 2b of the GPL [gnu.org]]
Comment removed (Score:4, Informative)
Re:Trolltech's stance is worse (Score:3, Informative)
I'm not a lawyer, but both those claims seem utterly unenforcable to me.
Re:Danger Will Robinson, Danger! (Score:1, Informative)
But out of curiosity, have you actually made fixes to its code you aren't releasing? Very few users touch the code unless they are doing something very out of the ordinary, and for most everyday use, practically speaking there are no significant bugs that ordinary users have to fix by patching it themselves.
Re:GPL helps programmers get paid (Score:5, Informative)
That really depends on whether or not you just accept random patches, or if you're planning to license the code commercially, whether you require copyright assignment to you before applying those patches.
Re:Danger Will Robinson, Danger! (Score:2, Informative)
Re:Danger Will Robinson, Danger! (Score:3, Informative)
What was your point again?
Re:Danger Will Robinson, Danger! (Score:5, Informative)
GPL is extremely hard to use as part of a commercial project, as it forces GPL on everything that links to it. That's fine if that's what the author wanted to achieve.. I do remember in my earlier years as a programmer GPLing everything without thinking though and it wouldn't surprise me if that still happened.
Re:Danger Will Robinson, Danger! (Score:4, Informative)
The FSF (the people who wrote the GPL) don't agree with you on that matter.
How do you think Google gets away with modifying their software and deploying it on servers world-wide?
Some quotes from www.gnu.org from the GPL FAQ
Is making and using multiple copies within one organization or company "distribution"?
No, in that case the organization is just making the copies for itself. As a consequence, a company or other organization can develop a modified version and install that version through its own facilities, without giving the staff permission to release that modified version to outsiders.
Note : Notice the use of the word facilities, not facility.
However, when the organization transfers copies to other organizations or individuals, that is distribution. In particular, providing copies to contractors for use off-site is distribution.
If someone steals a CD containing a version of a GPL-covered program, does the GPL give him the right to redistribute that version?
If the version has been released elsewhere, then the thief probably does have the right to make copies and redistribute them under the GPL, but if he is imprisoned for stealing the CD he may have to wait until his release before doing so.
If the version in question is unpublished and considered by a company to be its trade secret, then publishing it may be a violation of trade secret law, depending on other circumstances. The GPL does not change that. If the company tried to release its version and still treat it as a trade secret, that would violate the GPL, but if the company hasn't released this version, no such violation has occurred.
I'm sorry, but I'm going to have to trust the FSF and the hundreds of other people who say what I say, as opposed to the handful who disagree, none of which have anything to do with the FSF
Both have their places (Score:3, Informative)
One of our core products is the YAZ toolkit for Z39.50 communications. That is under a BSD-style license, since it is in our interest to increase the use of Z39.50, and with it our potential market. In that we have succeeded well, we guess that about half of world's Z39.50 products are based on our tools, and we have made ourselves a name in the community of Z39.50 users.
Another core product, the Zebra search engine is licensed under GPL, because we don't mind small businesses and universities playing with it, but we don't want to see it absorbed into a competing product. We also sell commercial licenses for it, should someone want one.
Of course, we also do some custom work that remains closed source.
The difference for us is not the amount of patches we receive - that is about equal, and small in any case - but the different licenses serve different purposes.
Re:Danger Will Robinson, Danger! (Score:1, Informative)
Well, the LGPL makes little sense in the case of an application, so it is not really "in between" the two. A closer approximation of "in between" GPL and BSD is probably the Artistic license [opensource.org].* On the other hand, some people will probably state the the Mozilla Public License [opensource.org] is more in the middle.**
On the other hand, nevermind. A flame war pitting GPL vs. BSD is bad enough, but a flame war picking a more centrist open source license is probably worse.
* The Artistic license allows modified versions to be provided with documentation along with the standard version.
** The MPL only requires source code to be provided for one year.
Re:Danger Will Robinson, Danger! (Score:4, Informative)
It would appear to me that they're not too hurt people are doing this. In fact, the choice of the BSD license in this case seems pretty well thought out, in line with that one aim of using the software however you so choose.
Re:Flamefest positions (Score:3, Informative)
The whitespace grows on you
Once you realize how much block-close-character noise it saves you (because you do indent anyway), you love it.
The colons are openers of nested code. They serve important purposes:
Also, in a 4 line program, 2 colons doesn't seem like a "lot" to me, and they contribute greatly to readability.
You cannot undefine primative procedures like car/cdr to mean something else. But there is nothing preventing you from defining my:car and handling any combination of arguments and types you want. This is a lot nicer than C++ where you have to use clunky templates. In Scheme, procedures that smoothly handle multiple types and numbers of arguments are built right in.
Well, this is a problem. In Python, almost all access to objects is done through methods of the object. When converting the object to a string in order to print it, its __str__ method is called. When trying to evaluate it as True/False for a conditional, its __nonzero__ method is called. When an attribute in the object is looked up, __getiter__ is called. This allows me to "hook" those operations, and manipulate the way the object is accessed.
This is a very powerful feature, that enabled me to write PyInvoke [sf.net], for example.
I can create Proxy objects that redirect almost all operations done with them to a server. With Scheme, I would not be able to implement this, because I couldn't Proxy a list object, as a (car proxy) access would not be interceptable in order to forward to a server.
This means transparent RPC is possible in Python and not in Scheme.
Re:Danger Will Robinson, Danger! (Score:2, Informative)