Wednesday, January 14, 2009

Qt switch to LGPL

Qt switch to LGPL has triggered a thread with subject "Bad thing for wxWidgets Qt will be in LGPL" on wx-users mailing list which clearly implies that this is indeed a bad thing. But is it one really?

First, let's not be egoistic: even if this were bad for wx, it's surely excellent news for just about everybody [else]. I do applaud Nokia for doing the right thing and I'm personally very glad that even people in big multinational companies such as Nokia understand the benefits of open source.

Second, this certainly will bring more users to Qt. But I'm not sure it's going to happen at the expense of wxWidgets users. I rather think more people thinking to use Java or C# or C (with GTK) could reconsider their choice and use C++ with Qt. The reason for this cautious optimism is that the cost of Qt has never been the only reason for choosing wxWidgets over it. Of course, this hasn't ever been important for GPL applications anyhow. And, surprisingly, it often wasn't very important for commercial applications neither as companies often choose to pay for wxWidgets support anyhow even if the library itself is free. So I think that relatively few of people who had chosen wxWidgets in the past would change their mind now, as the other two main reasons for this choice -- the use of native widgets by wxWidgets and the absence of any preprocessor -- remain as valid as ever.

Finally, if more people use C++ for developing cross-platform applications this is good for wxWidgets even if they use Qt because the whole idea of writing portable programs is unfortunately still not as entrenched in mass conscience as it should be in our opinion. So this could yet turn out to be positive for wxWidgets, although more likely it's not going to change much for us one way or the other.

But this remains great news for the open source community (of which we are part) so I just can't bring myself to regret it. I can dream about wxTNG which would combine the best features of wx and Qt but this still remains a dream for now...

13 comments:

Unknown said...

Ya, as nice as Qt is, the preprocessor has always been a bit of an odditity/annoyance, but it's also REALLY nice to have options and I too applaud such a wonderful move.

Plus, a little competition never hurt anyone (and it usually only serves to make things better all around).

Anonymous said...

I agree I don't like the moc preprocessor, and I'm not fond of having Q_OBJECT at the beginning of each class either. I really don't like the Python bindings however, which still require knowing the C++ names for connecting event signals to the slots.

Anonymous said...

QT supports mobile linux, win mobile and now symbian... wx supports linux (in a really buggy way...) just windows mobile... In this area I think wx will die... :(

Anonymous said...

is there any hope for a qt interface in wx?

VZ said...

I don't think there is anything preventing anybody from writing wxQt now. Many people wanted to do it in the past only to give up because of the licensing problems -- but now this shouldn't matter. However none of wx core developers has any plans to do it AFAIK: even if I see value of such port (for KDE desktops and Symbian phones), we just have too many things to do already.

Anonymous said...

i like wxWidgets,it will always be the best choice for the gui devlepment.

pilgarlic said...

the tech that wxWidgets use to deal with msg and otherthing is the best way that use the c++ tech. there is no other method can do better than wxWidgets. once a sagacity man meet wxWidgets, he will never try to use another solution.

Anonymous said...

Does not QT use some sort of emulation on MAC/Linux? This would seem to make wxWidgets a slighly more native looking app no?

Anonymous said...

Hi there! Nothing beats wxWidgets around -- let's admit it. I recently hooked to wxWidgets when I wanted to develop an app in C++. I wanted the rapid development of controls like VB, but could not get the library so friendly like wxWidgets. In fact, it is unfair to compare QT and wxWidgets: wxWidgets is a complete platform on its own, while QT is a pretender. Take an example of how I found it useful in C++, Python, C# plus a lot of other programming languages. QT is only good for C++, it does not encourage you to plug in code from other languages. Long live wxWidgets! Long live its developers, Smart, Zietline, Robling, and company! Right now I am eagerly learning this platform so that by September I will be part of the development team!

Anonymous said...

...big multinational companies such as Nokia understand the benefits of open source.
But we, people in Finland, we dont like that Nokia exist in Finland. We would rather be independent to decide what is writen in the law.
Nowadays its Nokia who decides, parliament is just a rubber stamp.
It just is not right that a private company has right to spy citizens.
So, I prefer wxWidgets.

Anonymous said...

My program currently uses SDL (similar to DirectX, but cross platform) and have a self implemented window system that paints the windows to the SDL window. This gives me total control of everything but comes with the price of having to implement all widgets from scratch.

I was today looking for a window toolkit that makes "normal" GUIs with possibility to embed OpenGL and/or 2D graphics. I have tried both QT and wxWidgets. QT Designer seams a bit unfinished and compiling a QT project with MSVC 2005 express is not supported it seams. But another important factor for wxWidgets is the much nicer community atmosphere and good documentation.

Even if QT now is available as LGPL it still has this commercial feeling. wxWidgets I already feel like a project I could contribute code to within some time when I've learned more about it.

Anonymous said...

I believe that Nokia's reason for buying Qt is a strategy for porting applications to (Nokias) mobile phones. As such, I suspect that Qt will be more of a mobile platform in the future.

That said: it's a great development considering that sample code sometimes require Qt.

Anonymous said...

Qt sucks! I would like to tell you more details why it sucks, but I can't! I've downloaded their SDK. After a significant time taken to download and waiting for the installer to intialize itself, it just said it doesn't work on Windows 2000. Those guys from Finland didn't even bothered to state this on their download page.