Trolltech has just released Qt 4.1. Many new features were added since Qt 4.0, including integrated support for rendering SVG drawings and animations, a PDF backend to the Qt printing system and a lightweight unit testing framework. Qt Designer, OpenGL support and Visual Studio .NET integration were updated too.
SVG support sound awesome.
I didn’t see this coming so fast. Kudos to Trolltech, they’ve really upped the game for C++ GUI toolkits and will greatly benefit KDE in the open source world.
KDE 4.0 can’t help but rock with QT 4.1 underpinning it. They can probably pull most of their SVG layer right out of KDE now. OpenGL support directly from QT, too.
They can probably pull most of their SVG layer right out of KDE now. OpenGL support directly from QT, too.
Nope, KSVG tries to implement the whole SVG spec. The Qt SVG support is only for tiny-svg. So KSVG will stay for most things.
So, with Qt already up to 4.1, where’s KDE 4? Or are they going to skip v4 and aim for v5 with support for Qt 4.2?
It has long been the plan of the KDE developers that KDE 4 would require Qt 4.1.
KDE devs must be having some rest now, but expect a lot of activity around KDE4 as soon as next month.
KDE4 is supposed to take about 1.5 years but now the KDE devs are kicking around the idea of doing a KDE 3.6/ major 3.5 release.
http://lists.kde.org/?l=kde-core-devel&m=113356991430045&w=2
That means the KDE3 codebase would keep moving and take longer to port to QT 4. The KDE devs don’t have enough resources to work on KDE3 and KDE4 in parallel meaning it would push the release really far back. We might not see KDE 4 until late-2007/early-2008. By that time OSX86/Vista will have been out for quite a while and GNOME would have pumped out atleast 5 releases.
Well, if that’s the case, for the benefit of everyone, people are just gonna have to live with kde 3.5 for the next 12-18 months and stop bitching about new ‘updates’.
Dave
KDE 4 is still in development and probably will be until late next year, is my understanding. It’s going to be a major revision of the interface and features, presumably for the better.
The QT team is tightly integrated with the KDE community and developers, FYI.
Edited 2005-12-20 14:52
ok there is mockup.org which is qt4 based.. but i think rewriting kdebase 4 qt4 wd b fine.. trolltech is too fast .. qtruby is nice too, and all those qt3 apps work also with qt4, qt3toqt4 does teh stuff..
anyway stick with kde/qt/gpl/europa and u wont be punished for your free mind..
—————-
kde rox in your language.. die neue internationale @ kde
gnome sux even in us-american..
—-
get free or die tryn
“kde rox in your language.. die neue internationale @ kde
gnome sux even in us-american.. ”
it would be nice to think so. however, kde isn’t going anywhere. gnome is going places.
it would be nice to think so. however, kde isn’t going anywhere. gnome is going places.
No you’ve got it all wrong! KDE is going places, but unfortunately not where I want it to go and it isn’t in a place I want to be now either. Gnome is just wandering around the same spot and has no clue where to go but at least it’s somewhere near to where I want to be.
“it would be nice to think so. however, kde isn’t going anywhere. gnome is going places.”
It would be far more accurate to say that Gnome gets extravagant media attention for the smallest of things while KDE goes unmentioned for equal (if not better) feats.
Seriously, check out http://dot.kde.org and subscribe to the KDE mailinst lists. The difference is that Gnome developers get the spotlight for everything they do no matter the significance while KDE developers keep KDE moving along without so much as any mention on mainstream media sites.
DOWNLOAD Windows Vista pre-Beta 2 build 5270 : http://windows.czweb.org/show_article.php?id_article=461
What’s the point in use QT in windows when we can have visual studio 2005 express edition for free ?
VS-C++ express dose not have MFC, you also have to download an additional SDK to develop native applications. VS-C++ is laid out for .NET and .NET only. If you want to developer native applications you will need to either a) develop on pure Win32 or b) get extra libraries. Qt is a good choice for people wanting to develop native apps, but it is only free for GPL applications (or if nobody will EVER see your app) so get a license if you want to sell your stuff.
“VS-C++ express dose not have MFC, you also have to download an additional SDK to develop native applications. VS-C++ is laid out for .NET and .NET only.”
Sure… Except you could buy two copies of Visual Studio .NET Enterprise Edition for the cost of one Qt license for Windows.
And if I want to do cross-platform work, I’m going to go with wxWidgets or Gtk and not even give Qt a second glance after it’s ridiculous $6,000 pricetag if I want to do cross platform development that includes Windows.
Edited 2005-12-20 17:26
Whine, whine, whine, whinge, whinge, whinge. If you are doing commercial software development, how much is $6000?
This “argument” is getting very old and very lame.
“Whine, whine, whine, whinge, whinge, whinge. If you are doing commercial software development, how much is $6000?”
It’s a lot for small, independant software shops.
It’s also a lot simply by industry standards. It’s about 5 times more than what I would expect to pay for a product along the lines of Qt–expecially when you consider that GUI toolkits are largely a free commidity these days.
Count on a developer salary, and your time to market. I’m pretty sure you’ll see some different numbers then, unless you are coding trivial stuff.
“Count on a developer salary, and your time to market. I’m pretty sure you’ll see some different numbers then, unless you are coding trivial stuff.”
Why? I can be easily just as productive in Gtk as I can in Qt. And probably even moreso in gtkmm becaust it actually takes advantage of C++ features like namespaces and such, and doesn’t require me to learn proprietary extensions to C++ that Qt added and requries a special pre-processor for.
And I have yet to find a UI designer that is anywhere near as powerful as Glade in any language. I can mock up a complex UI in Glade in literally a matter of minutes. And that even includes dialogs. Not just the main application window.
Personally i use Gtk+ too (mostly with C++ and C#).
But i have to admit that Qt is a great piece of software.
I can be easily just as productive in Gtk as I can in Qt.
maybe as long as you work “only” on GUI related stuff. You will see the power of Qt if you want to build a cross-platform app with network, database and GUI support. On gtk+ you will have to search for a network and database lib and find something which will also work on windows and MacOS. With Qt you have more than a Toolkit, you have an overall Framework!
And I have yet to find a UI designer that is anywhere near as powerful as Glade in any language. I can mock up a complex UI in Glade in literally a matter of minutes.
but you need a lot of time pulling all widgets out of the xml file and connect every signal by hand (for gtkmm). Why there is no autoconnect like on Gtk#, glade#?
“You will see the power of Qt if you want to build a cross-platform app with network, database and GUI support.”
If I want to build a cross-platform network application, I am not going to use C++ anyway. C++ is an absolutely horrible language for building network applications in today’s environment–especially when may be exposed to the entire Internet.
“but you need a lot of time pulling all widgets out of the xml file and connect every signal by hand (for gtkmm).”
Since when? Glade automatically wires up the signals for you. You don’t have to mess arouynd in the xml file at all.
If I want to build a cross-platform network application, I am not going to use C++ anyway. C++ is an absolutely horrible language for building network applications in today’s environment–especially when may be exposed to the entire Internet.
But many application today have some kind of network support: irc client, im client, mail client, newsreader,… And many of them actually written in C or C++.
never mind how you argue. Gtk+ is only a GUI Toolkit and Qt is a complete Framework. Maybe you need it or you don’t need it. But it’s defenetly a advantage for Qt.
Since when? Glade automatically wires up the signals for you. You don’t have to mess arouynd in the xml file at all.
Maybe if you use the code generation of glade. But that’s not the recommend way. The recommend way is libglade and glade3 will get rip of the entire code generation.
“But many application today have some kind of network support: irc client, im client, mail client, newsreader,… And many of them actually written in C or C++.”
Sure. Because the winds of change move slowly through developer circles for some reason. It took about 20 years for the idea of structured programming to be taken seriously. It took 10 to 15 for the idea of OOP to be taken seriously. And today, it is taking a long time for developers to realize given modern hardware, and advanced in intepretor design that result in bytecode generation rather than line by line interpretation, that it is perfectly OK for full featured applications to be written in interpreted languages with dynamic memory management, and array / buffer overflow protection. It is starting to catch on. There are very nice email clients written in Python and Java for instance. But it has been very slow for the idea to catch on that full features applications can be written in languages like Python and Java, and that eliminates a lot of the security problems that C and C++ have when writing networked apps.
“Maybe if you use the code generation of glade. But that’s not the recommend way. The recommend way is libglade and glade3 will get rip of the entire code generation.”
I don’t think you are very clear on what the code generation feature of Glade actually does. When you use Glade’s code generation, it does not write C code or C++ code for the UI. It still uses libglade. The only thing it does, is write code for you that automatically wires up the signals from the XML file and such. It doesn’t not actually generate any C or C++ widget code. It fully uses the Glade XML file for that.
I don’t think you are very clear on what the code generation feature of Glade actually does. When you use Glade’s code generation, it does not write C code or C++ code for the UI. It still uses libglade.
for libglade you need libglademm.h. If i use glade code generation and grep for libglademm.h nothing will be found. Glade genearted C++ code and a lot of .hh and .cc files which i shouldn’t edit. If anyhow i will edit this files for some extra vars/data-structures and change something on the GUI on glade everything get overwritten.
You can read on every Gtk+ and Gtkmm mailinglist that you shouldn’t use code generation and glade3 will not have any code generation!
If I want to build a cross-platform network application, I am not going to use C++ anyway.
I am. I need the performance. Before I was using Java, and my productivity was much less. Java has an extensive library, but it has a ton of gotchas in it that don’t work the way I would expect. STL templates save me a ton of time alone, and memory management is a complete non-issue in C++ with Qt. I have under 10 pointers in 5000 lines of code, and even those aren’t necessary.
C++ alone is not that great, I agree, but C++/Qt passes anything else I’ve used without a noticable performance penalty.
“I am. I need the performance.”
Most people who say they need the performance are only kidding themselves. Network latency, I/O waits, cache-line fills, and blocking for user input will almost always completely negate any small performance gains you might have seen from C or C++.
I’m not saying you don’t need the performance. I am only saying that the vast majority of the time, performance is a non-issue. And the people who think they need the performance, would not need it in reality when the characteristics of networked applications with user interfaces are actually taken into account.
Most people who say they need the performance are only kidding themselves.
Great. I’m not most people. I’m doing some pretty CPU intensive image processing, so I need raw speed. In addition, I some advanced UI effects, so I need lower level access than Swing gives me.
Aside from the performance, there are several other reasons I can’t use Java. C# is out of the question since it’s not really cross platform, and Python/Ruby are out of the question because as the project grows, static type checking is going to be more useful, and both are fairly obscure languages that other team members don’t have the expertise in.
I need to interoperate with native code like the MSAA/AT-SPI (accessibility) libraries as well as speech synthesis. Sure there is JNI, but it sucks compared to just writing C++ and calling library functions directly. Also, the UI latency of Java is unaceptable for some of the stuff I’m working on.
“It’s a lot for small, independant software shops.”
Trolltech have a special program for very small software shops. If you cannot pay $6000, then Trolltech’s sales department might agree to a small amount. You only need to contact them and ask.
<If you are doing commercial software development, how much is $6000? >
If you have a hugely successful commercial product and are making boat-loads of money, and you are the boss, $6000 is nothing.
If you have a business where you’re kind of partially successful, or hope to be successful one day. $6000 is a lot.
Or in my case – I work for a 60 million dollar compary, but no there’s just no way the tight bastards are ever going to pay $6000 for a SW licence. I had to pretend I was going blind and bump into walls just to get a new $300 monitor.
But I love QT as a technology and wish Trolltech continured success.
“Whine, whine, whine, whinge, whinge, whinge.”
By the way, I’m not whining. Just saying their ridiculous prices cost them a potential user. It also cost them the industry support of IBM, Sun, and HP, who all decided to back Gtk and Gnome instead.
Trolltech is aiming at a different market. There’s no money to be made in producing a commodity toolkit. Maybe they are incorrect in their assessment, but it’s obvious the Trolls have looked at the situation and determined that couldn’t increase sales of professional licenses at a $300 price point sufficient to replace the income they currently attain selling fewer licenses at higher prices.
You ignored the premise of the original argument in this thread; Visual Studio C++ Express is free so why do you need Qt. I think I answered that satisfactory, I could have gone on about other toolkits but since this is in the discussion about the Qt 4.1 release and the original question was about Qts relevance I didn’t.
You are totally entitled to your opinion, but I dislike my answer to a previous question being hijacked to make a negative comment about Qt like that. You don’t like Qt, C++, Qts price or the face of Trolltechs founders for that mater, don’t use it.
You didn’t answer the question satisfactory. You gave a partial answer that avoided the fact that it is economically more feasable to go to VS.NET Enterprise Edition to develop Windows apps.
So why Google used Qt for Google Earth?
“Yada Yada Yada..”
Trolltech has ~4000 customers. I think they know better what they are doing and how they price their product. If you cannot afford that Trolltech is not holding gun on your head. You can use GTK/FLTK whatever you wish. So please stop that stupid bullshit.
It’s a tradeoff. Either pay less and do more work or pay more money up front and work less. If your time is not extremely cheap, I think the investment in Qt is worth it.
Unless you’ve coded with Qt, Gtk, and WxWidgets, you won’t understand that. Qt saves a ton of development time, that’s why they can get away with selling it for a high price. If it wasn’t worth the price, Trolltech wouldn’t exist.
“Unless you’ve coded with Qt, Gtk, and WxWidgets,”
I have coded in all of them. And I don’t find Qt to have any development speed advantage over gtkmm at all. And from an OOP standpoint, gtkmm is a much better designed toolkit than Qt is.
And if time to deployment is the most important consideration, I won’t be using C++ anyway.
I have coded in all of them. And I don’t find Qt to have any development speed advantage over gtkmm at all.
Fair enough, but I doubt you’ve used much of the functionality of Qt. Qt is far more than just a UI toolkit like Gtk. I’m sick of sticking together 10 different libraries to get the functionality that I want.
With Qt, I get not only the GUI, but HTTP/FTP, database access, Threading, memory management, unit testing, now SVG, and so much more in the same consistent API.
WxWidgets does something similar, but it’s not as full featured and the API is not as intuitive. Also the last time I used it I found a bug within 15 minutes. It’s not a bad toolkit, but the level of refinement is nowhere near Qt.
I have coded in all of them. And I don’t find Qt to have any development speed advantage over gtkmm at all. And from an OOP standpoint, gtkmm is a much better designed toolkit than Qt is.
And if time to deployment is the most important consideration, I won’t be using C++ anyway.
In other words, you are just trolling (again, I might add). The license argument is getting a bit old. Paying the license btw not only buys you the ability to develop closed source programs with QT, but excellent support as well. But that is beside the point. How many times will each QT/KDE related thread hijacked by license trolls (no pun intended)? You think 6k is too much? Well, as someone already said, no one holds a gun at your head to pay and use it. Use GTK, if you think it is better. Or whatever you want.
In the meantime, despite the “licensing problem with QT” (it is GPL for God’s sake!) it appears that more commercial vendors use QT than GTK … by a fairly large margin. Have you looked at the customer page at Trolltech recently?
Your entire argument doesn’t make sense at all (except if you are just trolling, as I noted). Probably you wouldn’t invest in a license if you wanted to develop your 30$ shareware prog, and if you want to do something fairly complex (and crossplatform), than 6000$ is only a fraction of the development cost. You can come up with any number of scenarios where buying a license would not make sense, but do you have to do that in a KDE/QT thread.
When will have editors/mods the decency to mod down any “license” trollings – it is getting as old as ~BSD is dying… Please!
> When will have editors/mods the decency to mod down
> any “license” trollings.
Oh I don’t know… Maybe when they have the decency to mod down the sun hating trolls who always hijack Solaris or Java threads? And the Windows hating trolls who always hijack Windows threads?
> Maybe when they have the decency to mod down the sun hating trolls who always hijack Solaris or Java threads? And the Windows hating trolls who always hijack Windows threads?
So this is what this is about? Retaliation-trolling?
“Someone dared to troll in my thread, I now have to troll back or those bastards will never learn!!!!!”
_And if I want to do cross-platform work, I’m going to go with wxWidgets or Gtk and not even give Qt a second glance after it’s ridiculous $6,000 pricetag if I want to do cross platform development that includes Windows._
Good. You’ve made your choice based on your needs. Others have different needs and, judging by Trolltech’s growing business, Qt satisfies those requirements. So why complain? Because a Qt commecrcial license isn’t worth it to you doesn’t mean it isn’t worth it to someone else.
$5000 expensive? Please, its chump change, and depending on which country you’re in, alot of the times, you can claim a good portion of that back through the tax system.
$5000 for toolkit that is garanteeded to work out of the box for all platforms is pretty good blood deal – many for Joe Struggling Coder, but for the Adobes and the like, the price of Qt is chump change in the grand scheme of things.
“$5000 expensive? Please, its chump change, and depending on which country you’re in, alot of the times, you can claim a good portion of that back through the tax system.”
You don’t buy development tools very often do you? Lets look at some cost comparisions. Qt, cross platform edition is:
13 times more expensive per developer than IntelliJ Idea.
7.3 times more expensive per developer than MS Visual Studio .NET Entperise Architect Edition
7.3 times more expensive per developer than BEA Workshop Studio.
3.1 times more expensive per developer than Borland C++ Studio Enterprise Edition.
I could go on, but the point is, relatively speaking in the world of development tools, Qt is very expensive. It is perhaps the most expensive tool I have ever seen.
Waaaait a minute.. Why are you comparing a toolkit to a bunch of IDEs? Some of your IDE’s aren’t even C++ IDEs. And some of them only run on one platform.
I could go on, but the point is, relatively speaking in the world of development tools, Qt is very expensive. It is perhaps the most expensive tool I have ever seen.
So a tractor costs me $15,000? Let’s see, that is
2500 times more expensive than a hammer
1000 times more expensive than a shovel
50 times more expensive than a post pounder
I could go on, but the point is, relatively speaking in the world of farming tools, a tractor is very expensive. It is perhaps the most expensive farming tool I have ever seen.
So a tractor costs me $15,000? Let’s see, that is
2500 times more expensive than a hammer
There is obviously a major difference in degree here. The hammer can’t even come close to doing the same job that the tractor can.
All of the products I mentioned can. Even if they aren’t C++. And most of them have visual designers, etc that make the process of laying out GUI apps either (and the additoona features of Qt like networking and such are a non-issue with Idea since Java has excellent networking build into it, is more crossplatform than Qt, and so on).
All of the products I mentioned can.
No they can’t. None of your products can. Now you may argue that Java and it’s library of functions can, and you would be right. But a bunch of java IDEs and a bunch of C++ IDEs have absolutely nothing in common with Qt.
So you easily can port your apps to other systems…
The point of Qt is one code base that can be compiled in Windows, Linux and Mac OS X without modification. It’s also quick to learn, has a very neat and clean API.
Right now there are few if any commercially supported toolkits that can do this, and because of this lack of competition Trolltech hasn’t had to worry about dropping their prices. Personally now that Qt 4 is open source for all three big operating systems I’m happy enough learning on that, if I get good enough at writing potentially marketable software with it then I’d probably buy a license even if the cost is steep.
What’s the point in use QT in windows when we can have visual studio 2005 express edition for free ?
What is the point in Linux, if Windows comes preinstalled with basically every computer, anyway. Let’s start a petition to abandon Linux, because following your arguments it is useless.
> Nope, KSVG tries to implement the whole SVG spec.
> The Qt SVG support is only for tiny-svg. So KSVG
> will stay for most things.
Read that on the Dot. Thanks for the clarification, though.
As for going places, KDE is already well ahead of Gnome in my estimation and KDE 4.0 is the talk of the *nix industry. KDE has already gone places, and is used by approx. 2/3 of the Linux populace, if the polls are to be believed. Save your FUD for those who deserve it, please.
FYI, I find Gnome sparse and insulting to my intelligence. And Nautilus reeks. That’s just my impression.
Polls are never to be believed since people answering them are different form >>normal<< people, they are self selected and not representative of the population as a whole.
We will never truly know what DE is leading, maybe Gnome (but its users don’t know what Gnome or Linux is) or KDE (and its user answer every poll aggressively) or IceWM (and its users maliciously manipulate polls) but who gives a rats, no mater who leads now, it wont change much about the further development of KDE, Gnome or IceWM.
” and KDE 4.0 is the talk of the *nix industry.”
The *nix industry is still stuck on Motif apps.
The *nix industry is still stuck on Motif apps.
Even motif improves over time. In the soon to be released open motif 2.3, it will have antialiased fonts.
As for going places, KDE is already well ahead of Gnome in my estimation and KDE 4.0 is the talk of the *nix industry. KDE has already gone places, and is used by approx. 2/3 of the Linux populace, if the polls are to be believed. Save your FUD for those who deserve it, please.
It not even that, the fact is, KDE got it sorted out long ago – GNOME is still bickering over which media framework to use, which browser and collaboration tool should be included – whether the ‘GNOME System Tools’ is part of the GNOME scope.
Its a bloody mess alright – and personally, in terms of KDE and KOffice, I would rather wait a little longer for a well integrated destop and Office suite trying to use the cobbled together crap that is GNOME and its derivatives (JDS/etc).
On FreeBSD and many other operating systems which have KDE available, in some cases the total usage of KDE when compared to GNOME is alot higher than the Linux world – Solaris with KDE – its a dream, rock solid UNIX base with a sexy desktop, what more can anyone ask for?
haha dream on! yes, but reality of the situation is nothing at all like that. have you EVER heard of any HONEST person who uses kde that doesn’t complain about the applications crashing and the buggy framework? i think not. you only have to look at all those pissed off kubuntu, mandriva, and <insert fave buggy kde distro here> users to realise that.
many of the reasons why desktop users switch to gnome is because they want to have a reliable desktop. they are people who got sick and tired of kde crashing all the time. then there’s the corporate side. we all know that kde is not even given a seconds glance there, because they ALL prefer gnome. and with good reason.
kde is a dying desktop. accept it.
Qt SVG doesn’t either support DOM, if I’ve understood correctly.
AFAIK there is no schedule for KDE 4 at all at this moment nor they aren’t going to have 3.6 release if I understood correctly. A lot of developers are working currently on porting things to Qt4, though KDE 3.5.x releases are being worked too in parallel.
I’m using daily snapshots of Qt4 and it’s unbelievable to see how much is growing day by day.
Applications just came out so easily from Qt4!
You should see my ‘snowing widgets’ and gfx/ui stuff.. this toolkit, along with its graphics pipeline allows never seen before stuff in every supported platform.
Note: 4.1 has transparent BG by default on every widget along as backing stored graphic composition, just try to play with unlayouted widgets in designer to see what I mean 😉
Any screenshots of the improvements & eye candy?
Here’s some videos showing QtSVG in action:
http://physos.net/zacks_videos/zacks_video_1.html
http://physos.net/zacks_videos/zacks_video_2.html
And Zack’s comments on them:
http://www.kdedevelopers.org/node/1559
Hopefully its just the video that is choppy, not the actual performance, otherwise it looks pretty cool.
Very well said. When someone talks about having to learn “proprietary extensions to C++” or how they can use Glade to “..design dialogs. Not just the main application window.” then they obviously have no experience with Qt whatsoever, because:
1. It takes literally 5 minutes to learn Qt’s so called proprietary extensions and haven’t you heard? As of Qt 4.1, you don’t have to use them at all if you don’t want to. You can even use boost library for signals and slots if you’re so inclined.
2. Qt Designer has always allowed you to design dialogs.
So stop the crap, because as Leos stated: Unless you’ve used Qt, Gtk, and WxWidgets, you won’t understand that Qt saves a ton of development time.
“It takes literally 5 minutes to learn Qt’s so called proprietary extensions and haven’t you heard? As of Qt 4.1”
It’s a gross hack. And “as of QT 4.1″… Read that as “as of today.”
“Qt Designer has always allowed you to design dialogs.”
I never claimed it didn’t. I said I don’t think it is as quick to design dialogs and such in Qt as it is in Glade.
“Unless you’ve used Qt, Gtk, and WxWidgets, you won’t understand that Qt saves a ton of development time.”
I’ve used all three. And I disagree. It does not save development time. And gtkmm is much better designed than Qt when it comes to object oriented design.
Edited 2005-12-20 18:26
It’s a gross hack.
Care to substantiate? Signals and slots are very intuitive and do away with all the callback nonsense. It’s an abstraction that’s very useful.
I’ve used all three. And I disagree. It does not save development time.
What did you develop with Qt? If you didn’t get past trivialities I agree they’re all pretty similar. But we’re talking real projects here.
“Care to substantiate? Signals and slots are very intuitive and do away with all the callback nonsense. It’s an abstraction that’s very useful.”
Since when you do you need a special pre-processor to implement signals and slots?
“What did you develop with Qt?”
We didn’t actually develop an application in Qt. We evaluated its various capabilities and wrote some test code taking advantage of the various features. Ultimately we determined it was not worth the price tag, and it really didn’t offer anything we couldn’t get with Gtk and a few third party libraries. All of those third party libs were available for free. And the small amount of time it took to gather them was worth saying $6,000 per developer.
If the prices had been more reasonable, the outcome might have been different. But when you consider that you can buy entire Enterprise development products for for 1/5th the cost of what Trolltech wants for Qt, it does look rather overpriced.
Edited 2005-12-20 20:46
We evaluated its various capabilities and wrote some test code taking advantage of the various features. Ultimately we determined it was not worth the price tag, and it really didn’t offer anything we couldn’t get with Gtk and a few third party libraries.
Fair enough. Based on my experience I firmly believe you made the wrong decision, but I realize that you probably have very different requirements.
But when you consider that you can buy entire Enterprise development products for for 1/5th the cost of what Trolltech wants for Qt, it does look rather overpriced.
Perhaps Trolltech should name the next Qt, “Qt Enterprise”.
So called “Enterprise development products” (I assume you mean VS.NET) are only useful if you’re limited to one platform. VS.NET is very nice, but you’re still stuck coding with the windows libraries. I hope we can all agree that MFC is absolutely disgusting to code with and Windows.Forms isn’t much better.
Since when you do you need a special pre-processor to implement signals and slots?
Read this for the rationale of why they didn’t go with a template based solution. Now that we have good compliant c++ compilers, some of the reasons are obsolete, but most of them still hold.
http://doc.trolltech.com/4.0/templates.html
“Read this for the rationale of why they didn’t go with a template based solution. Now that we have good compliant c++ compilers, some of the reasons are obsolete, but most of them still hold.”
I’ve read their rationale before.
If I had to sum up the two main reasons I don’t like moc, I would probably give the following:
1. C++ scoping and visibility rules are widely regarded as baroque enough as it is. moc makes it even worse by adding additional scopes to the already existing ones.
2. And this is the biggest one: moc actually adds new keywords to the C++ language. That’s the main thing I consider gross about it. Maybe I’m a little anal about that, but in my mind, the privilege of adding new keywords to a language is strictly reserved for the committee that maintains the language specification itself. In otherwords, only the ISO standard C++ committee has the privilege of adding new keywords to C++. Not you, not me, and not Trolltech.
And even when the ISO standard C++ commmittee does it, it is only done after a huge a mount of contemplation and debate about whether the benefit is really worth the problems it can cause.
Edited 2005-12-20 21:15
>2. And this is the biggest one: moc actually adds new keywords to the C++ language. That’s the main thing I consider gross about it. Maybe I’m a little anal about that, but in my mind, the privilege of adding new keywords to a language is strictly reserved for the committee that maintains the language specification itself. In otherwords, only the ISO standard C++ committee has the privilege of adding new keywords to C++. Not you, not me, and not Trolltech.
In Germany there is this saying “päpstlicher als der Papst” roughly “more popelike than the pope”.
The pope in this context would probably be Mr. Stroustrup. Who, if the following blog entry is to be believed, seems to use Qt to teach C++ to novices.
http://scottcollins.net/blog/2005/05/travelog.html
(End of “Oxford, England” Piece)
“The pope in this context would probably be Mr. Stroustrup.”
Well, I would say the pope is actually the ISO Standard C++ committee. Stroustrup no doubt has input, but he never really had any kind of say over what the language implemented and what it didn’t. We only have to look at the nightmare that existed before standard C++. As a general rule, C++ code wasn’t even portable on the same platform unless you had the exact same compiler, much less portable across platforms. Lack of standardization was certainly one of the reasons it took C++ so long to achieve widespread acceptance, especially in the Unix community, which still hasn’t accepted it fully. Arguably, more Unix code (application or otherwise) is still written in C than in C++.
> As of Qt 4.1, you don’t have to use them at all if you
> don’t want to. You can even use boost library for
> signals and slots if you’re so inclined.
No, they’ve just added an option to moc to stop moc from creating lower-case keywords that break compilation of code that uses boost::signals or libsigc++. So you have to use upper-case macros instead. It doesn’t change the signal types used in the Qt API.
Anyone knows where I can find QT4 packages for Slackware 10.2 ? Thanks in advance, linuxpackages.net doesn’t have any.
http://www.trolltech.com/video/qt4dance.html
“It takes literally 5 minutes to learn Qt’s so called proprietary extensions and haven’t you heard? As of Qt 4.1”
It’s a gross hack. And “as of QT 4.1″… Read that as “as of today.”
Actually “as of last week”, but okay it is a new development. If this is a gross hack, then a wrapper for a C toolkit like GTKmm for gtk+ (read MFC for Win32) is a gross hack too. A well documented and designed extension to work around deficiencies in the C++ language, to provide useful OO things like introspection, reflection and advanced RTTI is not a gross hack in my book. But then I would take good OO design over strict language compliance any day.
“Qt Designer has always allowed you to design dialogs.”
I never claimed it didn’t. I said I don’t think it is as quick to design dialogs and such in Qt as it is in Glade.
Read your statement again:
“And I have yet to find a UI designer that is anywhere near as powerful as Glade in any language. I can mock up a complex UI in Glade in literally a matter of minutes. And that even includes dialogs. Not just the main application window.”
After that if you still don’t see your implication, get someone else to read it back to you.
Unless you’ve used Qt, Gtk, and WxWidgets, you won’t understand that Qt saves a ton of development time.
I’ve used all three. And I disagree. It does not save development time. And gtkmm is much better designed than Qt when it comes to object oriented design.
Incorrect. Gtkmm is much better designed when it comes to C++ compliance, NOT the same thing IMO.
But fine you’ve made your choice and I’ve made mine.
“If this is a gross hack, then a wrapper for a C toolkit like GTKmm for gtk+ (read MFC for Win32) is a gross hack too.”
Not at all. These are in an entirely different league. These are just libraries that make normal use of C / C++ features. They are not extensions to the core language itself. That is what I consider to be hack.
“I can mock up a complex UI in Glade in literally a matter of minutes. And that even includes dialogs.”
My implication is that is that I can mock the main window PLUS any dialog windows it may spawn, in literally a matter of minutes in Glade. And I can do so even with full layout manager use (not using absolute positioning for widgets). I have yet to find any other glade designer where it can be done quickly and easily.
I never claimed the Qt designer could not do dialogs. I claimed it can’t do them as quickly as Glade.
Incorrect. Gtkmm is much better designed when it comes to C++ compliance, NOT the same thing IMO.
it is much better designed when it comes to OOP. You are equating reflection and introspection as part of OOS. They aren’t. Reflection and introspection are in no way part of what constitutes OOP. The are additional features added ontop.
Now, namespaces, are very much a part of OOP. And last time I used Qt, it didn’t make very good use of them at all.
Reflection and introspection are part of a kind of OOP. Most of the languages and frameworks i know does some of this. Not all, it’s true, but the most important part. And you know what, they are quiet good at that.
I will start to find your comment offensive, since you are clearly implying that anybody using Qt is a moron.
“I will start to find your comment offensive, since you are clearly implying that anybody using Qt is a moron.”
I never said or implied anything of the sort. If you are that insecure that you think I did, that’s your problem. Not mine.
“I never said or implied anything of the sort”
Seriously it’s difficult to tell. You seems to have such a hatred for Qt…
“If you are that insecure that you think I did, that’s your problem. Not mine.”
Ok, so why are you hijacking (or helping to hijack) every Qt thread on this site ?
If you don’t care about Qt, why are you trolling here?
I am tired of the “Qt is expensive” trolls on *every* Qt story. can’t you say it once and get over it?
BTW, Qt is free for open source developers, and cost $ for proprietary developers. So if you are a free software developer, you can use it if you like it. If you are a proprietary developer, you will only use it if it is worth it for you, no big news here. Everybody already know that.
You can say: “I tried Qt in a proprietary shop, it was not worth it.” or “The cost is what is driving me away”. That is fair. But please don’t repeate it over and over again, I got the message already, and I don’t care.
Qt is good for me, that is all I need to know.
“BTW, Qt is free for open source developers, and cost $ for proprietary developers.”
Wrong. It is free for GPL developers. And contrary to what some GPL developers will tell you, GPL is NOT the only legitimate open source license.
And it is not, and never has been free for Windows platforms, whether open source or not. There are a couple of third party attempts at porting a GPL version to Windows. But they are difficult to work with and overall a general pain.
Wrong. It is free for GPL developers. And contrary to what some GPL developers will tell you, GPL is NOT the only legitimate open source license.
Wrong. The QPL let’s you use many other licences, such as the BSD, X11, etc…
And it is not, and never has been free for Windows platforms, whether open source or not.
Wrong again. Qt4 is free for windows. KDE for windows, here we go.
Now, please, please, can you get your information right and stop acting like a troll?
“Wrong. The QPL let’s you use many other licences, such as the BSD, X11, etc…”
There is no way this is possible. Because the BSD license is in no way compatible with the QPL.
The BSD license allows me to take code, package it up, close source it, and sell it commercially. If QPL allowed me to use BSD, then it would effectively allow me to bypass the commercial license requirement.
“Wrong again. Qt4 is free for windows. KDE for windows, here we go.”
That doesn’t count. It requires cygwin. And cygwin != Windows, and comes with all kinds of strings attached to it.
Qt for windows does not require Cygwin at all. I t uses MinGW, see:
http://www.trolltech.com/download/qt/windows.html
“There is no way this is possible. Because the BSD license is in no way compatible with the QPL.
The BSD license allows me to take code, package it up, close source it, and sell it commercially. If QPL allowed me to use BSD, then it would effectively allow me to bypass the commercial license requirement.”
You really don’t know what your talking about. So please stop trolling here. Read the license and come back…wait don’t.
“That doesn’t count. It requires cygwin. And cygwin != Windows, and comes with all kinds of strings attached to it.”
You really don’t know what your talking about. So please stop trolling here. Qt4 is under the terms of GPL and it dosen’t need cygwin. So please try troll things you know something.
“You really don’t know what your talking about. So please stop trolling here. Read the license and come back…wait don’t.”
Considering I have released quite a bit of code under the BSD license, I have read it forwards, backwards and sideways. In a nutshell, BSD makes no requirement that I distribute source code
There is an obvious clash here between QPL and BSD. Because as I said, I am free to reuse BSD code, and close source it and sell it commercially. And this clashes with the QPL which says I can only write free / open source applications unless I buy a commercial license.
You can say I don’t know what I am talking about. But I’m going to maintain my position that there is a conflict between BSD and QPL until you explain to me how this incompatibility may be resolved.
To make it easier for you, I will quote the conflicting clauses here:
BSD:
“Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:”
QPL:
6. You may develop application programs, reusable components and other software items that link with the original or modified versions of the Software. These items, when distributed, are subject to the following requirements:
a. You must ensure that all recipients of machine-executable forms of these items are also able to receive and use the complete machine-readable source code to the items without any charge beyond the costs of data transfer.
There is a clear conflict here. The QPL clearly does not allow certain things to be done that the BSD license does allow to be done.
Again, please explain to me how this incompatibility is resolved?
Edited 2005-12-20 20:18
It is amazing how much uninformed stuff you can write.
There is no way this is possible. Because the BSD license is in no way compatible with the QPL
See with your own eyes: kwin and kicker are licensed under the BSD license:
See an example file:
http://websvn.kde.org/trunk/KDE/kdebase/kicker/kicker/core/appletha…
For more info, here is the license:
http://www.trolltech.com/licenses/qpl.html
That doesn’t count. It requires cygwin. And cygwin != Windows, and comes with all kinds of strings attached to it.
Crap. Qt is GPL in windows (native, without cygwin) since Qt 4.0. Here is the link:
http://osnews.com/story.php?news_id=11008
Now, please stop talking about stuff you know nothing about.
“Crap. Qt is GPL in windows (native, without cygwin) since Qt 4.0. Here is the link”
Which brings me back to the original point. If you want to write Windows code it can ONLY be GPL unless you purchase a commercial license. There is no QPL version of Qt for Windows, right? If there is, I don’t know about it.
So again, we are back to “You can right cross-platform open source applications, as long as they are only GPL.”
So again, we are back to “You can right cross-platform open source applications, as long as they are only GPL.”
Wrong!
The right sentence would be:
“You can write cross-platform commercial and non-commercial applications with the free Qt4 license, as long as you choose a free software license for your work.”
(look at my quote from the Trolltech-FAQ)
“You can write cross-platform commercial and non-commercial applications with the free Qt4 license, as long as you choose a free software license for your
work.”
Wrong.
Because the QPL version of Qt is not available for Windows or OS X. QPL is only available on the X11 version. If you are planning to do open source devel on Windows / OS X, you have to use the GPL licensed version of Qt. And at that point, you can only license your resulting work as GPL.
From Trolltech site:
“For historical reasons, the Qt/X11 version is also available under the QPL license. We do not recommend the use of the QPL, especially if you are planning for your Open Source software to be distributed on Mac OS X or Windows.”
QPL is only an option for X11. Not Windows or OS X. Your only non-commercial option on Windows / OS X is the GPL version. And as I am sure you know, that requires any code you release to be GPL.
So my statement still stands. “You can write open source cross platform software, as long as it is only the GPL version of open source.”
So you told me to stop talking about things I don’t know… Looks like you need to apply the same statement to yourself. Clearly I was correct about the licensing part. If you want to do cross-platform, you can ONLY use GPL unless you buy a commercial license.
Edited 2005-12-20 20:17
You’ve wasted a lot of time to get to the point where you think you have some legitimate argument against Qt, and the funny thing is people still won’t give a damn.
You’ll still be the annoying troll who pops up every time there’s mention of Qt so you can try to take a crap on the people who like it, and after this long display a lot of us know already that you’re a troll. You’re scores on all your anti-Qt comments are above -5 only by the grace of the OSNews staff who have made it very difficult to moderate people down.
All I had to do was watch the comments unfold to see that you were arguing solely for the self gratification of feeling like you’ve inflicted some harm on Qt. Sure you found something you don’t like about it, but the rest of us won’t care, we already know you wouldn’t have stopped until you had some desperate argument that could hold a little water.
It’s rather interesting you chose to respond to my post with critiscm and childish language, instead of address the problem in the post you responded too. The problem pointed out in that post was the obvious licensing conflict between BSD and QPL.
The troll-lifecycle:
First they feed you,
Then they attack you,
Then they ignore you,
Then you are gone.
I think you just entered phase 3
There is no way this is possible. Because the BSD license is in no way compatible with the QPL.
Answere form the Trolltech FAQ:
Entry number: 187 – Can I make software with the Qt Open Source Edition and release it under the GNU GPL, BSD, or Artistic license?
Answer:
Yes. The GNU GPL, GPL-compatible licenses, or any other approved open source license will do. The FSF.org and OpenSource.org web sites list approved software licenses.
That doesn’t count. It requires cygwin.
The free Qt4 for windows doesn’t use cygwin. It’s native Qt for windows!
Please stop talking about things you doesn’t know!
“And it is not, and never has been free for Windows platforms, whether open source or not. ”
Damn. How do I have got that copy of the GPL edition of the Qt4 lib ?? Certainly I should have given some money to someone.
Trolltech “silently” released Qt 4.1 a few weeks ago. I remember the first time I saw it (presumably soon after its initial release) was when I went over to Trolltech’s site to check their Qt API docs. Instead of Qt 4.0, Qt 4.1 was available already, so bam, 4.1.
Umh, do Qt really require that special pre-processor? I’ve heard that you can code that stuff manually if you want to…
Umh, do Qt really require that special pre-processor? I’ve heard that you can code that stuff manually if you want to…
All moc (the meta-object compiler) does is produce an accompanying cpp file for your class to add methods that add introspection, reflection and some translation stuff. It’s all standard C++.
Yes, you could write all of this stuff yourself, but you would have to be crazy to. It is easy to add moc to any build system.
That doesn’t count. It requires cygwin.
Wrong.
http://www.trolltech.com/download/qt/windows.html
You’re an idiot.
> You’re an idiot.
Nice comeback… But it’s ok. I understand. I’m sure you had to tax all the mental power you had even to come up with that much.
I’m sure you had to tax all the social power you had to even come up with an insult like that. Maybe it’s time you find a forum where saying “You’re an idiot” when you can’t/don’t wish to answer the man’s question is considered constructive.
“KDE4 is supposed to take about 1.5 years but now the KDE devs are kicking around the idea of doing a KDE 3.6/ major 3.5 release.
http://lists.kde.org/?l=kde-core-devel&m=113356991430045&w=…
That means the KDE3 codebase would keep moving and take longer to port to QT 4. The KDE devs don’t have enough resources to work on KDE3 and KDE4 in parallel meaning it would push the release really far back.”
This, in my opinion, is not good enough. KDE4 needs to be released in July/August in time to be released with the Oct 2006 releases of SUSE, Mandriva and kubuntu, which coincidentally, would be just before the anticipated release of Vista.
as too the this whole bunch of crap about the inadequacy of QT:
all i need to know is that 4000+ developers choose to pay for QT despite free alternatives, that makes it more than good enough to survive and thrive in my book!
“all i need to know is that 4000+ developers choose to pay for QT despite free alternatives, that makes it more than good enough to survive and thrive in my book!”
That’s really not a very large number. I don’t know why people think it is. JavaOne had over 10,000 developers in attendance… That’s 10,000 showing up for just one conference. and only a very very small percentage of developers actually show up at JavaOne.
Don’t interpret that is trying to start a Java vs. Qt debate. It’s not an attempt at that at all. Only an attempt put things in perspective. 4000 is not a very large number at all in developer terms.
“This, in my opinion, is not good enough”
Yeah I agree, the resources needed for KDE4 is just ridiculous. It seems the KDE devs are falling into the same trap Microsoft got themselves stuck in with Windows Vista.
Frankly I was already pretty unimpressed by KDE 3.5, too much new garbage and serisouly borked Konqueror and Kopete. I just switched to GNOME 2.12 (Ubuntu 5.10). It dosent have all the features I want but I’m happy. Like I said in my earlier post, by the time KDE 4 comes out, GNOME will have put out 5 releases. The next release, due out in a few months, will even start including the beginnings of eyecandy goodness that the KDE devs are promising for KDE4.
New sexy Clearlooks:
http://www.stellingwerff.com/?p=16
Spif-2 branch merged into Metacity:
http://mail.gnome.org/archives/metacity-devel-list/2005-December/ms…
Genie minimzing/maxamizing effect is included but disabled by default.
i agree. i wasn’t impressed by it either. the bloat on KDE is getting worse and worse. by the time KDE 4 is released, it wouldn’t surprise anyone if it needed at least twice the resources as vista. who’s going to want to use KDE when other desktop environments are lighter, considerably more reliable, and becoming more and more popular?
well done KDE devs. not.
It is amazing how these trolls transform every Qt tread in a anti-Qt and anti-KDE flamefest. Seriously, can’t we talk about whats new in Qt 4.1?
That said, I will do the opposite, and answer you. Yes, I don’t make sense.
the bloat on KDE is getting worse and worse.
You wish. KDE is faster every release, the interface is less cluttered, and Qt 4 is faster and has a smaller footprint. And on top of that, KDE starts now as fast as Xfce.
And KDE 4 is scheduled for Q3 2006. So get lost.
It is amazing how these trolls transform every Qt tread in a anti-Qt and anti-KDE flamefest.
No better way to fan a flamewar than to start calling people trolls. Answer constructively or not at all.
Seriously, can’t we talk about whats new in Qt 4.1?
Sure! I’m not sure if it’s in this release, but I reported some accessibility related bugs (exposing Qt interface to MSAA) that they promised would receive attention.. Should improve the accessibility support a lot. That may not be until 4.1.1 though.
No better way to fan a flamewar than to start calling people trolls. Answer constructively or not at all.
You are right, my bad. But it is so hard to listen to the same lame arguments over and over again on every Qt tread. They are:
1) Qt license sucks (enter here GPL, commercial, price, many other reasons). Qt is doomed (won’t be accepted by LSB/Distributions/free software developers/you name it).
2) Qt is slow and bloated, so is KDE. Die, pigy pigy, die.
3) Qt is not standard C++, moc is a sin.
I am afraid I tend to lose my temper over these arguments, not because of them, but because they are repeated over and over again.
I’m not sure if it’s in this release, but I reported some accessibility related bugs (exposing Qt interface to MSAA) that they promised would receive attention.. Should improve the accessibility support a lot. That may not be until 4.1.1 though.
I dunno about Qt4, as I am still using Qt3. But there is growing accessibility awareness in KDE, especially after the Open Document accessibility polemic. Olaf and Gary are working hard, especially with the LSB organizations, kword/koffice and KDE accessibility tools, but I am afraid I am not following what is happening inside Trolltech.
Edited 2005-12-20 22:10
I am afraid I tend to lose my temper over these arguments, not because of them, but because they are repeated over and over again.
I hear ya I find it’s better for my blood pressure to not read the comments on osnews most of the time. I make an exception for Qt stories because I like to make a point of correcting the misconceptions out there. Some are just trolls looking for a reaction, but there are also some people that are genuinely misinformed.
Olaf and Gary are working hard, especially with the LSB organizations, kword/koffice and KDE accessibility tools, but I am afraid I am not following what is happening inside Trolltech.
Yes, Olaf and Gary are doing great work. I follow the kde-accessibility list, but haven’t had much time to help out with code yet. I’m planning on doing my masters in the area, so hopefully I’ll be doing a lot of accessibility related work on *nix then.
> Some are just trolls looking for a reaction, but there
> are also some people that are genuinely misinformed.
And then there are the misinformed trolls. 😉
#customers != #developers. The number published was 4000+ companies using Qt. Some of those have hundreds of developers. This means that the number of professional Qt developers with commercial license agreements is much higher than that.
“This means that the number of professional Qt developers with commercial license agreements is much higher than that.”
as a former qt developer, i know that that equates to a lot of overworked, dissatisfied, and stressed out developers.
Again, if you don’t care about qt, what are you doing in this tread? Get lost, and let people discuss the features and problems of the new Qt 4.1
“Again, if you don’t care about qt, what are you doing in this tread?”
No one is forcing you to reply are they? And I’m not a troll. But if you think I am, I find it interesting you seem to have taken the bait and run with it, despite your opinion I am a troll.
I am just curious. Could you please talk a bit more about yourself, and why you want to bash Qt so much?
Well, I could give you a whole rundown of both technical and philosophical and business reasons I don’t like Qt. And why it But I’m not really sure if you want to hear them.
Simba, if you have the time, I encourage you to fire off an email to trolltech sales with your reasons for not choosing Qt. If there is indeed a large group of people that are put off by the price of Qt, that price may drop. At the moment, there are obviously enough people willing to pay the premium, but times change.
Well, I could give you a whole rundown of both technical and philosophical and business reasons I don’t like Qt.
Hmm. Business reasons – probably legitimate. Technical reasons – I’d be interested to here those, unless what you mean by technical is the stuff about added keywords, hacking c++, etc. I’d consider those more philosophical reasons. Philosophical reasons – this makes me question pretty much everything you have to say. These reasons just aren’t very important when making a rational decision and vary from person to person.
> I don’t like Qt.
amadeo is not asking you for the reasons why you don’t like Qt. He’s asking you why you are here to troll about this fact.
If you don’t like Qt than don’t you use it. Use Gtk+, gtkmm, Java, fltk, or whatever.
There is no need to repeat your “technical, philosophical and business” reason again and again.
Cool, where has this been said? Evereyone else on the net seems remarkably cagey about anything related to the release date for KDE4.
p.s. in your opinion, will Q3 2006 be in time for the Oct 2006 release of SUSE, Mandriva and Kubuntu?
Cool, where has this been said?
On kde-core-devel, they said they are aiming for the 10 years birthday of KDE, which is in Q3 2006.
p.s. in your opinion, will Q3 2006 be in time for the Oct 2006 release of SUSE, Mandriva and Kubuntu?
KUbuntu: probably yes, since they take more chances.
Mandriva: probably not, as they usually wait for thing to get more stable.
i’ll jump ship to whichever major KDE distro ships KDE4 in Oct 2006, if none do then i will unhappily remain with SUSE.
Firefox runs cross platform, what tookit do they use?
.V
They use their own toolkit.
On some unix systems (linux), they use gtk, but not on other platforms. And you can still build it without gtk, so it is more of a “skin” than anything else.
Firefox uses the mozilla toolkit, which is based on an XML markup language called XUL. You can hack the Firefox UI just by editing the XML.
On X11, the mozilla toolkit wraps Gtk. On Windows it wraps native win32 widgets.
Edited 2005-12-20 22:06
You can actually compile it to use QT instead of GTK but that code is still considered buggy, so it defaults to GTK.
I’ve always been interested in XUL, but it’s so damn hard to get started with it. Maybe the situation has improved, but when I tried it about a year ago the documentation was terrible, and I couldn’t find any goo tutorials or minimal examples to start out with. I love the concept though.
http://www.xulplanet.com/
Very amusing to see people desperately try and find fault with Qt. Why do they waste their time posting again and again to discredit a fantastic, free toolkit? Cetainly it is not neutral criticism, for that a couple of posts would be enough. No, there is an unspecified axe to grind here.
The latest Qt release must be something special though, the ’emotional’ response is testament to it! 🙂
More interestingly, it looks like Qt has a nice unit testing framework now – this could be quite beneficial for the next version of KDE.
“Very amusing to see people desperately try and find fault with Qt”
there’s no desperation about it.
The problem pointed out in that post was the obvious licensing conflict between BSD and QPL.
Which licensing conflict? Your “example” was if someone takes BSD code and close it, as the BSD allows you to do, making a conflict with the QPL. You then assert this to be a problem with the QPL, which is false. The incompatible license would be the new closed one, afterall the BSD do not[/i] guaranty inheritance of the original rights when relicensing. Stating otherwise is bull.
“The incompatible license would be the new closed one, afterall the BSD do not guaranty inheritance of the original rights when relicensing. Stating otherwise is bull.”
In the example provided, the licensing terms at the top of the code are clearly incompatible with what can actually be done because of the terms of the QPL. That’s the problem. The license at the top of the code, gives rights to the code which cannot actually be exercised in practice because of restrictions placed on it by externel dependancies. Therefore, QPL and BSD are incompatible.
I don’t know much about licensing specifics, but consider this:
KDE uses all sorts of licenses other than the GPL (including BSD), so it must work somehow.
http://developer.kde.org/policies/licensepolicy.html
Since they are doing a port to Windows, where the QPL is not available, it must also work with the GPL somehow.
What are you even getting at here? Sure you can’t build a BSD licensed program on open source Qt and then close it, but how is that even an issue? If you’re writing open source software with Qt then just use the GPL!
“This means that the number of professional Qt developers with commercial license agreements is much higher than that.”
as a former qt developer, i know that that equates to a lot of overworked, dissatisfied, and stressed out developers.
Even dumbasses can be productive with Qt. This must be some very “special” developers that you are talking about.
” This must be some very “special” developers that you are talking about.”
you must think i’m joking.
According to the customer survey data on
http://www.trolltech.com/newsroom/announcements/00000204.html
there is indeed a <1% portion of developers that would not recommend Qt to others. But 96% would. There’s also data on the “value for money” question for those interested.
“there is indeed a <1% portion of developers that would not recommend Qt to others. But 96% would.”
yes, but what it doesn’t tell you is that half of them had a gun to their heads and the other half were smoking illegal substances.
> what it doesn’t tell you is that half of them had a gun to their heads and the other half were smoking illegal substances.
Hey, they could not simply ignore all those Windows and Mac developers, now could they….
ooooh! and what a surprise that the results were carried out by trolltech themselves…just to make things fair and totally unbiased. it sounds as believable as Microsoft’s ‘Get the Facts’.
Those Bastards! They asked their customers and dared to publish the results on their website. And all that without proper external review!!!!
I bet they even used those electronic voting machines. Diebold where are you? I know you got the other votes hidden somewhere…
I demand that all Trolltechs customers undergo a lie detector test after answering questions….With a death penalty if they dare to say something wrong. Like if they say that they actually like what they use at work. Never heard of that kind of stuff…lying bastards…
“I demand that all Trolltechs customers undergo a lie detector test after answering questions”
you’ll have to wait for the effects of the drugs to wear off.
It’s a questionaire, you don’t have to do any guesswork or interpretation to get the results, you just throw them into excel and generate a graph. It doesn’t matter if santa clause handed it out, the results are going to be the same.
Well, you can subtly manipulate results by changing the way questions are worded. Anyone who has ever done a political poll could tell you that. But for something as simple as customer satisfaction, it should be pretty fair no matter who is sending out the questionaire.
“The license at the top of the code, gives rights to the code which cannot actually be exercised in practice because of restrictions placed on it by externel dependancies.”
The argument is still nonsens. The license on top of the code are only valid for that code, not anything it happens to come in contact with. Don’t confuse source code with the compiled result.
And using exactly the same argument I can say GPL is not compatible with GPL. If I write a application using the GPL linking to a GPL library, and then relicense (since I am the copyright holder it’s my right under copyright law, which is the base of the GPL) under a closed license. Then the library GPL is no longer compatible, hence GPL is not compatible with GPL QED. Which of course is complete nonsens, as are your argument.
The *nix industry is still stuck on Motif apps.
And probably the reason the trolls made the QMotif extension making it possible to do a gradual migration.
http://www.trolltech.com/products/qt/migrate/motif.html
To the person who said it was possible to write completely portable applications in Qt (can’t find the post right now).
I will believe that when:
A: I can download the KDE source and compile on FreeBSD without making changes, and actually have everything work without some parts routinely segfaulting.
B: When the Slackware packages for KDE 3.5 do not segfault as soon as KDE is started with some part of it crashing, and then segfault again when you try to shutdown KDE.
A: I can download the KDE source and compile on FreeBSD without making changes, and actually have everything work without some parts routinely segfaulting.
1. KDE is not Qt. I could just as well say that MFC sucks because Windows crashes.
2. KDE runs fine on FreeBSD. http://freebsd.kde.org/
Do you think all these people are imagining things?
3. No idea what’s wrong with your slackware packages. In any case, how you deduce that it is Qt’s fault is beyond me.
Your increasing ignorance is starting to call into question your previous claims about having experience with lots of development tools and programming in general.
> 2. KDE runs fine on FreeBSD. http://freebsd.kde.org/
No. It doesn’t. The KDE control panel is virtually guaranteed to crash on FreeBSD when you do certain things, and so on.
> how you deduce that it is Qt’s fault is beyond me.
Well, Qt is supposed to provide this wonderful asbtraction layer that isolates OS details right? It’s supposed to abstract GUI, networking, threads, etc. I’ve even heard some (not in this thread) claim that Qt negates the need for Java because it is just as cross-platform.
So then tell me. If that is true, why does it require porting to move a Qt app from one OS to another? I guess the wonderful “cross platform, OS details abstracted away” claims are a little overhyped.
> Your increasing ignorance
Not ignorance at all. The widly fantastic claims about Qt cross platform portability are overhyped.
No. It doesn’t. The KDE control panel is virtually guaranteed to crash on FreeBSD when you do certain things, and so on.
Examples? Links to bug reports?
So then tell me. If that is true, why does it require porting to move a Qt app from one OS to another? I guess the wonderful “cross platform, OS details abstracted away” claims are a little overhyped.
The same reason it requires porting to move a Java or C# app to get from one platform to the next. Somewhere along the way someone has implemented a feature that only exists on one platform, or gotten sloppy and written to a platform’s specific API.
If I implement support for HAL in KDE, then it won’t work in FreeBSD (I think). Has absolutely nothing to do with Qt.
The widly fantastic claims about Qt cross platform portability are overhyped.
If you would provide evidence, people might actually believe you.
> The same reason it requires porting to move a Java
No, it doesn’t. Unless you mucking around with JNI code. If you aren’t, it doesn’t require any porting at all. I routinely develop entire applications on Windows that will be deployed on Linux, and sometimes viceversa. No porting required. Not even a recompile.
Well, in fact I do that too, except that with some crappy hardware drivers, i need to recompile for each platform. Ok, it is not Java the problem.
Where Java is a problem, is when your clients do not want to upgrade there 1.3.1 jre because that version is “security approved” by their own teams. You are then stuck to the 1.3.1 jre, or have a special rebuild for that kind of client. And do not let me tell about the one who *still* use the ms jre, nor those who absolutelly want to be an open-source workshop and only use Blackdown or the GNU Java compiler. Or should I talk about the fact that the Sun jre is not build for each *harware* platform around ?
Java could very well being portable around different hardware, but having replaced the matériel problem by a purely software one reset that advantage to zéro.
(Well, I’m doing Python, Qt4 and JBoss now)
“Where Java is a problem, is when your clients do not want to upgrade there 1.3.1 jre because that version is “security approved” by their own teams.”
That’s true. Not many shops still run 1.3.1. But a significant number still run 1.4 and have not gone to 5. And a significant one of the ones running 1.4 do not intend to go to 5 anytime soon (often in the mistaken “wait for 5.1” strategy, which Sun has made very clear is not going to happen because Java 6 will be the next release, due out third quarter of 2006.)
“Or should I talk about the fact that the Sun jre is not build for each *harware* platform around”
That’s not a huge issue though. Certified compatible JVMs are available for most platforms. IBM makes cerified compliant JVMs for OS/390, AIX, OS/2, OS/400, and others. HP makes certified compliant JVMs for HP-UX, and so on.
“(Well, I’m doing Python, Qt4 and JBoss now)”
Of course, you realize you are going to run into that same “we won’t upgrade” problem with Python right? Especially when Python 3000 comes out.
“Of course, you realize you are going to run into that same “we won’t upgrade” problem with Python right? Especially when Python 3000 comes out. ”
Oh yes, I do !
But yet, Python is a more movable target than Java since it is not very much used as a desktop development framework (on the server side, Python as well as Java, are evolving faster anyway). There is also the fact that this is possible to “import _future_” functionnalities planned for the next release. It helps.
So then tell me. If that is true, why does it require porting to move a Qt app from one OS to another?
It doesn’t require porting. You recompile it.
The widly fantastic claims about Qt cross platform portability are overhyped.
It is the best cross platform option there is. If you think GTK or wxWidgets works well across Unix/Linux, Windows and Mac then give the men in white coats a call. Java’s a decent option, but the best Java client development implementation today is SWT and Eclipse on Windows. It’s hardly on the level of a being cross-platform for Unix/Linux, Windows and Mac, which is what Qt actually is.
Well done. You’re a clueless twit who doesn’t actually use any of this stuff, doesn’t have a clue about the costs involved with many tools and has made a failed attempt at flooding an article about Qt with pointless crap. If you don’t like Qt say your piece, say why and then piss off. When other people point out that you’re wrong and say why then don’t repeat the same thing for over a hundred comments – OK? Do some Christmas shopping or something.
“It doesn’t require porting. You recompile it.”
If you believe that, you really are clueless. I don’t care what toolkit you give me. I guarantee you it will not be this simple with a complex app in C++.
“It is the best cross platform option there is.”
Actually, the best option if you want cross-platform portability is not to use C++.
I could go on, but the point is, relatively speaking in the world of development tools, Qt is very expensive. It is perhaps the most expensive tool I have ever seen.
And you sure know what you are talking about(and I wont even call you on comparing the price of licenses of single platform tools with a multiplatform tool license), so i guess it’s just an accident you forget to mention things like:
Rational Rose Developer for UNIX is 1.6 times more expensive.
Oracle Enterprise Integration Gateways 7 times more expensive.
Oracle Database Enterprise Edition 8 times more expensive.
Oracle Mainframe Integration Gateways 19 times more expensive.
“and I wont even call you on comparing the price of licenses of single platform tools with a multiplatform tool license”
Even if you take a single platform license of Qt, it is three times more expensive than Visual Studio .NET Enteprise edition.
And the Oracle products you mention are not per developer costs. The Qt costs are. (they are also getting somewhat into a different area).
So if you want to step outside of that area, I can paly that game too.
Java Enterprise System, full license: Qt is 66 times more expensive per developer.
So if you want to step outside of that area, I can paly that game too.
You already have played that game, you were comparing Java IDEs to C++ Toolkits.
“You already have played that game, you were comparing Java IDEs to C++ Toolkits.”
I compared a cross-platform solution to a cross-platform solution. And the cross-platform solution I gave (Java) causes fewer porting problems, is faster to develop in, has better networking support, easier to deal with threading, etc.
Now I don’t want to turn this into a Java vs. C++ war. So don’t go there. I am only saying what I said above because I think my comparision was fair. And since Qt promoters themselves often like to claim that Qt largely irrelevates Java, I don’t think it is at all unfair to compare Qt to Java.
I’ve love to see Trolltech implement SSH client support into their product.
That would definately compliment their existing HTTP / FTP protocol support!
Trolltech, if you’re listening, please implement
Ok. New try.
Let’s talk about this release of 4.1 in stead of bitching and moaning about license issues and so on.
I think that Trolltech delivers with Qt 4.1 a very, very nice and polished toolkit. In fact, in the cross-platform arena of C++ toolkits they are number one.
The API of Qt is probably one of the best defined API’s I ‘ve ever seen, and the learning curve (for a C++ programmer) is just… not there.
I’m really wondering where the’re going with this. What will Qt 4 look like in a year? What can they possibly add?
SSH support is mentioned, I would like to see some Qt Solutions be transferred to Qt itself (QtIoCompressor, QtSoap, QtSSLSocket)…
Anyone other ideas?
You should go to discuss on dot.kde.org. Because OSnews is full of trolls(eg. Simba) who don’t know a shit. Comparing toolkit to bunch of IDEs. How stupid can he be?
Why these logistics companies keep buying expensive trucks when they can just buy Fiat Punto?
Sorry my english sucks.
” who don’t know a shit. Comparing toolkit to bunch of IDEs. How stupid can he be?”
I compared the toolkit to the IDE because I needed something to compare Qt to that didn’t result in division by zero (and produce the result that Qt is infinity times more expensve than the competing product) thanks to the fact that most competing products with Qt don’t cost a dime.
But since you want to accuse me being stupid, I will accomidate you and compare the Qt cross platform toolkit, to the underlying source for the IDE:
Qt is infinity times more expensive than Java
Qt is infinity times more expensive than .NET / mono
Qt is infinity times more expensive than the Eclipse RCP framework
Qt is infinity times more expensive than the Netbeans RCP framework.
There. Are you happier now? after all, the theoretical result of division by 0 is infinity.
And by the way, not everything I compared it to was was just an IDE. Visual Studio .NET Enterpise is a HELL of a lot more than just an IDE. And if you don’t know that, you are one who doesn’t know anything.
Not to be picky, but something divided by 0 is not infinity, it is undefined. The limit approaches infinity, but you cannot say that it equals infinity because it doesn’t exist.
Also, while I would agree that Java is more portable than QT, I would definitely NOT go so far as to say that you can simply run a Java app on any platform without even recompiling. Most complex java apps do require a few tweaks to their source code in order to run correctly on different platforms.
“The limit approaches infinity, but you cannot say that it equals infinity because it doesn’t exist.”
To a mathematician, it is undefined. To a theoretical physicist, it is infinity. You can prove this by graphing it on a curve. If you extrapolate it out, at 0, the line goes straight up, which means infinity.
“I would definitely NOT go so far as to say that you can simply run a Java app on any platform without even recompiling.”
Well, recompiling a Java app for another platform (unless you have made changes of course) is pointless. you are going to get the same byte code.
“Most complex java apps do require a few tweaks to their source code in order to run correctly on different platforms.”
Only if you are using JNI. And most of the time when people say you have to recompile and tweak for other platforms, it is because they haven’t had much experience with Java in the last year or so.
These days, even JDIC works without recompiliation of tweaking. Because the VM knows what platform it is running on, and is smart enough to call the right JDIC library at runtime depending on whether it is integrating with the Windows desktop, or the Gnome desktop, or the OS X desktop.
Edited 2005-12-21 21:50
Yes, I know what moc does and why, but that’s an ironic comment for Simba’s sayings… Simba said you are _required_ to use some non-standard hacky thing to use Qt, which isn’t true like you pointed
So if you want to step outside of that area
No, I’m in the same area as you, you said:
“It is perhaps the most expensive tool I have ever seen.”
All the tools I mentioned was from developer sections on Oracles site, making them just as relevant as your Java IDEs.
But if you want direct comparison, try OSF/Motif Source License it’s 3.2 to 5.7 times more expensive(depending on your exact license needs).
All clearly show you don’t have a clue about development tools used in commercial enterprises and their cost.
“But if you want direct comparison, try OSF/Motif Source License it’s 3.2 to 5.7 times more expensive(depending on your exact license needs).”
Yeah. Cause Motif is even in the cards today when considering a toolkit for building a new app. It’s irrelevant. And Motif came along at a time when toolkits were not a commodity. There weren’t many free ones out there. And the free ones that did exist were pretty much unusable for any kind of real projects. Times have changed.
“All clearly show you don’t have a clue about development tools used in commercial enterprises and their cost.”
Nope. I am quite aware of how much tools cost. (The fact that you have to accuse me of not being only shows you have no confidence in your own knowledge). What I find interesting is that you have to pull out a dead toolkit to find something that costs as much as Qt.
Sorry to give this idiot (simba) more chance to spam.
I don’t care where you go, just go away. Do you think anyone reads what you post any more?
I do not care what you think about QT. QT is a neat tool kit. QT works. I don’t mind paying for something that works. I do not care about gtk. You do not see me bitching abou gtk.
If QT is over priced and didn’t work, then it would be gone by now.
I’m glad you hate QT. Good for you. I’m tired with your skills of hitting the post button. If you don’t have anything constructive to say, shut your hole. At this point your just making a problem out of your self. You can not “win” this debate, becuase you have made your self out to be the bad guy in every way possible. you’r also talking about something that no one gives a shit about in the long run.
> You can not “win” this debate
The fact that you had to resort to childish name calling means I already did beat you at it.
Thank you, and have a nice day.
In most cases, Qt cleanly compiles on multiple platforms without any issues. Unless the application developer uses native OS calls like WIN32. I’ve created applications that compile and run on Windows, Linux and Mac OS X just by recompiling. Unfortanely I find the Mac OS X port a bit slow (But it has definitely improved in QT 4).
I can’t believe some of the arguments people have against Qt. Here are my views
1. If you are a serious developer who writes serious applications then the cost of Qt is not much, and IMO worth every penny. The support you get is excellent. This comes from someone who started developing with Gtk and then purchased Qt.
2. Who honestly cares if it adds new keywords to C++, all it does is help speed up a developers work. If you don’t like the new keywords then don’t use them, or don’t use Qt.
3. You only need to look at the quality of KDE to realise the power of QT. KDE 4 will be brilliant. In contrast Gnome looks and acts dated. This is purely my own opinion, I know people prefer Gnome to KDE.
4. Qt is available for open-source software on Windows. If you are going to sell your software, then you should pay the cost of whatever toolkit you’ve used.
“In contrast Gnome looks and acts dated. ”
thats a new definition. so when applications look professional and act reliably, quickly, and smoothly, they are called ‘dated’. you should enter this new definition into the Oxford English Dictionary.
“If you are a serious developer who writes serious applications then the cost of Qt is not much, and IMO worth every penny.”
I disagree. But this is obviously a matter of opinion we are not going to agree on. So I won’t rehash any reasons why I disagree again.
“Who honestly cares if it adds new keywords to C++, all it does is help speed up a developers work. If you don’t like the new keywords then don’t use them, or don’t use Qt.”
I do. And so does everyone else who is trying to port code to Qt where they have a conflict because Qt decided to define a global reserved word that they might have already used for something else.
moc polutes the global namespace in the worst way possible. Because even inside code blocks, there is no shadowing of keywords. This is absolutely the worst form of global namespace polution you can do.
It can cause problems with third party libraries too. Basically, Trolltech has come along and said “If you are designing a library that someone might want to ever use with Qt (even if totally unrelated to Qt), you cannot use these words, because we have declared, outside of any authority, or without running it past ISO C++, or getting any kind of industry approval at all, that these words are reserved for our use).
It was a stupid idea. It was a bad idea. And quite simply, adding new keywords to a language is a big NO–usually it is even a big NO if you are the language committee itself. As I said before. Messing with the keywords is a privilege reserved only for the language committee. And even then, only with extremely careful consideration. It is not a privilege for you, me, or Trolltech.
As I pointed out before, there is a VERY good reason new keywords are almost never added to a language, and a very good reason why when they are, they are only done so after extremely careful consideraton.
“You only need to look at the quality of KDE”
That’s subjective. I personally think KDE bloatware run amock. It’s ugly, bloated, slow, buggy, and gets in my way with things I don’t want.
“Qt is available for open-source software on Windows.”
Again, only if the GPL brand of open-source software. QPL is not an option on Windows. So the only kind of open source software you can write on Windows with the free version of Qt is GPL.
Edited 2005-12-21 22:04
haha dream on! yes, but reality of the situation is nothing at all like that. have you EVER heard of any HONEST person who uses kde that doesn’t complain about the applications crashing and the buggy framework? i think not. you only have to look at all those pissed off kubuntu, mandriva, and <insert fave buggy kde distro here> users to realise that.
I use KDE and I don’t haven’t seen a KDE app crashing for a very long time. Maybe Debian is more stable than other distributions, but I doubt that this is the reason because I use Debian SID. I guess it is just FUD that you spread. I could as well say that I don’t use GNOME because GNOME/gtk applications are crashing all the time and nobody could verify it. So please give some details about where you KDE applications are crashing and what you were doing when your KDE applications are crashing and maybe include a backtrace.
But I guess you are just one of these GNOME fanboys that have to spread the same old lies whenever there is an article about Qt/KDE. Why can’t you people just grow up? Nobody will start to use GNOME because of this FUD, on the contrary I would rather by a Mac than become part of the GNOME community which is full of trolls and really the worst open source community I know. Sorry to all those GNOME people that are not part of the spread FUD about Qt/KDE department, but I think it is just annoying that some GNOME trolls have to hijack every Qt/KDE thread and make up some childish and stupid flamewar.
A couple of other options to Qt which are LGPL allowing static linking:
TnFOX – FOX + Qt compatible api extensions
SPTK – FLTK + layout manager, db interfacing & xml parsing
At work we’ve been using Qt for a while, but we fall into small independent shop catagory which doesn’t generate revenue from direct software sales.
And it’s a good policy to separate your critical code logic out from dependence upon any of these toolkits if possible.
Yes, I know what moc does and why, but that’s an ironic comment for Simba’s sayings… Simba said you are _required_ to use some non-standard hacky thing to use Qt, which isn’t true like you pointed
If Simba thinks moc is non-standard and hacky, then he doesn’t know much about enterprise software development (but then he’s proved that with his postings already). I guess build tools like lex, yacc and idl are non-standard and hacky too!
“I guess build tools like lex, yacc and idl are non-standard and hacky too!”
Actually, I do quite a bit of enterprise development.
And yacc, and lex and idl are not in the same league. They do not add keywords to C++ like moc does. They do not pretendt to be “C++ with extra keywords”
Adding new keywords to C++ was a stupid idea. It creates a serious global namespace polution problem that doesn’t have any real workd around.
So I strongly suspect you are the one who hasn’t done any enterprise development. If you have, you would know why it is a very bad idea to polute the global namespace like that, which is basically what moc does, but does it in a way that is even worse than average.
“Adding new keywords to C++ was a stupid idea. It creates a serious global namespace polution problem that doesn’t have any real workd around.”
It is possible to work around any name clashes by defining QT_NO_KEYWORDS, see
http://www.trolltech.com/developer/changes/changes-4.1.0.html
From the changes file:
“Added boost compatible syntax for declaring signals and slots. If you
define the macro QT_NO_KEYWORDS, “Q_SIGNALS” and “Q_SLOTS” are
recognized as keywords instead of the default “signals” and “slots”.
Added a new keyword to qmake to enable this macro: CONFIG += no_keywords.”
“Added boost compatible syntax for declaring signals and slots. If you
define the macro QT_NO_KEYWORDS, “Q_SIGNALS” and “Q_SLOTS” are
recognized as keywords instead of the default “signals” and “slots”.
Ok. That’s good to know. That is a MAJOR improvement over signals and slots as keywords.
I still don’t particuarily care for it though. Why global macros with the “Q” prefix? C++ has had namespaces for years now. Why don’t they use them?
> As of Qt 4.1, you don’t have to use them at all if you
> don’t want to. You can even use boost library for
> signals and slots if you’re so inclined.
No, they’ve just added an option to moc to stop moc from creating lower-case keywords that break compilation of code that uses boost::signals or libsigc++. So you have to use upper-case macros instead. It doesn’t change the signal types used in the Qt API.
My point was that you can use boost signals and slots for your own code. Never mind.
By the way, I have to say I love the abuse of the moderation system going on here.
I get modded down to -3 for responding to a comment where all the poster said to me is “you are an idiot”.
But the original “You are an idiot” post didn’t get modded down at all.
Clearly the moderation system doesn’t work at all. Since people just keep being immature and childish and abusing it anyway.
“Added boost compatible syntax for declaring signals and slots. If you
define the macro QT_NO_KEYWORDS, “Q_SIGNALS” and “Q_SLOTS” are
recognized as keywords instead of the default “signals” and “slots”.
Ok. That’s good to know. That is a MAJOR improvement over signals and slots as keywords.
I still don’t particuarily care for it though. Why global macros with the “Q” prefix? C++ has had namespaces for years now. Why don’t they use them?
Because macros don’t mean $hit within namespaces? Trolltech worked a compromise to provide the maximum benefit to all their customors. You may call it a “stupid idea”, but maybe you should consider the issues at hand. They had to avoid namespaces, templates and STL because all compilers did not support these features correctly. The ANSI C++ has had namespaces for years now yes, unfortunately legacy compilers do not. To dump support for them was to piss off paying clients who cannot upgrade to the latest and greatest tools at the drop of a hat.
That’s the real problem here – Trolltech work in the real world, you work in an “ideal” one.
It would be nice to see Qt use namespaces, boost-style signals and slots and deprecate MOC. Unfortunately they cannot (for a number of reasons) and most of us have the insight to see why. Most of us also have the insight to work around the problems introduced by a poluted namespace. Hell I’ve worked on at least five major projects using Qt and supported across eight platforms. Of all the problems encountered, I can barely remember one related to the use of Qt, MOC or it’s “misuse” of the global namespace. Why? Because if there were any, they were never really that hard to solve, compared with real problems.
“And yacc, and lex and idl are not in the same league. They do not add keywords to C++ like moc does. They do not pretendt to be “C++ with extra keywords”
It doesn’t “pretend to be C++”. It uses macros and yes, I know macros are BAD (TM), but macros are already a problem that C/C++ programmers are used to dealing with. If the Qt libraries were written for the first time today, it might not use them, but then the problem is not that hard to work around anyway.
Adding new keywords to C++ was a stupid idea. It creates a serious global namespace polution problem that doesn’t have any real workd around.
No-one at Trolltech is “stupid” nor are their ideas. Once you understand their motivations, you might understand better why this compromize was necessary.
So I strongly suspect you are the one who hasn’t done any enterprise development. If you have, you would know why it is a very bad idea to polute the global namespace like that, which is basically what moc does, but does it in a way that is even worse than average.
You don’t suspect that at all. It’s just a defensive reaction to my comment and we both know that. It would be interesting to see you qualify “worse than average”.
“No-one at Trolltech is “stupid” nor are their ideas.”
Yes, the keywords were a stupid idea. Which Trolltech finally realized in 4.1 it seems as they now allow you to use Q prefixed macros instead of globally poluting keywords that have a strong possibility of not being unique to Trolltech or Qt.
“It would be interesting to see you qualify “worse than average”.”
What I mean by “worse than average” is that usually when people polute the global namespace, they at least try to make it so that the name is likely to be globally unique and not clash with other names. Furthermore, usually global namespace polution does not reach inside code blocks, where things can normally be shadowed / replaced with local versions.
Worse than average, is taking words like “slot” and “signal” and turning them into globally polluting keywords. That was a stupid idea. And it was an idea that seems to suggest Trolltech never even considered that that their toolkit would be used outside of a Qt vacume.
Edited 2005-12-22 03:45
A question : from my days as a Delphi/C++Builder developer, I seem to remember that C++Builder is quietly *full* of Borland’s custom keywords, like “_property” or “_writer”. I have a faint memory of C++ speaking about the custom language that MS had added to Visual C++ and that Watcom C++ was not even the most standard compliant. In fact, I even think that custom keywords was a part of the language.
Can anybody confirm of find texts about this ??
“A question : from my days as a Delphi/C++Builder developer, I seem to remember that C++Builder is quietly *full* of Borland’s custom keywords, like “_property” or “_writer””
Yes. But this is acceptable, and actually falls within the C / C++ guidelines. Because if you recall the C specifications, they say that names beginning with a single underscore are reserved for compiler writers to do their own thing with. This is why you are told that even though it is syntatically legal for you to name variables and functions beginning with a single underscore, that you are discouraged from doing so, because names beginning with an underscore are reserved for compiler vendors, and you could run into a clash with compiler defined name (that might not even be documented).
Edited 2005-12-22 08:32
Ok, i wasn’t sure.
Well, I’ve said before that Qt works for me, it’s still true.
“It doesn’t require porting. You recompile it.”
If you believe that, you really are clueless. I don’t care what toolkit you give me. I guarantee you it will not be this simple with a complex app in C++.
He is not clueless at all.
Actually it is that simple, if you don’t do stupid things and get to know where your compilers’ tolerences lie – 99% of issues will be compiler differences, not Qt-related problems (stick to the ANSI standard and you will be fine).
The vageness of your “I don’t care what toolkit you give me” shows you haven’t used Qt recently. If you use wxWindows, it may not be this simple; if you use Gtk+ it is probably not this simple; with Qt it actually is this simple.
“with Qt it actually is this simple.”
I will believe this when you can show me an example of a complex Qt application that I can build on Linux, FreeBSD. Windows, and MacOS without making any changes to the source code at all. And no, you can’t give me “hello world”. I want something complex. Complex GUI, networking, threads, etc.
“I will believe this when you can show me an example of a complex Qt application that I can build on Linux, FreeBSD. Windows, and MacOS without making any changes to the source code at all. And no, you can’t give me “hello world”. I want something complex. Complex GUI, networking, threads, etc.”
Sorry all my code is closed source. My company doesn’t release on OSX, but for all of the others, you can take my word for it.
I’d like to see a Java app that does the same though, I mean to all the criteria that you have stated above. “Complex GUI” is the one that it always seems to fall down on. I would like to qualify it with “native look and feel” and “responsive”. Admittedly Java is pretty decent at everything else.
“Sorry all my code is closed source. My company doesn’t release on OSX, but for all of the others, you can take my word for it.”
So you can’t point me to an open source one?
“I would like to qualify it with “native look and feel” and “responsive”.”
Well, if native look and feel is a huge issue to you, yes, it is a problem. But Qt doesn’t solve that either. The few Qt apps I run look horribly out of place on my Gtk based desktop.
And when it comes to responsive, Swing apps are just as responsive as native apps once the program has started. In cases where it is not responsive, it is usually because someone decided to perform a long running process on the event dispatch thread. But that isn’t Java’s fault. I could do that in any toolkit and have the same result.
Ok, how about two?
Skype. (http://www.skype.com/)
Psi. (http://psi.sf.net/)
-clee
These are just libraries that make normal use of C / C++ features. They are not extensions to the core language itself. That is what I consider to be hack.
Fair enough. I’ll take the good API, comprehensive documentation and stability over “perfect C++” any day.
“I can mock up a complex UI in Glade in literally a matter of minutes. And that even includes dialogs.”
I’ll take your word for it. I can knock up a bunch of dialogs and windows in a few minutes in Qt Designer, but I doubt that either of our efforts will be any good usability wise, so the point is somewhat moot.
I have yet to find any other glade designer where it can be done quickly and easily.
Hmmm. How many “Glade Designers” are there?
it is much better designed when it comes to OOP. You are equating reflection and introspection as part of OOS. They aren’t. Reflection and introspection are in no way part of what constitutes OOP. The are additional features added ontop.
Fine. Lets get one thing straight. Only three things constitute OOP – objects/encapsulation, inheritance and polymorphism. Anything else is a subjective list of which features empower you when designing software. I happen to value reflection and introspection. You happen to value namespaces.
Now, namespaces, are very much a part of OOP. And last time I used Qt, it didn’t make very good use of them at all.
True. Cry me a river.
“Anything else is a subjective list of which features empower you when designing software. I happen to value reflection and introspection. You happen to value namespaces.”
I value reflection and introspection as well. But they are not nearly as “central” as the idea of not poluting the global namespace. Reflection is not commonly used except by people writing development tools, frameworks, or trying to load and run new / unknown objects dynamically at runtime.
Edited 2005-12-22 03:54
“Worse than average, is taking words like “slot” and “signal” and turning them into globally polluting keywords. That was a stupid idea. And it was an idea that seems to suggest Trolltech never even considered that that their toolkit would be used outside of a Qt vacume.
Myself and 80 other developers do not work in a Qt vacuum (whatever that is). Interestingly enough, in all the other libraries we use (3rd party and in-house) we have never had a naming collision with either ‘signal’ ‘slot’ or even ’emit’. I guess we’ve just been lucky (or maybe you are the one who has been unlucky! – the majar part of 180 posts is an odd way to vent your grievences though).
Well, you’ve never run into a collision. And others probably haven’t either. Some definitely have.
But whether you have actually experienced a problem with it or not, it’s hard to suggest that it was not a bad design decision on the part of Trolltech unless you are just blindly supporting anything they do. Poluting the global namespace with common words like slot, signal, and emit, was a bad design decision and violated one of the most basic tenants of good software engineering. Basically it goes something like this:
If you must polute the global namespace, at least try to choose names that are likely to be globally unique.
For whatever reason, that was ignored.
Edited 2005-12-22 04:09
I value reflection and introspection as well. But they are not nearly as “central” as the idea of not poluting the global namespace. Reflection is not commonly used except by people writing development tools, frameworks, or trying to load and run new / unknown objects dynamically at runtime.
Introspection/reflection is very useful when writing scriptable applications and applications that employ the use of macros. In my field of EDA, this is very common. These kind of features yield benefit to the end user. Namespaces are a nicety for the programmer. As far as being “central” is concerned, we are just arguing woolly semantics now.
“Introspection/reflection is very useful when writing scriptable applications and applications that employ the use of macros.”
Sure. Which probably puts you in the third category I mentioned “people trying to load and run new / unknown objects dynamically at runtime”.
“Namespaces are a nicety for the programmer.”
No argument here. But anything above assembly language is just “a nicety for the programmer”. After all, ultimately all programs ever created can be written in assembly language. The vast majority of what we consider to be good programming practice is more to do with making things nice for programmers. It doesn’t change the end user perspective very much. I can do the same thing using spaghetti code as I can with structured programming, and the end user won’t know the difference.
“I can do the same thing using spaghetti code as I can with structured programming, and the end user won’t know the difference.”
…except when it crashes repeatedly.
Sorry all my code is closed source. My company doesn’t release on OSX, but for all of the others, you can take my word for it.”
So you can’t point me to an open source one?
No, but then I’m not the expert on open source software here. I’m not aware of any open source software written with any language/framework that satisfies the requirements that you stated. I guess Firefox comes close (don’t know how it fares on OSX).
If it were that simple, Qt would have no commercial customers. As it is, Qt has several thousand customers and TrollTech’s recent expansion indicates that their business is growing.
In my opinion, Qt is a far nicer toolkit to work with (from a programmer’s point of view) than Gtk – I’m very sure that it would take me longer to code a functionally equivalent application in Gtk compared with Qt.
$6000 is not a huge sum for many ISVs, and if it can significantly increase developer productivity, thus helping the company get their product to market faster and giving them an advantage over their competitors, it is worth the cost.
ahu ?
I like Qt too, but I don’t think productivity is less with java.
The libraries are as good (or even better). They include libraries for sound, GUI, network, encryption, fonts, video playback, …
They are also a lot of good frameworks/libraries available at the apache-project
Of course, you got all that too with Qt.
The type safety of java makes life much easier (segmentation fault, everyone?).
Java also allows good IDE’s to exist, because parsing of java is easier (the language is not has complex as C++)
————-
So, again , my points :
* I like java.
* I like Qt
* I believe, coding with java is faster, because of type safety.
* java has good IDE’s (C++ has no good free IDE, the best one I found so far was eclipse + CDT).
“java has good IDE’s (C++ has no good free IDE, the best one I found so far was eclipse + CDT).”
I think KDevelop should qualify. Only on X11, however. Eclipse is good enough, in fact
“The type safety of java makes life much easier (segmentation fault, everyone?). ”
Two month ago I had an interesting failing of the 1.4.2_08 jre (or the _07 ? don’t remember) with a core dump and so on. The first segfault I have ever see under a java virtual machine. With Java, or in fact with any VM around here, the most frequent failure you’ll see is a kind of memory overload.
I see your point however, my comment was only to say that there is no silver bullet.
KDE 4 was (and imho IS) supposed to be out around or even before this time next year. maybe some application dev’s will push out a new 3.5 release, but it is unlikely (read the rest of the thread you mention) there will be a 3.6 release.
Wrong, Qt/X11 Open Source edition is dual licence : GPL and QPL, and the QPL is compatible with a lot of other open source licence like BSD.