Where X and Y could be any of the following:
X=AGPLv3, Y=be sure nobody will hide it behind a webserver and not
share their changes
X=GPLv3, Y=be sure that people will share their changes without
TiVoization and patent risks
X=GPLv2, Y=be sure that people will share their changes (and keep
Apple in the game)
X=BSD, Y=be sure to involve as many companies as possible
(and I'm sure many others)
- The freedom to run the program for any purpose.
- The freedom to study how the program works, and change it to make it
do what you wish.
- The freedom to redistribute copies so you can help your neighbor.
- The freedom to improve the program, and release your improvements
(and modified versions in general) to the public, so that the whole
community benefits.
However, there are some practical and philosophical differences, which
can be summarized in "how much the freedom should be mandatory". In a
nutshell, the answer of this question define the license of choice
(there are some smaller details). At one edge of the spectrum, there
is the AGPLv3, which states "freedom must be as mandatory as
possible". In fact, AGPLv3-licensed code mandates that every
modification to the code must be made available under the very same
license to anybody who uses the software, even if they use it on a
remote machine, not on their own. At the other edge of the spectrum,
there is the new BSD license, which does not mandate anything. In
fact, a BSD-licensed code can be made proprietary! BSD license
proponents like this fifth freedom: "The freedom to make modifications
and keep them proprietary". So in this sense the BSD is "more free"
than the various GPLs or other copylefted licenses. The practical
differences of this philosophical view of should-freedom-be-mandatory
is the way in which companies may engage if free software. Many
companies don't like too much "mandatory freedom, so usually people
who want to engage companies prefer BSD,
We like copyleft, and that drove our license choice. So are we keeping
companies out of proteus and slipstream? We don't think so, and we
believe it doesn't depend on the license.
In fact, there is an important point here: proteus has two sides. One
side is the specifications of the language. The other side is its
implementation. At the time of this writing, things are still a little
fluid and they are still influencing each other. At one point in
future, specifications will be kind-of-set-in-stone (we will likely
have further evolutions, but from that point probably we will require
backwards compatibility). So, other implementations may appear. A
company who would like to run proteus, but doesn't like our license,
can write its own code under the license it likes, possibly even
proprietary. The license of our choice, in fact, applies only to our
own (reference) implementation. I don't think a license can be applied
to specifications, only patents (but beware, IANAL!) and even if it
can, I don't think we plan to (Bruce, please correct me if I'm wrong)