Qt Becomes LGPL
Aequo writes "Qt, the highly polished, well documented, modern GUI toolkit owned by Nokia, will be available under the LGPL starting with version 4.5! It was previously only mainly available under the GPL and a commercial license. Selling licenses was an important part of Qt under Trolltech as it was the company's main source of income, but Trolltech is a fruit-fly compared to Nokia, who want to encourage and stimulate the use of Qt Everywhere [PDF]. This is fantastic news for all commercial developers looking to create cross-platform applications without the need to buy a $4950 multi-platform license per developer."
Ars Technica has a good report on this development: http://arstechnica.com/news.ars/post/20090114-nokia-qt-lgpl-switch-huge-win-for-cross-platform-development.html
Ummm...I think Nokia, who now owns Trolltech, will be paying their bills.
GTK+ is object oriented C. (Yes - object oriented C.) It relies on a ton of crazy libraries to work. It's only cross-platform if you mean "Windows and Linux" and even there "cross-platform" is a giant stretch.
Versus Qt, which is C++, has a much cleaner set of interfaces, and is really "cross-platform" on Windows, Linux, and Mac OS X.
The only reason I ever used GTK+ over Qt was due to licensing concerns. (And not just for closed software, also due to GPL/Apache licensing incompatibilities.)
So, yes, Qt is much better documented and much cleaner than GTK+.
Qt Designer is part of the core package, and is excellent.
The Matrix is going down for reboot now! Stopping reality: OK. The system is halted.
Could someone summarise the difference between the LGPL and the GPL? Thanks.
LGPL allows closed-source programs to link with the library in question.
Actually, thanks to http://doc.trolltech.com/4.4/license-gpl-exceptions.html, there were no licensing incompatibilities with Qt and the Apache license.
I have a Motorola Z6 that contains QT binaries (most likely QT embedded) on it so they are already using it on their linux phones at least.
If you have a piece of GPL code in your program, all of the program must be GPL. LGPL only applies to the LGPL code and any changes you make to it (your original code can be under any license)
"I think an etch-a-sketch with an ethernet port would beat IE7 in web standards compliance."
Nothing human is perfect. However, having used GTK, wxWidgets, XForms, V, Motif, MFC, Borland VCL, Visual Basic, Swing, AWT, GNUStep and Qt, I have to say that Qt beats the others consistently in look & feel, ease of development, clarity of documentation, orthogonality of API and breadth of features. Not to mention cross-platformity :-) Plus, the tools, like Designer, Linguist, Creator and Assistant are top-notch.
Qt has a better set of widgets, at least for some applications. I have a friend who works for a major financial services company, which standardized on GTK only to discover that certain table related widgets were just not available, but were available in Qt.
I am told, though I have not tried it, that it is harder to develop multithreaded programs in GTK than in Qt. This matters a lot more than people like to think; how many times have you seen a UI not getting updated because of some background operation, and then had some uninformed user think that the program was freezing or crashing?
Finally, while both are object oriented, GTK is written entirely in C. Object oriented programming in C is pretty harsh, and the only other option you really have is to use the Python binding, which introduces a whole new set of issues. Qt is a C++ toolkit, which makes for much cleaner code when it comes to object orientedness. They did extend C++ somewhat with MOC, but that just introduces some new keywords that fit in very well with the general structure of C++.
Palm trees and 8
One year after Nokia bought Trolltech, they've released Qt as LGPL. This positions Qt and KDE in an excellent position for cross-platform application development for FOSS *and* commercial projects. KDE libraries were already licensed under LGPL. This means the entire stack is now LGPL.
In the mean-time, Qt Creator, an IDE for developing Qt applications, has been announced. This will be all you need to write cross-platform applications with Qt.
Qt Jambi (java bindings for Qt) will also available under LGPL. Qyoto (mono bindings) and the other bindings (Perl, Python, Ruby) will be able to make releases under LGPL now.
These are exciting times!
DNA is the ultimate spaghetti code.
Should be out before summer, on #qt people are saying March.
Do you changes clothes while making the "chee-chee-cha-cha-choh" transformation sound?
Qt beats wxWidgets by a wide margin. The API is much cleaner, documentation is a lot better, and wxWidgets has nothing like QGraphicsView (actually, *no* toolkit out there has anything like this).
You are right that Qt uses very umm... baroque C++, but the fact is that it is a very good toolkit, the best opensource one out there. Using new features don't guarantee a top result, and vice versa.
This sig does not contain any SCO code.
There is also now Qt Creator which show some promise as a cross-platform IDE.
The ratio of people to cake is too big
Then you've not been listening. Many don't like the noteworthy long start up times of Qt apps compared to say Gtk.
Long start-up times have been fixed ever since Qt4 was released quite a while ago.
Many don't like the need for obtuse tools like SIP.
I've never used SIP myself, but it's that tool for generating bindings for other languages, right? So that's only required if you're generating your own bindings. And even then I fail to see how that's worse than writing the bindings by hand...
Um, wxWidgets has been around for many years, and it can be used to write decent-looking GUIs for OS X, Windows, Linux, and many more operating systems.
While I think Qt's API is a bit nicer, it was already pretty easy to make cross-platform GUIs.
Karma: Terrifying (mostly affected by atrocities you've committed)
Maybe nothing? They can stay GPL/Commercial just fine.
You could start with making a Qt version of The GIMP.
:-)
A lot of people don't know this, but GTK stands for 'The GIMP Toolkit', and Gnome used this toolkit. Not the other way around!
http://en.wikipedia.org/wiki/Gtk
Dependency hell? =>
Try comparing KDE 3.5 to KDE 4.2... no, seriously, if you liked KDE, give it another try. KDE has come a long way from 4.0 to 4.2. Many things are much more polished and the whole experience is now very nice (obviously, YMMV). The only thing I am still missing is the printing infrastructure of KDE 3.5.
Presumably your "arguments" don't include the vast developer and language support for Gtk?
Also we're using and compiling Gtk on Windows just fine. It even has nice native look and feel.
libguestfs - tools for accessing and modifying virtual machine disk images
If I recall, Gnome was created because people didn't feel the Qt/KDE license was "Free" enough.
It wasn't that. It was that the Q public license was incompatible with the GPL. QT was Q public and KDE was GPL. KDE is clearly a derived work of the Q public license. That means as far as Debian legal was concerned redistribution of KDE was a license violation.
TrollTech handled this by licensing QT under the GPL (they actually first went through the QPL but that didn't solve the problem). That fixed the legal problems but it meant that any and KDE app had to be GPLed because the userspace exemption (as per Linux kernel) wasn't there. Now KDElib is LGPL which means with QT being LGPL you don't uneed the exemption.
Just to clarify for anyone new to Qt...
Qt Designer and Qt Creator are two entirely different things.
Qt Designed is drag-n-drop interactive GUI design tool that lets you design the GUI portion if aplication windows, dialogs, etc without coding. You just drag widgets and layout managers off a menu and drop them into the interface your building. It's an awesome tool. Your interface gets saved as a ".ui" file from which Qt automatically generates the corresponding C++ code as clean C++ classes. To add callback/etc behavior, or to further customize the GUI, you just subclass the generated classes and take it from there. It's done very well so that almost always you can further change the user interface using Qt Designer without affecting the subclasses you've added. Qt Designer has been there since early on and just keeps getting better and more powerful.
Qt also includes a tool "qmake" that makes building Qt apps ridiculously easy - qmake takes a high level ".pro" file that lists the various types of file making up your project (source files, header files, Qt designer .ui files, resource files, etc) and what type of target you're building (application, DLL, etc), and from the .pro file generates a Makefile that you then run using your normal make program (e.g. GNU make, or mingw32-make under MinGW).
Qt Creator is an IDE for development of Qt based applications, and seems to deliver the expected functionality of an IDE. It's pretty much brand new, and I havn't personally used it (nor intend to since I don't find IDEs to help my productivity).
Nokia never insisted anything of the sort.
While they may have opposed the HTML 5 standard, their opposition is based upon their relationship with Webkit (recall that Nokia is one of the big players backing Webkit ... in addition to the fact that Qt now bundles a derivative of it).
When Nokia purchased Trolltech, they promised not to change much. That's the opposite of what you just claimed. Those of us heavily entrenched in the Qt world knew that there was likely to be a shift in priorities ... the profitability of Trolltech was measured in digits that were not significant to a massive company like Nokia.
They bought Trolltech for the IP rights on the phone operating system Qtopia (now Qt Extended) because it enabled them to get back into the smartphone game (which they've been losing to Apple, RIM, and soon Google). The purchase was not for direct Qt profitability.
Disclaimer: I work for the biggest Qt shop in North America, www.ics.com (and we're already under heavy load, so that link is cached).
Use my userscript to add story images to Slashdot. There's no going back.
a properly configured distro using gtk-qt (or qgtkstyle if you use gnome) doesn't have the problem of things looking different, as far as different configurations i agree completely. As for the l10n and i18n i don't believe that matters at all as there isn't a standard for any other platform as far as i know (i could be wrong about OSX)
Which is just not possible. Where is the CD burning program in GNOME that beats K3B?
Brasero, it's there now. I was honestly a fan of K3B, but version 0.9 of Brasero is great. It looks like it has as many features as K3B, but everything is damn simple and clear.
Where is the music player that beats Amarok?
Unfortunately neither Banshee nor Rhythmbox can beat this one. Hopefully, competition will push them to become better!
Totally wrong. You didn't read the link.
What the FSF means by "compatible" is that you can include BSD code in GPL projects. However, you CANNOT include GPL code in BSD-licensed projects. My comment stands.
Trolltech are total rubbish at the support game
As a commercial licensee, I've found Trolltech's support to be very good. Actually, they are one of the best I've dealt with.
So which is better "free code and no support"; free code and expensive support; or no code and no support (e.g. the way MS does it)?
0xfeedface
All in all you have to understand pretty much everything about the Qt loop engine to do multithreaded Qt programming.
Not really, no. What you have to understand is that unless the Qt documentation explicitly says otherwise, the Qt GUI APIs are off-limits to your non-main threads. But most of the time your non-main threads are there to do non-GUI background tasks anyway, so that usually isn't as big a problem as you might think.
I don't care if it's 90,000 hectares. That lake was not my doing.
Exaile? Maybe not now Amarok2 is out.
:(){
> You'd be the first I've seen. Kopete is terrible.
How would you know?
You should put a bit more effort into making your trolling consistent, no?
C++ is perhaps better than object oriented C, but it is generally much much easier to use a C library from some other language than a C++ library
That's not really relevant, since there are Qt bindings for all of the major languages, including Java, Python, C, Ruby, Perl -- even Haskell.
if it is possible to use C++ at all
Wherever it's possible to use C libraries, it's possible to use C++ libraries. If nothing else, you can always just wrap the C++ code in C code and call that, but it's usually not that bad.
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
Qt requires people that contribute to give them a permissive license. That is good enough for inclusion of the code in the commercial version.
DNA is the ultimate spaghetti code.
"Instead consolidate all that effort to 2 or 3 apps."
Yeah, we'll get right on that. Just as soon as someone dies and makes you Grand High Poobah of Everything.
Honestly, it amazes me how many people say things like this without ever apparently putting one second of thought into how idiotic such statements are.
"rather will use it as the desktop containment"
having actually seen packages of 4.2, i can tell you that this is incorrect. i do expect *some* distros out there to do this, however. that's sort of why we have the feature there, of course. =)
"it takes time to rewrite the entire KDE project. "
just to put this into perspective, the only full rewrite is of the desktop shell. we added a lot of new library frameworks (Phonon, Solid, ThreadWeaver, Nepomuk, etc, etc.) did a massive amount of work on the existing libraries (particularly so that libkdecore doesn't require a GUI, sorted the functionality out properly so that they aren't massive globs of semi-random class collections, etc), introduced a number of new apps (akonadi, dolphin, the new printer configuration tool, numerous games, some edu apps ..) and obviously ported everything to Qt4. massive, massive effort, but it wasn't technically a rewrite, with the exception of the desktop shell.
"The desktop should absolutely be configurable to the point where it could look like either GNOME or KDE"
that desktop is called "plasma". we'll be introducing layout switching for plasma in kde 4.3 letting you change between (or add to existing) layouts with the click of a button. you can already swap things about by hand, since the support for this was built into the design from the start, but making that part of the machine user accessible is kde 4.3 material.
plasma itself has no assumptions (or, really, knowledge) about what "must" be there. you can have 0, 1, 2, or N panels; any number of desktop activity layouts; even per-virtual-desktop layouts (experimental feature in 4.2; we hope to iron out the wrinkles and then expose it in the UI for 4.3) ..
so .. yes. we're going there. =)
No, your app is not a derivative work of the library. GNU does not have the authority to rewrite copyright law. Just because they say it's a derivative work does not make it so. Unfortunately, GNU probably has a bigger legal team than you do. Winning in court is not about who is right, but whose lawyers are bigger.
Don't blame me, I didn't vote for either of them!