Monday, January 28, 2008


Say goodbye to the former Qt and hello to MiniQt?



So everyone knows that Nokia is looking to buy Trolltech, the company behind Qt right? If not, read the press release.
Trolltech also has up a list of what this means for everyone, as well as a letter to the open source community (rename it to .pdf).

Now after hearing all that, you're probably running in one of two directions. Either thinking that "oh no, my Qt has been taken over by an evil organization and it'll be destroyed!", or that "KDE and Trolltech have an agreement over Qt so we're safe!". The interesting point is that both are true.

What? Both are true?!?! How can that be?

First, a little background. Qt which is the foundation of KDE, and what all the pillars of KDE stand on, is pretty much irreplaceable. Not wanting to ever get bitten by developing such a massive project on such a foundation controlled by a company, KDE and Trolltech signed an agreement, and formed a new group called the "KDE Free Qt Foundation".

To put it in their own words:

To fulfill the purpose of the Foundation, an agreement between Trolltech and the Foundation was made. This gives the Foundation the right to release Qt under a BSD-style license in case Trolltech doesn't continue the development of the Qt Free Edition for any reason including, but not limited to, a buy-out of Trolltech, a merger or bankruptcy.


As for the latest agreement, you can find links to it on their site, but the primary part to worry about is this. Let me summarize. If 12 months have passed without seeing an open source release of Qt, or the open source version falls behind the closed source one in that period of time, or the board as a whole (which half is composed of by Trolltech) agrees to release Qt as BSD, then it shall take the latest open source version of Qt, and open source it under the BSD license as they will become legally able to.

Now one must wonder why is that important? The current release is under GPL2/3 anyway, why do we need to have it stuck under BSD? We can always continue using the latest release as GPL2/3.

The great thing about Qt is that they have a corporation backing it, making sure the toolkit is excellent. They pay employees to do all the dirty and annoying work in the library too. They also ensure that it remains portable on a large variety of hardware. This kind of heavy work is not something the open source community is usually able to coordinate too well. There are very few large open source projects that are fully portable, run on greatly varied setups, and cover areas that most people don't want to program for. For example, Ubuntu made a release a while back where a significant portion of printer support was broken, since it's not fun to test or fix, there's nothing really challenging about printer support (except maybe getting those annoying devices to work in the first place, and not paper jamming), and it's not cost effective to make sure it continues to work, and the "save the universe, time, and pluto" groups wouldn't like you using all that paper either.

Also, Qt is currently able to be gotten either via a proprietary license or under the GPL (with exceptions too!), so companies producing closed source software, and open source nutjobs can play on equal footing. That means when a company hires a developer to develop with Qt, it's the same Qt, so s/he can later go home and use his or her knowledge to write a cool new open source application involving giraffes e-mailing pictures of people with dyed hair around, or whatever s/he might fancy. It also means that open source developers who want to create their own startup company, can use the knowledge they already gathered to write terrific applications, since they can just go and buy some licenses, and write their new apps.

The "Poison Pill" that they signed on would put Qt under BSD, which would continue to allow the companies, and the communities to continue to work with the same software, in the event that Trolltech became evil (or by extension of being bought). It could also mean that a company could throw developers at Qt, and use stuff privately in their own products too, and not be forced to not be allowed to do anything with their own changes, since it's virally all GPL.


This all falls apart however when one considers precisely what is in the agreement. IFF ('If and only if', for those of you who missed school that day), Trolltech or the new company fails to deliver an open source version or equal to the version offered proprietarily for an extended period of time, they can BSD what they have. This is great as long as the evil company doesn't continue to offer something which is worthless to the community but not so to the companies.

To quote Nokia:

We will continue to actively develop Qt and Qtopia. We also want to underline that we will continue to support the open source community by continuing to release these technologies under the GPL

