[Mono-list] I give up

Jonathan Pryor jonpryor@vt.edu
Thu, 08 Apr 2004 07:18:38 -0400


On Thu, 2004-04-08 at 02:44, Marcus wrote:
> On Thursday 08 April 2004 1:31 am, Michael J. Ryan wrote:
> > Also have to mention that GTK# can be used on the windows
> > side.

You have things slightly confused.

> First Qt was "bad" because it wasn't GPL.

It wasn't bad because it wasn't GPL.  It was bad because it wasn't GPL
*compatible*.  There's a big difference.  LGPL, BSD without advertising
clause, MIT/X11...  All of these are GPL-compatible.  The original Qt
license and the QPL were not.

This meant that the original KDE could not have binaries distributed
legally, unless the KDE authors wrote an exception into their license
for the Qt libraries (which many didn't).  It also meant that any
non-KDE GPL code couldn't be used in KDE apps because the non-KDE GPL
code wouldn't have the Qt exception in its license (such as readline,
though why you'd want to use readline in a KDE app is beyond me, it's
just an example of an existing GPL library).

> Now it's "bad" because it's GPL. I 
> don't get it.

Now it's "bad" for proprietary vendors, or anyone who wants to consider
writing proprietary code.  KDE and TrollTech don't consider this to be a
"bad" thing.  Many others do.

One of the bigger complaints I've heard about the GPL license and the
TrollTech proprietary license isn't so much the cost of the proprietary
license (> $1500/developer, IIRC), it's the initial development
requirement.  More specifically, the licenses are written such that if
you want to even *consider* using the non-GPL license, you must *start*
with the non-GPL license.  You can't just develop your app internally,
never distributing it, get a feel for Qt and how it works, and then
decide "yes, this is worth paying TrollTech" and make it proprietary.

Of course, there's always the question of how to actually *enforce* that
requirement...  But it irks people regardless, because they can't
migrate from a GPL-compatible license to a proprietary license while
using Qt.

 - Jon