

The GPL Sucks - blackhole
http://blackhole0173.blogspot.com/2011/06/gpl-sucks.html

======
nbpoole
" _When I release an open-source program, I want to guarantee something very
simple. The program and its source code can be distributed and used by anyone
for any purpose, and all modifications to the program must be released as
open-source under these same terms. I want to guarantee that the program and
any improvements made on it are available to anyone, proprietary or not,
forever._ "

Those terms are contradictory.

On the one hand, you want to guarantee "The program and its source code can be
distributed and used by anyone for any purpose." That seems to mesh with the
BSD license in a straightforward way: you want people to be free to use the
code in proprietary or open source applications. On the other hand, you also
"want to guarantee that the program and any improvements made on it are
available to anyone, proprietary or not, forever." That requirement is much
closer to the GPL (or even the AGPL): if someone distributes a modified
version of the software, you want the source of those modifications to be
released so other people can modify their application in the same way.
Unfortunately, that requirement is also completely at odds with the BSD
license you champion in your blog post; under the BSD license, I'm free to
modify your application and distribute a modified binary without ever
releasing the source. There's no guarantee that modifications are ever made
available to anyone.

A lot of the rest of the post appears to be hyperbolic anti-GPL rhetoric, not
backed by any facts or examples. " _A company has zero motivation to help
improve GPL'd software because they can't benefit from their improvements_ "
for instance. RedHat or Canonical serve as decent counter-examples.

There are many legitimate reasons to disagree with the GPL's philosophy: this
is not one of them.

~~~
blackhole
I don't know why you say I champion the BSD license, I only used it as an
example. I have never used the BSD license, for the very reasons you just
stated - it is at odds with what I want the program's code to be used for.

These terms are not contradictory. Anyone can use and distribute the code for
whatever purpose, and any changes made to the code must be made available to
the open source community, just like the GPL, except now only _that part of
the program_ must be released as source code, and the unrelated portions of
the program are free to remain proprietary. This isn't incompatible, and it
isn't the GPL.

~~~
wwrap
There's this magical license you may not have heard of that does just that
called the LGPL. The LGPL's entire existence is about compromise.

Why are you intentionally ignoring it?

~~~
corysama
LGPL is a nice compromise. However, it's my understanding that LGPL requires
that the user must be able to substitute alternative implementations (swap in
custom DLLs). That simply isn't an option for me (console games, mobile apps).
There have been many situations where I'd be happy to use OS code, fix bugs
and publish my changes. But, I'm not willing or able to OS my proprietary
code. LGPL won't let me do that because RMS's vision is not compatible with my
reality.

------
orangecat
So if I understand correctly, what you want is a "super-viral" version of the
LGPL under which modifications must be released under the same super-viral
LGPL, and specifically not the GPL?

~~~
blackhole
No, because the LGPL prevents using the actual code in your program. The idea
is to have a license that requires only the program source in question to be
released when it is modified, and for it to be released under the same
license. In this way, the program and all its modifications must remain usable
by both open-source and proprietary programs. The LGPL permits converting code
to GPL, which deliberately prevents modifications from being used by
proprietary programs. Even when this is removed, it still specifically
prohibits any sort of static linking or usage of any of its code inside a
proprietary application. One has to use a dynamic DLL link, which flat out
doesn't work for any template-based or inline'd C++ functions and is a very
confusing legal mess.