Lets step back and think for a moment what Nokia is interested in. Cell Phones, right? Meaning only Qtopia, Qt in itself is worthless to them. Also consider what Trolltech's primary business is. They advertise these applications as the coolest using Qt. How many of those applications are done by those who buy a license? Now once you figured that out, how many of those have anything other than a Windows build? Many companies use Qt, not for the portability, but because of how easy it is. Here, read what Adobe, a company who has never produced Linux software, has to say. Since companies use it for the ease of use, and speed of development time, and don't really care if it works on Linux or not, since we all know that those Linux guys don't buy anything anyway, why should Nokia bother continuing to develop the X11 port of Qt? It's just a waste of time for any normal business model.

So Nokia could continue to develop Qt for their cellphones, and for customers such as Adobe, and even release Windows only, or perhaps even Windows and Mac OS X builds of Qt both proprietary and under the GPL, but none for X11. And what can the "KDE Free Qt Foundation" do about it anyway? Their agreement is worthless as there can still be an open source version which won't be useful to most of their developers. And who in the world are they going to complain to about 'intent' of the agreement? KDE runs on Windows and Mac OS X now, right? Their petty foundation can continue making their Kool Desktop Environment as long as it's done on Windows right? No one is stopping them.

At this point, the companies and the communities can be fractured, and even worse if the library is very different one platform to the next, it will become completely worthless for the sake of portability. Having an unfunded fork off of an older Qt won't do as well either, just look at what an awful mess the crippled broken GTK is, even with it being LGPL so companies can use it - if they were drugged up enough to.

On the other hand, Qtopia does run on Linux, but isn't protected by the KDE foundation either. If Nokia for whatever reason continued releasing Qtopia under open source, and the X11 port died, but cool new features of equal footing came to the Windows/OS X/Qtopia ports, perhaps the community might get some movement in the direction of moving away from the horrible X11. Bleh, who am I kidding, the nightmare that is X11 is here to stay, right?

6 comments:

insane coder said...

Okay, I got some feedback on this from several people.

It seems I was wrong on one of my points, the agreement between Trolltech and KDE is solely regarding Qt on X11. So Nokia will be forced into the 'Poison Pill' if they drop X11.

However, the other points still stand. If they drop Mac OS X for example, the KDE Free Qt Foundation can't do anything, even though they now have a KDE port to Mac OS X. They also can't prevent Qt on Windows becoming different than Qt on X11, and etc...

Furthermore, there is no protection whatsoever over Qtopia.

bruce89 said...

Strangely enough, Nokia was "drunk enough" to use GTK+ in its popular Maemo platform.

insane coder said...

Novell was drunk enough too, doesn't say anything either way.

Many companies have idiots in them making decisions. I for example work for a company which insists using IIS instead of Apache for their public servers, since they believe that IIS supports more concurrent users at once.

Dan said...

I am scared for the future of Qt's portability, and sincerely hope that Nokia takes the path of keeping the practices upon which Qt was built, rather than using it for their own needs. That being said, I think that, as a company with a larger financial backing, they have the potential to throw even more developers at Qt, and quite possibly develop future versions far superior even than the upcoming 4.4. I think we should remember that, while a lot of the "evil" major companies out there have tainted our outlook on the corporate mindset (I'm lookin' at you, Microsoft), there are still some that will provide useful, high-end products for everyone, rather than refraining to developing something just because it doesn't help them directly. Let's all just hope that Nokia is of the latter of those.

Insane coder, as always, say hi to the dyed hair and little giraffelings for me.

naja said...

Hmm, what can we say, at first Qt is like the most amazing framework you've ever seen, and you think, sigh, finally, Im home... No more java, no more .net framework and all the other BS we 've seen...

Then you notice that they actually have commercial licenses too, and that you can only use the opensource version for opensource apps...hmm aren't companies always a little scary?

Then you notice that some parts of Qt are only available to the paying customer, like QSingleApplication class... hmm, that doesn't sound much like a genuine --we like opensource, but we need some funds to do good development and support-- tactic very much anymore at all...
Now they are being bought out by a mega multinational, we all now what they care about...

I dread the day we will have to start the work for a real, permanent, open source, cross platform development framework all over again, because it will no longer be opensource, like some other projects in the past...

insane coder said...

Just wanted to update on this.

Qt is now LGPL'd which I guess is a good thing. They now also opened up Qt more to the community, also a good thing.

But it seems they dropped Qtopia, and they didn't loosen up the license on it first.