Post a Comment
I believe Free software is a great thing: one of the greatest feats of human engineering, with millions of hours of work that are being donated to humanity for free, forever. That can only be good.
However, I don't buy into Stallman's idea that software *has* to be free. It is nice to write a book and donate it to the world, but hardly anybody argues that all literature should be free and that authors should never receive any money in return. There has to be a way for those that want to monetize their work for whatever reason they find, and they should be reasonably free to decide how to do it.
With Trolltechs previous model, writing closed-source software was only possible by paying A LOT of money per programmer seat, which not only was only feasible for large companies, but also got into the hot waters of license management. Suits them right, many would say, for pushing the closed-software ecosystem.
Of course this was fully within Trolltech's rights. They have the same right as anyone else to cash on their work, and they even provided a faultless way for free software writers to use it. Those who defend that model say the price was worth it, because you got great tech support. Well, then I'm sure that tech support business is not going to be any worse now.
I'm sure, though, that this was a barrier for many software writers that Nokia has, extremely generously, removed. This puts Qt squarely against GTK+ in the eyes of any company that writes software, not pushing it anymore to decide in square one whether all or part or none of their software is going to be open or closed.
I think this is going to be very good for Qt/KDE, and the GTK+/Gnome camp will have to put a lot more wood in the furnace to keep the competition going, which should also be good. So let competition begin! Or rather, let the next round of competition begin!
Stallman never claimed that software "has to be free". He has never made any statement (that I'm aware of) to the effect that non-free software should somehow be outlawed or illegal. All he has said is that, for the general good, software *should* be free. And that people on the whole would be better off if the software they used was free. Also he says that he personally does not want to use any software that he doesn't consider free, and that he will personally work to make as much software as possible available under a license he agrees with. This is all very different stating that software "has to" be free.
Stallman probably wouldn't disagree with any of that.
I disagree with much of what Stallman says, but I don't think anybody wins by mis-representing his ideas.
Really? I can do what I like with code under the GPL? i don't have to make derived source code available? This is surely news to me!
Also note that I said it's the impression he make. The impression you make can be quite different from what you're actually trying to say.
Really? I can do what I like with code under the GPL? i don't have to make derived source code available? This is surely news to me! "
"Derived", in a copyright law sense, means "a later work which includes parts of an earlier copyrighted work".
http://en.wikipedia.org/wiki/Derivative_work
Any GPL code which you include in your work must remain GPL, as that is a condition of the license under which you may use the GPL code.
Since the GPL code you used is already public, where is the harm in your obligation to republish it as it appears in your derived work?
Please note, in the context of this thread, even this obligation is now removed for Qt. The LGPL license allows another program (i.e. another work) to include Qt functionality by linking to Qt libraries, without invoking the copy-left requirement to keep the source code open.
Edited 2009-01-14 12:04 UTC
You don't have to do anything with your code if you don't want to, but if you want to distribute your code then it's only fair you keep the same license that allowed you to accomplish your task.
If you don't like those rules, you're FREE to not use GPL code and FREE to do the hell you like, so what's the problem?
So in the end I am not free to do whatever I want.
Oh, so it's just like any product that you are not forced to use? I dont' have to use Windows, does that mean the MS license is freedom? This is some assbackwards reasoning, mate.
I have no problem with the GPL but don't say you're free to do whatever you want with code licensed under it because you aren't.
Really? I can do what I like with code under the GPL? i don't have to make derived source code available? This is surely news to me! "
Actually you CAN. you can do what you like to any GPL licensed code and even keep the changes to yourself - so long as you do not DISTRIBUTE it. The GPL only applies to distribution, not to how you yourself use the licensed work.
Well, that is not what I have heard Richard Stallman say in a spoken interview in what I believe was LUG Radio.
I did not hear him say that non-free software should be outlawed, but he went much farther than saying that it *should* be free. He not only insisted on non-free software being unethical, but also said that if you cannot find a way to make money out of open software, well, too bad, that does not legitimize at all the act of writing proprietary software.
"He never said ... that I'm aware of" does not really sound like an axiom of truth. And "probably wouldn't disagree with any of that" seems to be a statement that really does misrepresent his ideas.
edit: BTW, I do understand the difference between free as in "libre" and free as in "gratis" just fine.
Edited 2009-01-14 14:20 UTC
How generous of him. What if that business model does not suit you? Do you really think that writing a game and charging for it is unethical unless it is a MMORG with a monthly fee? How much are you paying for support for OpenOffice.org?
Let's be real here. Free software is insanely great, and writing and supporting it is more than commendable. I agree that allowing proprietary software into the free software infrastructure (e.g. binary drivers) is very, very bad, because it will hinder the possibility of a free working system. We cannot aspire to all software being free, though, and it is also an act of freedom deciding whether you want to give away the product of your work for free, or you want (or, perish the thought, need) cold hard cash.
However, I don't buy into Stallman's idea that software *has* to be free. It is nice to write a book and donate it to the world, but hardly anybody argues that all literature should be free and that authors should never receive any money in return. There has to be a way for those that want to monetize their work for whatever reason they find, and they should be reasonably free to decide how to do it.
Well, I don't agree that "hardly anyone" is against intellectual property in all its forms. Just search "against intellectual property" in Google. That's not the same as saying that authors should never receive any money in return. In a society of free knowledge, intellectual production is a service and the market determines its price. Several new ways of collective bargaining would be developed, which are not seen today because of the overwhelming competition of IP-based mechanisms.
I completely agree this is FREAKEN HUGE!
If I were Microsoft I would seriously be getting sleepless nights.
Up to now I have always preferred GNOME because of licensing. However I always thought KDE was more polished and more interesting. Though I hated the license terms and avoided it like the plaque.
Though with this change, HOLY F*****N CRAP!!!
OSX will not be affected, but Microsoft and Windows 7 most surely will be affected! I am tempted to download any KDE distribution and go nuts...
This is indeed fantastic news. This could lead to a more wide spread Qt usage within commercial projects. And also QtJambi is more attractive. Till now Swing was free for commercial projects, and QtJambi wasn't.
Maybe we'll also see a more wide usage within open source projects. For example Mozilla based on Qt, or sharing code between Qt and Gtk. This enables a lot of possibilities.
Additionally, I think about Qt usage within Swing. Maybe this is possible too. Then Swing would be more competitive against SWT.
Summarized, really fantastic news! Thanks Nokia!
You mean apart from being faster, lighter and with more/better bindings to more langauges?
Even from the C++ angle, GTKmm is way better than Qt for the simple fact that it doesn't try to be a complete application framework, replacing the standard library and with it's own build system like Qt, it is just a GUI library and a very good one at that.
You mean apart from being faster, lighter and with more/better bindings to more langauges?
"
Why Gtk+ is lighter than Qt? it is not, unless you can back up your claims with facts.
It does not replace the standard library. It complements it. I've built many programs with Qt and the STL.
Qt does not have its own build system, unless you refer to the Meta Object Compiler, known as the MOC.
The MOC is complementary to the C++ build system of each platform, and it is used to create code. C++ lacks any facilities for introspection, for example, and it also lacks compile-time code creation (beyond templates, which is a limited form), and therefore an external tool was required.
I haven't seen how Gtk+ plus handles introspection. How does Gtk+ do introspection?
That bindings chestnut really is becoming frightfully old by now. It is simply not true that bindings for GTK are in any way better than bindings for Qt. And Qt has bindings for the languages people use: Java, C#, Python, Ruby, Php. Tell me, how often have you used the Ada bindings to GTK? How well informed are you about their quality?
As to you other points... Anyone who thinks it's a good thing not to have a complete framework hasn't done real work in the real world.
Except that it becomes a pain if you want to use a _different_ framework. I don't think the GUI library should dictate what Database API you use for instance.
As for bindings, GTK+ has a C API. It is *far* easier to wrap C to other languages than C++ (and when you wrap C++, you usually have to wrap it in C first). This means less developer time/effort is spent on the "plumbing" of bindings with GTK+, leaving more time for the useful stuff.
Edited 2009-01-15 20:46 UTC
Like which? Borland VCL? That's incompatible with Qt for sure... But I've used OSX frameworks, Windows stuff, boost, stl, tbb, that weird thing adobe makes available I've forgotten the name of, other linux libraries with Qt without any problems. And what's the advantage of not having a good, extensive, well-documented, consistent framework but patching your own together from a myriad inconsistent libraries?
Why is it a pain to do -lmysqlclient instead of -lQtSql if that's what you want to use?
Qt provides a database API as a separate module, it doesn't dictate anything.
For example, using qmake, the only Qt modules used by default are QtCore (same level as glib) and QtGui (as gtk). The other modules have to be explicitly added to your configuration with eg "QT += sql"..
Producing language bindings isn't 'easy' for either the Gnome or Qt/KDE apis. They are both very large and complex, and only someone who has never actually produced a decent quality language bindings for those apis would use the term 'far easier'.
If you look at how much actual man effort goes into producing Gnome or KDE language bindings, it appears to me to be about the same. I not talking about simple prototypes which may well be easier to produce by hand for an underlying C api. I am talking about doing the complete thing, which ends up being a different level of hardness.
None of the current Qt/KDE bindings projects wrap the api in C first, and so your point about that is demonstrably wrong.
As to you other points... Anyone who thinks it's a good thing not to have a complete framework hasn't done real work in the real world.
At the moment, some of the bindings remain better for Gtk, and that's only because the licensing for some of the Qt bindings needs to be changed to match that of Qt itself (once the 4.5 release happens).
For example, PyQt is GPL or commercial license only. If they don't provide LGPL, same as Qt, then it will need to be replaced.
I'm wondering what all the restrictions left are - if one would choose LGPL above commercial license - for developing a closed application.
* You cannot staticly link Qt(who want a big binary?) only dynamicly.
* You cannot go from LGPL to Commercial license.
Any other restrictions? Or does this somewhat sum it all up?
Yeah, I was wondering the same thing. What are the advantages in getting a commercial license?
You mentioned only being able to link dynamicly. I can't think of much more.
If you have a commercial license I guess you could change the Qt Source code without contributing your changes back.
From QTsoftware FAQ:
Why would I want to buy a commercial license? What is the difference?
The commercial Qt license includes email support, access to upgrades and allows you to develop fully closed source software. The LGPL carries some restrictions regarding the ability for users to relink libraries and other restrictions that may impose architectural requirements that some organizations might not be comfortable with.
So it looks like Nokia also can't think of much more 
Worse...
From QTsoftware FAQ:
Will there be different support and services available depending upon the license model chosen?
We want to ensure that our customers are successful, regardless of the license they choose. Therefore we will offer technical support and additional services as stand alone products for those who require them.
So support which is usually a good reason, isn't dependant on the commercial license.
And I don't see a lot of reasons why anyone would want to change the Qt base directly instead of just adding functionality on top through inheritance, layering, etc.
It's pretty clear that revenue from Qt is not a major thing for Nokia. The main advantage of having Qt's open source release be GPL only is that you couldn't use it for commercial apps without buying the commercial version. Now, you can use Qt for everything - commercial or not - and not pay anybody anything.
It doesn't look as if it is, which could be a good thing or a bad thing. We'll have to see. People often shouted LGPL(!) from the rooftops as an advantage for other toolkits, but at least with the licensing model the old Trolltech had the funds to put into the toolkit to benefit open source developers with better tools. Like it or lump it, it has given them an advantage over other tookits technology-wise like GTK. We'll have to see if they have the same focus.
It seems that Nokia is more focused on Qt as a universal platform to use in their products long-term and help them sell more rather there than as a revenue stream in itself.
Well, even Microsoft got it with there "Software as a service" slogan. From that view it makes quit sense to free the underlying foundation and build special solutions (applications, (web-)services, hardware, etc.) on top of a standardized, common available, highly portable and free platform. Beside the LGPL'ing the opening of the developing process is another big boost that points to that direction. Just a matter of time other big and small(er) players will jump on and adopt to provide solutions based on Qt.
Edited 2009-01-15 07:57 UTC
commercial does not mean closed...
and reconsidered.
The Gnome community wants new toolkit features and a new main developing language.
Using Mona/Java/Python/whatever + Qt would give them all of the above.
But I don't think it will happen .. having just one cross platform toolkit for the main open source desktops would be too good to be true.
Are they looking for a new main dev language? I thought the core of Gnome 3 was still going to be C, but that they wanted to add a couple of additional first class citizen app development languages.
As long as the core of Gnome remains C, I don't really see Qt as an option, unless someone writes some sort of C wrapper. But I have no idea how that would work.
Actually, there used to be C wrappers for Qt, mainly used to make generating other bindings, such as Objective C easier. Nowadays, there are much more advanced technologies that make binding Ruby, C#, Java, Javascript, Php, Python and Falcon to Qt (and KDE) really easy to do and maintain, and such an intermediate step isn't needed anymore.
Switching to Qt for Gnome wouldn't be a "Gnome 3.0" it would be rather a "Something New 1.0". Switching the GUI toolkit in either of the two desktops is basically a rewrite of the desktop and all its applications. The toolkit is not just a major component of the stack, it's the heart and soul.
The Gnome community wants new toolkit features and a new main developing language.
Using Mona/Java/Python/whatever + Qt would give them all of the above.
But I don't think it will happen .. having just one cross platform toolkit for the main open source desktops would be too good to be true.
Please, not Mono.
Java with Qt (and/or GTK) bindings, Python with Qt (and/or GTK) bindings, C++ and Qt, C and GTK, or, for something lighter, FLTK or the Tk framework already make for more than sufficient choice for cross-platform application development.
http://en.wikipedia.org/wiki/Tk_(framework)
http://en.wikipedia.org/wiki/FLTK
We don't need to poison this field with Microsoft dependencies. Microsoft will always endeavour to make .NET work better on Windows than any alternatives on other platforms do. It is therefore the very worst choice for a cross-platform solution.
Edited 2009-01-15 12:00 UTC
Do you have any idea how big Nokia is?
N has been funding the unprofitable Symbian for years (10 or so?), just to provide a platform for phone SW development. Qt is part of this very same thing, with the difference that it's actually a pretty good toolkit.
This is pretty much a game-changing move.
Well, toolkits that compete against generally 'free' ones to survive are finding life more difficult but I would hardly say that commercial toolkits and developer components is a dying market. It's a market worth tens of billions in total, so I'm pretty sure those who are staking their software livelihoods on developing in Qt are still going to pay for support.
Not greatly, is the answer. Nokia is probably banking on Qt being a more universal platform in their products and using it in that direction and those paying for support for Qt might even increase in the long-term as Qt usage grows.
The only question is whether Qt will improve as it has done over the years when it was directly funded by licenses.
I would expect that the relicensing to LGPL and the opening of the developing process will attract many new contributors, FOSS and commercial, Linux, Windows, Mac and embedded devices. This will boost the progress on a huge level and that's why it was done.
Edited 2009-01-15 08:14 UTC
Crazy news this morning.
I'm not 100% sure how I feel about this, but 98% positive
1% is nagging that I just renewed my commercial license
and the other 1% is a bit worried that without Qt license revenue there will be less money to continue improving Qt. Hopefully that's not the case.
This really makes sense for Nokia though. If they want to push Qt as a universal dev platform, they need to make it more open to compete with other platforms. Awesome awesome awesome.
I think that if they wanted to push Qt as the universal toolkit they need to really improve their new "QtCreator". I have been messing around with it for a couple weeks, and I just can't understand their workflow methodologies. Hopefully the final version will improve this. Specifically, not being able to organize my class files is aggravating to say the least.
I have no special insight into Nokia's thoughts on whether Qt should "pull it's own eight" or whether they are happy to subsidise it, but according to Wikipedia, Nokia made about 8 billion euros *profit* in 2007, with a workforce of 123,006 people. Apparently in 2007, Trolltech employed 227 people, and I think only around 50 or so of these are engineers(?).
As one wag on the Dot put it - "Nokia probably spend more on lunch for executives than they do on Qt" 
Android threw down the gauntlet in the embedded space.
How can something as god awful expensive as Qt compete with something free?
I wonder if Nokia really understands what they've done....basically releasing Qt as LGPL is a huge blow to Microsoft, with cross platform gui development no longer requiring hefty license costs.
Edited 2009-01-14 22:29 UTC
Because people producing application on a commercial basis rely on good development tools and are willing to pay for tools even when a great deal can be had for free. That isn't really going to change here, although it will lower the barrier to entry somewhat. Mobile phone development has always traditionally been expensive, and more expensive than Qt.
It really all depends on how Nokia use Qt. If they don't create a great, low cost, cross-platform and multi-device platform with it to help them sell lots of phones and other devices then that isn't going to help them against Microsoft.
Finally; I feel vindicated.
I've been pointing out for a long time now that many small, indpendent commercial developers would ignore KDE as long as they were required to license Qt from Trolltech.
Thank you Nokia for fulfilling a dream of mine; KDE is now finally a viable commercial option for many developers.
No longer will commercial KDE developers have to pay another company for the right to build applications; finally KDE will have reached parity with Windows, Mac OS X, GNOME and other desktop platforms.
You haven't been vindicated at all. People have consistently missed the point that you don't get 'owt for nowt'. The license fees that have gone into Qt have made it into the development toolkit that it is by paying for people to work on it full-time and invest their hard effort. It remains to be seen whether Nokia's other activities are enough to sustain Qt at the same level.
I doubt whether it will make too much difference for quite some time. Most small ISVs pay some sizeable sums of money for Visual Studio, MSDN and lots of third-party components and it's a large market. It does remove the rants from the bedroom programmer I suppose, but while they tend to look like a vocal majority around here, they're not. This does also increase license compatibility, which is probably the most positive thing.
Additionally, very, very, very few if any ISVs are writing for KDE or even for Gnome and GTK regardless of the license, so it's all a mute point right now.
Not yet. There's an awful lot of other things that have to be in place to really achieve that, and the license is a small part of it.
You do realise of course that everyone is paying for development on Windows through Windows license fees, as well as through software that hangs off it regardless of whether they make money from development or not? KDE is already freely available. ;-)
Edited 2009-01-15 15:54 UTC
Actually, I believe the correct expression is "moo point".
http://www.urbandictionary.com/define.php?term=moo+point
http://www.youtube.com/watch?v=iObtPBh3NXs
Yes, I have. The Qt people themselves are saying exactly what I am here; that they believe doing this will significantly increase adoption (both commercial and non-commercial).
I'm not sure where you get your data from, but the small ISVs I know do not.
Insulting other people (based on false assumptions) is an emotional, not logical argument.
You do realise of course that everyone is paying for development on Windows through Windows license fees, as well as through software that hangs off it regardless of whether they make money from development or not? KDE is already freely available. ;-) "
No, because chances are people developing for Windows already paid that license *whether they wanted to or not* when they bought their computer or to be a user of Windows applications. The argument that Windows developers pay Windows licensing fees is poppycock; developers pay Windows license fees to be a *user*. Whereas with Qt, you had to pay to be a developer. There is a stark difference.
Edited 2009-01-19 00:08 UTC
That assumes that Qt will continue to be improved via this new licensing model as it has been. Nokia is gambling that they will sustain Qt through spin-offs and as a development platform for their products. There's no guarantee that it will, as development on other LGPLed toolkits like GTK has fallen behind and it hasn't attracted much in the way of significant contributions owing to its license. Everybody just wants to use it for nothing, so no, with experience of other similar projects this has not vindicated you.
Then I'm afraid you don't know much about development, that's all I can say. The developer tools market is a multi, multi billion dollor one worldwide. Small ISVs have better things to do with their time than work out why on Earth GTK or wxWidgets isn't doing what they expect and trying to debug it.
I highlighted the relevant bit in bold. ISVs have better things to do than debug their own development tools. The ones that do don't last long.
I'm afraid that's exactly what you are coming off as. People ranting about developing with inferior development tools so they can develop for nothing and bitch about licenses is a bedroom programmer rant. Real ISVs don't do that. They make money and survive.
Point made. Thank you. With 'free' platforms you don't have to pay that tax and developers can get started for free and pay for tools that will help them make money ;-).
Are you suggesting Windows developers are pirates or something?
Windows developers pay for Windows licensing fees and through that pay for Windows development whether they develop for 'free' or not, or even if they don't develop at all. They're using Windows for development, so making a distinction between being a user and being a developer is just bizarre.........because that's their usage. A lot are probably paying for Visual Studio as well on top as you're going to be a bit lost without it.
If you pay to be a developer then you're making enough money directly out of development to justify the cost. Anything else is just a tax ;-).
Edited 2009-01-19 01:50 UTC
Now that Nokia has decided to open Qt that means that this "borg like" model of qt which smacked of developer lock in and not invented here syndrome can come to an end.
I certainly hope there's a move to trash a lot of the Qt infrastructure and replace with stl and other already available good quality 3rd party libraries. And get rid of MOC while we're at it too.
You can use stl with qt, and other 3rd party libraries. Those qt counterparts exist in qt for a reason. Mostly, it is the price to pay for being truly cross platform, especially so if you realize that gcc is not the only compiler people use. Also, most of the qt API QtXML is way more advanced and easier to use than the alternatives. Heck, some don't even have a viable alternative, like phonon and webkit.
And? use the pathetic C++ introspection thingy? And use the ugly signal/slot libraries out there?
No thank you. I would stick with moc.
And maybe get rid of Designer and hand-code our UIs again? Get rid of QObject parent-child relationships and manage memory manually?
Layers of abstraction help the developer deal with complexity. Just because you don't understand it, doesn't mean it's bad.
STL? Good quality third-party libraries? Boost, per chance?
So you want to destroy C++ programming again for everyone?
I think it is impossible to have one toolkit like it is impossible to have only one distro, but since both toolkits will be licenced under LGPL now, i would like to see them share features/ideas, talk to each other and have some standarts. As a user, i want GTK+ and Qt applications to have the same functionality under Gnome and KDE (for example: look and feel, file open dialogs, ability to use drag and drop, which sometimes does not work). It would be great. But it seems that (sadly) toolkit developers have no interest in that (Qt will have a GTK style in 4.5, but there is no response from GTK+ developers) and don't see anything happening soon.
There is a fair attempt made in KDE to support GTK applications.
I don't perceive quite the same effort in GNOME to support Qt applications.
Perhaps the best approach now (given the recent move toward a LGPL licence for Qt) is to install KDE? I find it so, at least. I get a reasonably well-integrated desktop with mixed GTK and Qt applications that way. For example, the KDE clipboard manager has no trouble interacting with GTK applications.





