Slashdot Mirror


In-Depth With Qt 4.4

QtPi writes "Trolltech has announced the availability of Qt 4.4, the cross-platform software development framework. Ars Technica has an in-depth look at the release, which include an integrated WebKit-based HTML rendering engine, the new Phonon multimedia framework, support for Windows CE, and significant improvements to the QGraphicsView system. 'Qt 4.4 brings a lot of rich new capabilities to the toolkit that are sure to please open source and commercial software developers. It sounds like Trolltech already has some nice plans for Qt 4.5, and we will hopefully get to hear more about the long-term roadmap after Nokia completes its acquisition.'"

253 comments

  1. Widgets in QGraphicsView look *really* promising by Enleth · · Score: 5, Informative

    Graphics View alone is an extremely powerful tool - now it seems to be able to do things no other toolkit comes even close to. I can't wait to use 4.4 in an application I'm developing right now (a game map editor), this feature will allow me to make some parts of the user interface a whole lot simpler and more intuitive, throwing away a bunch of docks and toolbars in favor of a more interactive workspace.

    --
    This is Slashdot. Common sense is futile. You will be modded down.
  2. FP by Anonymous Coward · · Score: 1

    Just started learning Qt. It's really well made toolkit. Looking forward the windows version of KDE.

  3. I stopped caring about Qt by QuantumG · · Score: 2, Interesting

    Great as it is, I can't use it.

    On Linux the libraries are now so damn big that non-KDE users wont install them.

    On Windows the best development tools are moving away from C++.

    On Mac it's just plain ugly.

    I'm sure the embedded developers are loving it though.

    --
    How we know is more important than what we know.
    1. Re:I stopped caring about Qt by PitaBred · · Score: 3, Insightful

      libqt-mt is about 10MB on my system. That doesn't seem too ungainly, not to mention QT4 has made large strides into componentizing the library so it's not all just one huge library to load, you can load only the parts you want.

    2. Re:I stopped caring about Qt by Anonymous Coward · · Score: 0

      You should try it using Python with PyQt: a charm.

    3. Re:I stopped caring about Qt by flymolo · · Score: 1

      On Mac it's just plain ugly. It looks native on Mac. I'm using it now. Sadly it isn't 64 bit yet, but that's slated for 10.5 .
      --
      "Sometimes it's hard to tell the dancer from the dance." --Corwin Of Amber in CoC
    4. Re:I stopped caring about Qt by QuantumG · · Score: 2, Informative

      It looks quasi-native.

      --
      How we know is more important than what we know.
    5. Re:I stopped caring about Qt by Enleth · · Score: 2, Insightful

      While you are technically right on those issures, I'd dare to say they're, well, non-issues compared to what Qt offers, save for the Mac version ugliness.

      Frankly, I don't see any reasonable, sincere and unbiased way of arguing that a few megabytes more is enough to dismiss a toolkit completely.

      As for the Windows development problem, Visual Studio 2008 which is hailed even on Slashdot as the best (or at least one of the best) Windows IDE out there supports C++ just as well as other languages. So what did you actually mean by "moving away"?

      And, actually, even the point about Qt being ugly on Mac, while true, is pretty meaningless, as the only other toolkit (AFAIR - please correct me if that's not the case anymore) that has native Mac OS X support is wxWindows and it's about as ugly there.

      --
      This is Slashdot. Common sense is futile. You will be modded down.
    6. Re:I stopped caring about Qt by larry+bagina · · Score: 2, Interesting

      I installed Vidalia on my mac and didn't realize it was QT until I found the option to change the appearance.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    7. Re:I stopped caring about Qt by Anonymous Coward · · Score: 1, Funny

      On Linux the libraries are now so damn big that non-KDE users wont install them. ...
      I'm sure the embedded developers are loving it though. Can someone here who is a neuro-surgeon PLEASE help me put my head back together...it exploded while trying to tie these two comments together

    8. Re:I stopped caring about Qt by Verunks · · Score: 5, Interesting

      libqt-mt is probably qt3 not qt4, but anyway qt4 provides a lot of things and nowadays disk space is not a problem, try to mix together gtk+libxml+webkit/gecko+many more things and you'll probably use much more disk space than qt4 with different api and with all kind of cross platform issue I don't understand your problem with windows, but qt4 isn't just c++, there are many bindings for python, ruby and even c# on mac os x qt4 looks good to me, there is even an alpha version of qt4 that uses cocoa instead of carbon

    9. Re:I stopped caring about Qt by QuantumG · · Score: 1

      Blah, if people won't install your app for any of these reasons then they are important.

      --
      How we know is more important than what we know.
    10. Re:I stopped caring about Qt by QuantumG · · Score: 1

      Memory is cheap but downloading 10MB still takes too long when all you want to install is a tiny app.

      --
      How we know is more important than what we know.
    11. Re:I stopped caring about Qt by Kjella · · Score: 2, Insightful

      On Linux the libraries are now so damn big that non-KDE users wont install them. I take it you run no Java apps at all then? One of those suck down way more than Qt does. Plus it's modular so you can take your pick, but if you want a core + ui + network + sql + xml + svg + unit test + opengl framework yeah it adds up. I think you get a lot more than GTK does though. And seriously, even with all of them you're talking 10-15MB in a world where 4GB DDR2 costs 60-65$.

      On Windows the best development tools are moving away from C++. We'll see, C++ certainly isn't going away fast. The tools are good and there's plenty developers so I wouldn't worry about starting a C++ project. DotNET seem to be going through pretty many and large revisions and I understand not all is happy in the land of managed code. I think C++/Qt has just as durable a life as C#/.NET.

      On Mac it's just plain ugly. Wouldn't know, don't have one. Worse than other cross-platform tools as it seems to be Mac users are never happy with anything not native Mac?

      I'm sure the embedded developers are loving it though. Probably.
      --
      Live today, because you never know what tomorrow brings
    12. Re:I stopped caring about Qt by pherthyl · · Score: 4, Insightful

      >> On Linux the libraries are now so damn big that non-KDE users wont install them.

      That's ridiculous. Only the hardcore GTK purists won't install qt libs. No one else will ever know or care. You can never please those fanatics. If you use GTK you will have the same problem with hardcore Qt purists. You can safely ignore those idiots.

      >> On Windows the best development tools are moving away from C++.

      As others have mentioned, that's not the case at all. Visual Studio has excellent C++ support in its latest versions, and there are lots of decent free alternatives (Eclipse CDT, dedicated stuff like QDevelop).

      >> On Mac it's just plain ugly.

      I can't say much about that since I don't use a mac, but some other people have mentioned that they didn't even notice the difference on some Qt using apps. Once again I doubt it's an issue for anyone except the hardcore purists.

      And what's the alternative? Write a custom UI for each platform? Maybe if you have resources to burn, but these days it's just a huge waste.

    13. Re:I stopped caring about Qt by Kjella · · Score: 4, Insightful

      It's a most troubling prospect you bring up there, if only there was a way that several applications could share the same library. Maybe we could create some sort of package system, where you download the library just once from something we could call a repository. Then we could have a package manager to sort this out, so that you could have tiny 100kb apps using a 10MB library. Oh, a man can dream...

      Seriously though, it might have been a semi-valid point on Windows but on Linux where he used it it's complete nonsense.

      --
      Live today, because you never know what tomorrow brings
    14. Re:I stopped caring about Qt by Enleth · · Score: 3, Insightful

      If your app risks being dismissed by the user for such reasons, you have some serious problems than just the toolkit you are using. Like, well, the app being nothing of particular value usefulness compared to the alternatives or something along these lines.

      --
      This is Slashdot. Common sense is futile. You will be modded down.
    15. Re:I stopped caring about Qt by Enleth · · Score: 0, Offtopic

      Crap, missed "more" and "or" even when previewing. Excuse my sloppiness, I think I need some sleep now.

      --
      This is Slashdot. Common sense is futile. You will be modded down.
    16. Re:I stopped caring about Qt by domatic · · Score: 1

      It also means Mac users just make a pain in the ass of themselves to support. Say I develop an app. The Windows users like it. The Linux users like it and the BSD users like it. Hell, it even got ported to Amiga and they like it too. But then I find my inbox stuffed full of whinging from Mac users and maybe I don't even have a Mac. Some other developer was kind enough to fix it so XCode would build it so I chucked in my tree and why not?

      Enough of that brand of bullshit, and I would happily say "fuck it" when it comes to Mac support. Hell, and I even like OS X. I'm not a Stevie jobs fanboi but I like it well enough. I don't if I'd like it well enough to give gifts to what seems to be it's typical user though.

    17. Re:I stopped caring about Qt by Otter · · Score: 2, Insightful
      Blah, if people won't install your app for any of these reasons then they are important.

      No Windows user is going to not use your app because C++ is out of fashion on that platform. Only the dumbest Linux users would do something like that.

    18. Re:I stopped caring about Qt by Urza9814 · · Score: 1

      Dude, unless you're on dial-up, 10MB is nothing. I can download that in 10 seconds on my crappy Comcast. I've seen _websites_ that are bigger than 10 megs. Yea, they're extremely annoying websites, but they're there. Professionally done ones too.

    19. Re:I stopped caring about Qt by Blakey+Rat · · Score: 1

      Wouldn't know, don't have one. Worse than other cross-platform tools as it seems to be Mac users are never happy with anything not native Mac?

      Appearance is important, but more important is behavior. Most if not all cross-platform toolkits get a LOT of basic behaviors completely wrong, including Firefox. (Disclaimer: haven't been a heavy OS X user in about a year.)

      For example, position the text cursor at the bottom of a multi-line text field, then hit the down arrow. What happens on Windows? What happens on OS X? How come your supposedly cross-platform toolkit gets this wrong?

    20. Re:I stopped caring about Qt by hazah · · Score: 1

      Only the dumbest Linux users would do something like that. I would imagine that the OS of choice is not so much the issue. But the dumbness of a person would certainly play a crucial role. Or are you just flaming?
    21. Re:I stopped caring about Qt by hazah · · Score: 1

      sarcasm?

    22. Re:I stopped caring about Qt by MalleusEBHC · · Score: 1

      If gaining Mac users is your goal, then the toolkit is not a trivial issue. Many Mac users, myself included, are very finicky about apps that do not look or feel like Mac apps.* Using an app that looks significantly out of place in an otherwise consistent UI is very annoying, and the app would need to be significantly better than the alternatives. I fully understand why some developers steer clear of Mac support for that very reason, but it is a reality, and it's not going away.

      * In rough terms, a traditional Mac app will be Cocoa or Carbon and follow Apple's interface guidelines.

    23. Re:I stopped caring about Qt by Cardoe · · Score: 1

      And seriously, even with all of them you're talking 10-15MB in a world where 4GB DDR2 costs 60-65$. It was this mentality that brought us Vista. Seriously folks, just because the RAM is there and the CPU is there does not mean you should be extra wasteful. This is why computers are following Moore's Law but not really getting any faster.
    24. Re:I stopped caring about Qt by Anonymous Coward · · Score: 0

      I take it you run no Java apps at all then?

      Does anyone?
    25. Re:I stopped caring about Qt by Ant+P. · · Score: 2, Interesting

      I'm not sure what a hardcore GTK purist is... is that someone who refuses to install Gnome because it requires about 50 different toolkits and frameworks? Someone who refuses to use Firefox because it uses XUL?

      Honestly I used to run Gnome a long, long time ago, and avoided installing anything Qt-related because of how big it looked. Then I looked at the hundred or so separate libraries needed to run the bland windows 3.1 clone on my screen and I realised I had it completely backwards.

    26. Re:I stopped caring about Qt by andreyvul · · Score: 1

      I've seen _websites_ that are bigger than 10 megs Links, please?.
      --
      proud caffeine whore
    27. Re:I stopped caring about Qt by Otter · · Score: 0, Flamebait
      I would imagine that the OS of choice is not so much the issue.

      You imagine erroneously. Using one application over another because "I prefer to C to C++" is a form of stupidity unique to Linux users.

    28. Re:I stopped caring about Qt by Anonymous Coward · · Score: 0

      That sucks, but as a developer I don't really care. I'd much rather compete with other products on features, and let Trolltech worry about making my app look pretty on Mac. Maybe they'll never do it, but as long as they're making Qt more awesome everywhere else I don't mind too much.

      Then again, gaining Mac users isn't particularly something I'm aiming for.

    29. Re:I stopped caring about Qt by Cryacin · · Score: 1

      It's a most troubling prospect you bring up there, if only there was a way that several applications could share the same library. Maybe we could create some sort of package system, where you download the library just once from something we could call a repository. Then we could have a package manager to sort this out, so that you could have tiny 100kb apps using a 10MB library. Oh, a man can dream... What? Sort of like FLASH? (ducks)
      --
      Science advances one funeral at a time- Max Planck
    30. Re:I stopped caring about Qt by Chris+Burkhardt · · Score: 1

      as the only other toolkit (AFAIR - please correct me if that's not the case anymore) that has native Mac OS X support is wxWindows and it's about as ugly there.

      There is an initial port of gtk+ to Mac OS X (and an older, less complete port: gtk+osx). The Java toolkits run on OS X. Tk supports OS X natively (according to this -- I can't say I've ever come across a Tcl/Tk script on a Mac). There might be others.

      wxWindows is just a wrapper around the Mac APIs, so it shoudn't be ugly.

      As far as non-native toolkits go, I think qt actually looks pretty good under OS X. Here's a good link: Qt/Mac is Mac OS X Native

      --
      "And there be unix which have made themselves unix for the kingdom of heaven's sake." - Matt. 19:12
    31. Re:I stopped caring about Qt by willy_me · · Score: 2, Informative

      on mac os x qt4 looks good to me, there is even an alpha version of qt4 that uses cocoa instead of carbon

      The problem is not the look, it's the feel. It is the way the toolbars work, dialog boxes, etc. It is the way all the pieces fit together to provide a user interface. Qt is impressive but it is not native.

      there is even an alpha version of qt4 that uses cocoa instead of carbon

      Cocoa and Carbon are actually the same thing. Just different APIs used to access the same elements. Qt adds yet another API which is fine but there is no real difference in Qt using Cocoa vs. Carbon. Ok, there is one difference. Carbon will never be 64bit so if Qt wants to be 64bit native then they will have to utilize Cocoa. This is likely why the Qt engineers are looking into Cocoa.

      Willy
    32. Re:I stopped caring about Qt by Anonymous Coward · · Score: 0

      Then we could have a package manager to sort this out, so that you could have tiny 100kb apps using a 10MB library. Oh, a man can dream... Well, one example of such an app is youtube-dl gui

    33. Re:I stopped caring about Qt by Anonymous Coward · · Score: 0

      Qt seriously doesn't have much of a memory or CPU problem. I mean if it works fine on cell phones, its obviously good for your computer.

    34. Re:I stopped caring about Qt by Fri13 · · Score: 1

      "That's ridiculous. Only the hardcore GTK purists won't install qt libs. No one else will ever know or care. You can never please those fanatics. If you use GTK you will have the same problem with hardcore Qt purists. You can safely ignore those idiots."

      Yeah, pure hardcore GTK user wont install Qt because it's "not free". But they gladly installs Mono what is....

    35. Re:I stopped caring about Qt by aproposofwhat · · Score: 3, Funny

      On Windows the best development tools are moving away from C++.

      I think you meant that:

      On Windows the majority of tools who think they are developers are moving away from C++.

      --
      One swallow does not a fellatrix make
    36. Re:I stopped caring about Qt by pato101 · · Score: 1

      Are you willing to get them slashdotted?

    37. Re:I stopped caring about Qt by Anonymous Coward · · Score: 0

      Just hazarding a guess that those 'users' were programmers... sheesh...

    38. Re:I stopped caring about Qt by GigaplexNZ · · Score: 5, Interesting

      You mean like how iTunes and Safari look completely at home on Windows? Apple fans have double standards; they expect uniformity on the Mac and allow Apple software to stick out like a sore thumb on Windows. If an OS X user rejects my applications because the toolkit only looks 95% at home compared to other applications, it is their loss, not mine.

    39. Re:I stopped caring about Qt by rumith · · Score: 1

      Yeah, pure hardcore GTK user wont install Qt because it's "not free" Huh? This point of view is horribly out of date: Qt is licensed under QPL and GPLv2 at your choice. Besides, there's a special clause according to which you can link a GPLv2-licensed copy of Qt to your app as long as you use one out of a large number of free software licenses, including Apache, MIT, GPLv3, BSD and so on.
    40. Re:I stopped caring about Qt by Weedlekin · · Score: 3, Interesting

      "Many Mac users, myself included, are very finicky about apps that do not look or feel like Mac apps."

      While others are like me, and don't give two hoots if the app does something we want or need. I'm far more worried about the ability to paste information between apps, use of standard centralised resources such as the dictionary / thesaurus, support for drag-and-drop conventions, and Mac-style installation and removal mechanisms than whether it's a little ugly or uses a few non-standard keystrokes.

      "Using an app that looks significantly out of place in an otherwise consistent UI is very annoying"

      Unless of course it's from Apple, who, like MS, seem to be quite happy to break their own look-and-feel guidelines.

      "I fully understand why some developers steer clear of Mac support for that very reason, but it is a reality, and it's not going away"

      It will however become less significant as Apple's market share grows, because there are more and more new users who're running Windows apps on their Macs via dual-boot or virtualisation, and they're a lot less Mac-like than QT-based ports (even Java stuff is more Mac-like than software written specifically for Windows).

      --
      I'm not going to change your sheets again, Mr. Hastings.
    41. Re:I stopped caring about Qt by shutdown+-p+now · · Score: 2, Informative
      The reason for the size of Qt is that it is analoguous to the all-encompassing class libraries of Java and .NET, but in C++ world. Which is for the better - it is much more productive to have all the common, and even the less-so-common functionality readily available as needed. Add to that the great quality of Trolltech offering, and who cares about a couple extra megabytes?

      Anyway, Qt is pretty much the only reasonable choice for cross-platform C++ development, and a very strong contender even if you're going to stick to one platform only. It's got great documentation, and the development tools are very nice; particularly now with Eclipse integration of their form designer, there's finally something in the Linux land that can compete with Visual Studio in terms of UI development. Of course, on Windows, you can have VS integration, which is the best of both worlds... ;)

    42. Re:I stopped caring about Qt by Weedlekin · · Score: 1

      "On Windows the best development tools are moving away from C++."

      The .NET stuff is largely aimed at corporate developers, who were never big C++ users anyway. Shrink-wrap Windows software (including all Microsoft's shrink-wrap stuff) is however still developed in compiled languages, with C++ being by far the most popular.

      --
      I'm not going to change your sheets again, Mr. Hastings.
    43. Re:I stopped caring about Qt by Anonymous Coward · · Score: 0

      I know Qt is free. But some hardcore GTK+ user dont still want it because it's "not free" by their opinion (even they know it's under GPL but the dual license).
      And on history, there was big war about Qt license and how everything should be Free and that's why Qt couldn't be supported. Now when Qt is free, GNOME has jumped to support Mono. What is little acward.

    44. Re:I stopped caring about Qt by Urza9814 · · Score: 1

      I don't really know of any off the top of my head...but I've seen some websites with a hell of a lot of embed codes. Hell, a lot of the videos on youtube probably count. Oh, and there's a lot of band websites that are flash layered on flash with some more flash on the side...and a song embed or two for good measure. Those take a while to load even on cable!

    45. Re:I stopped caring about Qt by vally_manea · · Score: 2, Informative

      Yeah, that's right because the whatever version of the .NET framework is freaking tiny at 30MB+

    46. Re:I stopped caring about Qt by Anonymous Coward · · Score: 0

      maybe because most of apps I use are written in GTK (xchat, pidgin, FFx, quodlibet)
      I do wish people would stop saying this. Firefox is written in its own toolkit, which uses GTK as a rendering back-end on one of its target platforms. To state that it is "written in GTK" implies that the core of its code-base makes such ubiquitous use of it that attempting to remove the GTK dependency would amount to a re-write. Instead, we have the situation where the 1.8 million lines of Firefox code are able to run, without loss of functionality, on Windows and OS X without any dependency on GTK at all. It owes very, very little to its use of GTK indeed.
    47. Re:I stopped caring about Qt by Anonymous Coward · · Score: 0

      I don't have the Gimp installed, and I certainly don't miss it. Kolourpaint + Krita does everything I need it to do, and faster. I don't do any advanced image editing, so I have no need for the Gimp.

    48. Re:I stopped caring about Qt by jZnat · · Score: 1

      The problem is not the look, it's the feel. It is the way the toolbars work, dialog boxes, etc. It is the way all the pieces fit together to provide a user interface. Qt is impressive but it is not native. That's the job of the application designer (or programmer) to follow Apple's UI guidelines when designing an application for Mac OS X. The toolkit can help integrate with other toolkits and provide native widgets, but the designer still needs to consider how applications are supposed to work on each platform.
      --
      'Yes, firefox is indeed greater than women. Can women block pops up for you? No. Can Firefox show you naked women? Yes.'
    49. Re:I stopped caring about Qt by BBandCMKRNL · · Score: 2, Informative

      And seriously, even with all of them you're talking 10-15MB in a world where 4GB DDR2 costs 60-65$. It was this mentality that brought us Vista. Seriously folks, just because the RAM is there and the CPU is there does not mean you should be extra wasteful. This is why computers are following Moore's Law but not really getting any faster. I have to disagree here. This has nothing to do with being extra wasteful. 15MB is less than .4% of 4GB. I started writing code 30+ years ago on IBM 360s and DEC PDP-11s. I'll ignore the mainframe in my comments here since the PDP-11 was closer to early PCs in performance. On the PDP-11 you had 16KB of user address space to write your application in. There was no indexed file system let alone an RDBMS. The hard drives had 512KB of storage. You were sharing these resources with up to 3 other users. The UI was 80 x 24 characters. Any meaningful business program was at least 2 programs; one for data entry and a second to do the actual processing and file updates. You had to do it this way because you couldn't do both in 16KB.

      That 15MB in today's world is like 64 bytes was in the PDP-11 world. In fact it's even less since if you don't use all 15MB it isn't going to be mapped into memory. In the PDP-11 world, there was no virtual memory.

      Computers have gotten faster. The problem is that user expectations have risen at an even faster rate. 30 years ago, a "Cash flow projection" was a report generated in batch once a day. Today it's an on-demand drill down into a database allowing multiple what-if scenarios.
      --
      Without the 2nd Amendment, the others are just suggestions.
    50. Re:I stopped caring about Qt by jZnat · · Score: 1

      Go check out some random Korean or Japanese websites. Those countries are spoilt in comparison to the US, Canada, the UK, etc., when it comes to bandwidth, and it definitely shows in their bloated websites.

      --
      'Yes, firefox is indeed greater than women. Can women block pops up for you? No. Can Firefox show you naked women? Yes.'
    51. Re:I stopped caring about Qt by FunkyELF · · Score: 1

      I use XFCE but I won't burn with anything other than K3B...so that is loading the Qt as well as the KDE libraries. What world do you live in? Disk space and memory are cheap.

    52. Re:I stopped caring about Qt by laffer1 · · Score: 1

      Consider an OS project providing a desktop system. People like small installs, but at the same time if you don't provide Qt and GTK many applications are not usable. We have to support those regardless if we move to something like GNUstep. It's a pain. Qt 4 is actually a real pain to port because it's broken up and so large.

    53. Re:I stopped caring about Qt by Cigarra · · Score: 2, Informative

      On Windows the best development tools are moving away from C++.
      You don't have to use C++, you know. There's PyQt, for example.
      --
      I don't have a sig.
    54. Re:I stopped caring about Qt by gnud · · Score: 1

      Heh. You have obviously never used Digital Performer. I understand it sells pretty well, too.

    55. Re:I stopped caring about Qt by Count+Fenring · · Score: 1

      Well, given that your share of the market is tiny, interface discrepancies are something you will have to live with. There will be apps that are significantly better than the alternatives, or worse yet, fundamentally unique in a way that precludes alternatives (At the time, at least). You will have to deal with things using a non-Macified interface.

      Also, come the fsck on with the "A traditional Mac App uses Carbon or Cocoa" crap. You're basically saying that if a program is built well, and conforms on Mac to the HIG, but is written in a toolkit other than the standard Mac toolkit, it's not acceptable? You'd evaluate a program based solely on a slight mismatch in widget style? That is stupid. Really stupid.

      To summarize: One of the reasons Mac is a real computing platform now (And yes, I am trivializing OS9 and below) is that you can now have cross-platform programs target it. This is one of the big reasons that Apple based OSX off of FreeBSD in the first place. This means developers can include the platform, without having to either develop solely for the Mac, or else spend man-years redoing it in a Mac-only toolkit. Really, I think that QT is giving you the best deal you're going to get, running through the Mac toolkits past the API level.

      Because the majority of developers aren't going to look over and say "Oooh, 7% of the market! Let's learn a specialized toolkit for them, and then rewrite all our GUI code twice to take advantage of both platforms."

    56. Re:I stopped caring about Qt by Brandybuck · · Score: 1

      On Linux the libraries are now so damn big that non-KDE users wont install them.

      Six main Qt moduels versus the dozens of disparate libraries that are GNOME requirements. In terms of size I think Qt beats it by a tiny fraction.

      On Windows the best development tools are moving away from C++.

      If you're complaining about the size of Qt, then by all means stay AWAY from .Net!

      --
      Don't blame me, I didn't vote for either of them!
  4. Excellent by Kjella · · Score: 4, Interesting

    I really look forward to the Phonon functionality. You can now finally write cross-platform players, capturers, encoders, indexers, mixers, filters and whatnot that'll work across all backends, as Qt is writing the backends for Windows (DirectShow) and OS X (Quicktime) as well. Note: I know not all of these features aren't in 4.4 some are pushed back to 4.5. I really hope this manages to unify the Linux multimedia experience. It's these kinds of deep changes I think are necessary for Linux to succeed in the long run, having to deal with xine/gstreamer/vlc/mplayer which all seem to work on different content but none on all is something the user shouldn't have to do. Having them all in one cross-backend API is a very big step forward.

    --
    Live today, because you never know what tomorrow brings
    1. Re:Excellent by Deanalator · · Score: 1

      having to deal with xine/gstreamer/vlc/mplayer which all seem to work on different content but none on all is something the user shouldn't have to do. I disagree with the idea that throwing another player into the game is going to do anything to help the user.

    2. Re:Excellent by Kjella · · Score: 3, Insightful

      I disagree with the idea that throwing another player into the game is going to do anything to help the user. Actually, they're throwing one out - the arTs sound server. Phonon is not a multimedia framework, it has no intention of implementing anything. It makes life easier for application developers, which honestly shouldn't care more about which media backend is in use than what scheduling algorithm the kernel uses.
      --
      Live today, because you never know what tomorrow brings
    3. Re:Excellent by SanityInAnarchy · · Score: 1

      Seems like on Unix, Xine has pretty much become the official backend for KDE. It might be via Phonon, maybe not, but I seriously doubt this is "another player" in the sense that you mean.

      --
      Don't thank God, thank a doctor!
    4. Re:Excellent by Anonymous Coward · · Score: 0

      I'm sure you just "forgot" to write down why you think so.

    5. Re:Excellent by qbast · · Score: 1

      GStreamer backend may still make it to KDE 4.1

  5. Re:Qt still has a point? by PitaBred · · Score: 2, Insightful

    ...right. Go look up what each of those libraries provides, and then post back when you've got a clue. Qt is much more portable, and provides a lot more for you than GTK or WxWidgets does. Qt ain't just a widget library.

  6. Help get Qt working in Firefox by Anonymous Coward · · Score: 5, Informative

    Vladimir just posted about working more on Qt for Firefox - http://blog.vlad1.com/2008/05/06/well-isnt-that-qt/ - the more devs that can help, the quicker this will happen.

  7. Re:Qt still has a point? by timmarhy · · Score: 3, Informative
    "Qt is much more portable"

    bullcrap. name a platform qt works on that wx or gtk doesn't? i admit gtk looks crappy on some, but wx looks native on all of them AND provides a shit load of default widgets

    --
    If you mod me down, I will become more powerful than you can imagine....
  8. Re:Qt still has a point? by Rhapsody+Scarlet · · Score: 5, Informative

    Nobody needs Qt when there is WxWidgets and/or GTK. Qt's point is moot

    The ZSNES developers for one prefer how Qt works and R. Belmont (of MAMEdev fame) also stated that the only reason he used GTK+ on the Linux port of Audio Overload was because various portions of the code weren't compatible with the GPL. If they had been, he'd have used Qt instead. I also prefer Qt, hence why I use KDE in preference to anything else and why I view the possibility of Mozilla using Qt with some excitement.

    I'd go as far as to say that GTK+'s 'killer feature' these days is the licence. The fact that it uses the LGPL as opposed to the GPL and was open sourced well before Qt is why it's remained so popular. In most other respects, Qt is the better toolkit.

  9. What about Google Earth? by IYagami · · Score: 2, Interesting

    Google Earth is based on QT and it's avalaible for Windows / MacOS X / Linux.

    I think that google engineers have studied several tools for developing this program for multiple operating systems and decided that QT was the best toolkit

    1. Re:What about Google Earth? by thzinc · · Score: 4, Informative

      It was Keyhole's engineers that made that decision, not Google's.

    2. Re:What about Google Earth? by Anonymous Coward · · Score: 2, Interesting

      As far as I know (second hand info), Google Earth moved to QT for version 4, which was done after they were bought by Google. It was probably still *former* Keyhole engineers who made the decision, but they were Google engineers at the time.

    3. Re:What about Google Earth? by sbryant · · Score: 1

      Google Earth is a good example of how not to use QT! I think they went out of their way to make it look nasty. If they had just left things alone (ie: font sizes, widget styles) it would look miles better.

      -- Steve

    4. Re:What about Google Earth? by Anonymous Coward · · Score: 0

      That is probably true for the client software but the back end there has always been QT based, there's a whole suite of GIS processing software in place that uses QT and always has since the Keyhole days. The decision to do so is no less credible for being made by Keyhole engineers, they're all Google engineers now but that confers no additional magical abilities.

  10. Re:Amarok by Anonymous Coward · · Score: 0

    Last April:

    http://amarok.kde.org/blog/archives/374-Amarok2-builds-on-Windows.html

  11. Reinventing Wheels by Anonymous Coward · · Score: 2, Interesting

    Kernel Developer: Here's a nice, easy to use sound backend. Enjoy.

    Userspace Soundserver developer: Hey, since the Kernel guys can't provide autosense and switching and networked audio, let's abstract it.

    Multimedia Framework developer: Hey, because one multimedia backend isn't enough, and isn't portable across OSes, let's abstract it and make it support many different sound servers.

    Phonon developer: Hey, because one abstraction's not enough, let's abstract it again!

    At this point, you have to wonder, what the hell is the point? You're reinventing the abstraction that everyone else abstracted away. You're adding latency for no reason. You're forcing people to use a toolkit written in a silly language, with the complexity of binding it to other languages being astronomical. What's the win? What are you gaining from this? The answer is simple: GStreamer was Not Invented Here.

    1. Re:Reinventing Wheels by pherthyl · · Score: 0

      No, the answer is: gstreamer is effectively linux only. On Linux it makes sense to use gstreamer for the most part (lets not get into all the other equally capable frameworks like xine, mplayer, or vlc), but it would be stupid to use gstreamer on windows or mac, which all have their own native frameworks.

      So in your narrow example, you considered Linux, but Qt runs on way more platforms than that.

    2. Re:Reinventing Wheels by jZnat · · Score: 1

      Gstreamer can use (and usually does) the same FFmpeg library (from the MPlayer project) that xine, MPlayer, and VLC all use extensively. Just look for libavcodec, libavformat, libavutil, libpostproc, or libswscale for examples of FFmpeg or MPlayer finding their way into almost all free software multimedia applications.

      --
      'Yes, firefox is indeed greater than women. Can women block pops up for you? No. Can Firefox show you naked women? Yes.'
  12. Re:Qt still has a point? by Enleth · · Score: 2

    Mac OS X? I wouldn't consider messing with an X server running along Aqua "native" at all. Sure, they're working on that, but it's still to be done.

    --
    This is Slashdot. Common sense is futile. You will be modded down.
  13. Re:Qt still has a point? by Anonymous Coward · · Score: 1, Informative

    GTK looks terrible on Windows and Mac and doesn't even warrant consideration unless you're developing strictly for Linux or BSD. Further, GTK and WX are both lacking a ton of features that are found in modern toolkits like Cocoa or QT.

  14. ActiveX WebKit by Xaroth · · Score: 2, Interesting

    This is only tangentially related to the Qt 4.4 release, but it seems to me that, when combined with ActiveQT, this theoretically provides the first ActiveX wrapper around WebKit. This sort of thing would enable hobbyist C# or VB users to quickly get web-driven applications up and running.

    As I understand it, at current ActiveQT is only available under the paid licenses, which makes it difficult to create a F/OSS Windows application that uses such a control (which I happen to want to do).

    Are there any ActiveX wrappers to WebKit out there (whether using Qt or not) that are suitable for use in F/OSS projects, or - failing that - any other drop-in ways to get a standards compliant browser pane up and running?

    1. Re:ActiveX WebKit by slimjim8094 · · Score: 2, Informative

      http://www.iol.ie/~locka/mozilla/mozilla.htm

      Wine uses it. It's as standards-compliant as Gecko, which is probably enough for you (unless it's an evangelical thing)

      In any case, it's better than Internet Explorer's ActiveX (where standards are concerned)

      NOTE: That link's a bit old, but should be more than adequate.

      --
      I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.
    2. Re:ActiveX WebKit by SanityInAnarchy · · Score: 1

      Question: Is this actively developed at all? I don't see any updates since 2005 or so.

      And if not, shouldn't it be incorporated into Wine? Or at least available as a package that Wine can optionally depend on?

      --
      Don't thank God, thank a doctor!
    3. Re:ActiveX WebKit by bestinshow · · Score: 1

      This sort of thing would enable hobbyist C# or VB users to quickly get web-driven applications up and running. NO. NO. NO.

      What is so hard for these developers to actually program things properly? Web server - stick your implementation there. Web browser - stick your view here.

      Don't fucking mess around with embedding the former into the latter via Active X components. This way is evil.
    4. Re:ActiveX WebKit by slimjim8094 · · Score: 1

      It is - it's not distributed, but they direct you to type 'wine iexplore', which opens up a download/install thing.

      Steam uses it, I believe - it works great.

      And, no - it doesn't look to be actively developed, but I doubt he's fundamentally changing the engine and just hooking into it, so it shouldn't be too hard for a competent programmer to pick it up

      --
      I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.
    5. Re:ActiveX WebKit by Xaroth · · Score: 1

      As it turns out, there are valid cases for this.

      In my specific case, I run a webgame that other hobbyist programmers are looking to design a front-end for (which, in turn, will get detected by Xfire for tracking hours and such). What's more, they're looking to extend the functionality of what I'm providing. Think of a MUD front-end, and you'll have the general idea.

      The hobbyist programmers lack the time or knowledge to write a custom app around this from scratch, and interfacing directly with the (ever changing) webside implementation is too burdensome. Having a simple web container that they can drop in to a quick application, and manipulate to get information out of the DOM is exactly what they need to meet these goals, so there's no reason *not* to do it this way.

      There are other applications, too, many of which may be just as unexpected. Do try not to be so quick to dismiss the need for this sort of thing.

    6. Re:ActiveX WebKit by bestinshow · · Score: 1

      Why not provide an application shell for these hobbyist programmers? Or implementing a webservice (SOAP or REST) within the core application server for the functions the programmers are using to add functionality (new zones, characters, objects, etc comparing to your MUD example)? That way the programmers can use what they're used to programming in as well, and all languages have very simple webservice APIs so this is ideal for them. Aside from that, it is very important that client-side online games are purely view-only, and no game logic, etc, occurs there, to reduce the capability for cheating.

      Apart from corporate intranets, I can't see any reason for any consumer website to use Active X. Indeed I would assume that the site was malicious in nature.

    7. Re:ActiveX WebKit by Xaroth · · Score: 1

      Time.

      Writing a webservice or application shell for the game is the same as writing a complete second interface for the game, which I do not have time to do or properly support at this point. (It's a one-man show, and that only in my spare time on the weekends.)

      Sure, in theory, eventually the AJAX that's being used could be translated to a more standardized webservice, but the difference is between having something for the hobbyists to play with now vs. hoping for something to play with in a year or more when I'm able to devote time to standardizing that better.

      Writing an application that parses out the webservice bits correctly, prevents users from doing illegal things (which *are* trapped on the server side, but still - client-side input validation is a nice perk), loads in the visual resources and displays them correctly, etc. takes more time than the hobbyists can afford, when all they want/need to do is wrap the game and add tiny bits of functionality over time as they think them up.

      As an aside, the environment they're used to programming in is VB.Net, which is why a drop-in ActiveX webview control is what's desired. Like I said, though - strictly hobbyist programmers.

      I agree with the idea that ActiveX should be kept off websites, though. My game is all AJAX/DHTML for the client side (PHP/MySQL on the backend, for the curious). Woot!

    8. Re:ActiveX WebKit by SanityInAnarchy · · Score: 1

      It is - it's not distributed, but they direct you to type 'wine iexplore', which opens up a download/install thing. I actually see the download/install thing when an app first needs it.

      No, I mean, how about we actually incorporate it into Wine, as in, have it included in the Wine distribution? Not some shiny wrapper that's going to waste bandwidth while I download it yet again, because I like to have multiple WINEPREFIXes.
      --
      Don't thank God, thank a doctor!
    9. Re:ActiveX WebKit by bestinshow · · Score: 1

      Yeah, time's the killer.

      To be honest, writing a webservice client/server is very quick if you're using Java (using Axis) but I've heard less pleasant things about PHP's support, even in PHP5.

      Good luck with the game anyway - stick some screenshots up on the site eh, even if you think your graphics are primitive :)

  15. Trolls are great :) by alberthier · · Score: 5, Insightful

    The only drawbacks on Qt I see in the comments here is that the lib is too fat or that C++ is dead. But let's concentrate on What Qt provides:

    A API that covers the purpose of glib + gobject + gio + atk + pango + cairo + gtk + gstreamer + gecko + libxml2 + goocanvas + internationalization + portability accross Unices, Mac and Windows This is splitted in several modules Core, Xml, Network, Gui, Phonon, Webkit And the main point is that you have all that in the same API with the same object design. If you never coded in Qt, try it before saying it sucks, you will see how straitforward everything is.

    Signals/Slots in really a fantastic feature and massively used in Qt

    Java / .NET descided like Trolltech that C++ was too complicated. Sun created the java language, MS the C#, Trolltech just decided to limit themselves to a subset of C++ and add some extensions via macros (and a precompiler which generates the boilerplates) but globally the aproach is similar.

    I use Qt every day and I really don't think I could be as productive with WxWidgets or GTK. Maybe GTK / Vala will be the future real competitor to Qt.

    1. Re:Trolls are great :) by tepples · · Score: 1

      The only drawbacks on Qt I see in the comments here is that the lib is too fat or that C++ is dead. That or the fact that you can't link Creative Commons CC-BY licensed icons into a GPL program.
    2. Re:Trolls are great :) by Anonymous Coward · · Score: 0

      That or the fact that you can't link Creative Commons CC-BY licensed icons into a GPL program.

      Why on earth would you want to link image data into your application? Were you being serious, or is this just yet another weird anti-Qt troll where you attack it for everything possible, no matter how inane?

    3. Re:Trolls are great :) by Anonymous Coward · · Score: 0

      Fine post. Please contribute more of your QT insights. Seriously.

      'splitted' is not a word. It's engrish and particularly hideous engrish at that. 'split into' is the intended grammer.

    4. Re:Trolls are great :) by SanityInAnarchy · · Score: 1

      On Windows, at least, it's possible to include things like an icon in the executable.

      On Linux, this is a non-issue, as icons are generally kept separately, and you never actually click on an executable -- you click on an icon, somewhere, which is a file which refers to the binary and the image by name.

      On OS X, I don't actually know, but I suspect that the icon is in the .app bundle, which isn't technically linking.

      But on Windows, I can see this being a problem.

      Oh, and there's the whole issue of not all programs being available under GPL-compatible licenses. Doesn't affect me much, as I mostly work with interpreted languages, and Trolltech has said that python-qt only requires Python to be GPL'd (it is), and not any programs interpreted by Python.

      It's not usually a huge issue, as if you're writing a new app from the ground up, you can always choose to GPL3 it, or if it's commercial, you can probably afford to license Qt. But it's still a selling point for gtk.

      --
      Don't thank God, thank a doctor!
    5. Re:Trolls are great :) by Anonymous Coward · · Score: 0

      So your argument is, "we brought together all these great separate things, and look, we even divided them for you!"

      Uhhhh....

      J/k, I love Qt and use it all the time. Couldn't resist an easy jab, though. =)

    6. Re:Trolls are great :) by master_p · · Score: 4, Insightful

      The Qt library is the C++ SDK that the C++ language is missing. I would pay to see the C++ Standards Committee adopt it as the standard C++ toolkit. Now if only C++ got real garbage collection and lambda functions (two features that are really necessary for high end development)...

    7. Re:Trolls are great :) by shutdown+-p+now · · Score: 1

      Now if only C++ got real garbage collection
      You can have that today already.

      and lambda functions (two features that are really necessary for high end development)...
      It'll be there in about a year (assuming the GCC folks will roll out an implementation of the new standard right away).
    8. Re:Trolls are great :) by Ed+Avis · · Score: 4, Insightful

      OTOH, I would pay to see Troll Tech adopt the standard C++ library in Qt, rather than reinventing their own strings, vectors, lists and so on.

      --
      -- Ed Avis ed@membled.com
    9. Re:Trolls are great :) by rumith · · Score: 2

      Trolltech just decided to limit themselves to a subset of C++ Not really; Qt Jambi brings Qt to Java developers since 4.2 IIRC.
    10. Re:Trolls are great :) by Anonymous Coward · · Score: 0

      You meant grammar, right ? :>

    11. Re:Trolls are great :) by backwardMechanic · · Score: 1

      I hear you. I guess when Qt started out, the STL was pretty unstable and unpredictable across platforms, but C++ has moved on since then. C'mon Trolltech, how about it?

    12. Re:Trolls are great :) by Anonymous Coward · · Score: 0

      Everyone is aware of the signals and slots mechanism. But Qt extends the C++ language in ways that go beyond this. It does f.e. provide thread safe copy on write semantics for objects. Great for using messaging in multithreaded applications.

    13. Re:Trolls are great :) by odourpreventer · · Score: 1

      Many seem to long for a C++ GC. Personally, I can't see why. With all the containers and allocators provided in various libraries, I don't see a reason for using it. I'd be happy to see an example of when it would be useful, but so far I haven't. (Not trolling, it's a serious opinion, however flawed it may be.)

      The Boost library has lambda functions. I have not used them yet, so I can't say how useful they are.

    14. Re:Trolls are great :) by Ed+Avis · · Score: 3, Interesting

      Unfortunately a bolt-on Boehm garbage collector is not real GC. It has to guess what things are pointers and what aren't, so it can get confused by integers that happen to be a valid address. If you think that's unlikely to happen in practice, consider the scope for denial-of-service attacks by feeding in data designed to trick the GC. When dealing with security, theoretical possibilities become all too practical.

      Real lambda functions (not Boost's weird simulation) will be cool.

      --
      -- Ed Avis ed@membled.com
    15. Re:Trolls are great :) by master_p · · Score: 1

      Please mod parent up! a real reason why Boehm's gc is not very good...

    16. Re:Trolls are great :) by master_p · · Score: 1

      Boehm's GC does not work well for two reasons:

      1) it does not work well with dlls. I tried it (look here: http://thread.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2016/focus=2027).

      2) it provides a great opportunity for DoS attacks, as another poster says.

    17. Re:Trolls are great :) by master_p · · Score: 2, Insightful

      The Qt's container APIs are richer than the STL.

    18. Re:Trolls are great :) by master_p · · Score: 1

      There is a great reason for using garbage collection: you can make complex object relationships that are much less painful to do than without garbage collection.

      A real example is a widget tree: a widget contains pointers to children and a pointer to the parent.

      In C++ without garbage collection, pointers to children must be shared pointers and the pointer to the parent must be a weak pointer, otherwise a cycle will be created. This means that you get extra data per widget: a) 4 bytes for the reference count of each object, b) a list container of weak pointers (which may be from 12 to 48 bytes, depending on implementation). This overhead is not significant if your widgets are not many, but it becomes significant when you have memory constraints (e.g. on a hand-held device) or when you have a lot of objects organized in trees. A bigger memory footprint means greater cache misses, which in turn means a slower application.

      In C++ with garbage collection, none of the above would be necessary. Furthermore, there would not be any danger of introducing a cycle via inheritance (which is a very difficult bug to trace).

      Shared pointers also have a significant overhead in multithreaded environments. In order to handle the reference counting from multiple threads, atomic increment and decrement instructions need to be used, and these instructions lock some aspect of the system (the bus, the cache, etc) and so the system becomes less responsive.

      Boost's lambda functions are very limited in functionality. GUI apps require whole bunch of functionality to be written as callbacks, something not possible with boost's lambdas.

    19. Re:Trolls are great :) by a.ameri · · Score: 3, Insightful

      Am I the only one who is fascinated by the irony that nowadays, the main selling point of the toolkit that was developed first and foremost as an open source equivalent to Qt, is that it can be used to develop closed source applications?

      I wonder how the open source purists who deplored Qt when it was clsoed source and issued jihad against the KDE community and the likes of SuSE and Mandrake for bringing closed source creep into the open source world, feel about the fact that their beloved toolkit is licensed under the "lesser" of the GPL lincences, while Qt is now GPL through and through.

      The irony of history...

      --
      -- /* Those who don't underestand Unix, are condemned to reinvent it poorly */
    20. Re:Trolls are great :) by shutdown+-p+now · · Score: 1

      Unfortunately a bolt-on Boehm garbage collector is not real GC. It has to guess what things are pointers and what aren't, so it can get confused by integers that happen to be a valid address.
      Wasn't there some APIs in it which actually let you specify the exact offsets of pointers within a memory block if you wanted that sort of thing? I would imagine that combining that with offsetof, and wrapping it into some template goodness, could actually make significant improvements.

      On a side note, I've tested it once (when we were evaluating various language/framework combos for the next project, and one of them was C++ with Boehm GC), and despite it not knowing where the pointers are, it was still only ~50% slower than Java (which was in turn ~20% slower than .NET) on my GC test which simulated our existing software. In practice, for a lot of higher-level code, easily more than half of all data members inside objects are pointers to other objects. Exceptions are mostly large arrays, and you can easily tell the GC that they don't contain pointers at all and should not be scanned; so it's not a big deal.

    21. Re:Trolls are great :) by Nyrath+the+nearly+wi · · Score: 1

      The only drawbacks on Qt I see in the comments here is that the lib is too fat or that C++ is dead. Well, I have been quite productive coding in Python using the PyQt bindings for the Qt framework. And Python is available on most platforms.
    22. Re:Trolls are great :) by Anonymous Coward · · Score: 0

      My copy of Qt came with a file called GPL_EXCEPTION.TXT that allowes me to link QT to software licensed with a few other Open Source licenses like MIT, BSD, LGPL or Apache to name the most prominent ones.

    23. Re:Trolls are great :) by Dan+Posluns · · Score: 1

      The Qt's container APIs are richer than the STL. There is a philosophy in computer science that classes should be kept as simple as possible, and that utilities unrelated to the basic maintenance of the class should be relegated to separate functions. STL follows this principle for the most part.

      I can do anything with an STL container that I can with a Qt container; I just use free functions that can operate on any container rather than bloating the class with unnecessary functionality that then needs to be duplicated for other container types. Plus with the free functions like lower_bound I can more easily construct my own containers when I want to.

      I appreciate Qt's motivation for creating their own containers but STL really is a more consistent and rigorously documented paradigm (try finding the timing constraints on any of their functions). I like Qt but I stick to STL (and when necessary Boost) containers.

      Dan.
    24. Re:Trolls are great :) by tepples · · Score: 1

      My copy of Qt came with a file called GPL_EXCEPTION.TXT that allowes me to link QT to software licensed with a few other Open Source licenses like MIT, BSD, LGPL or Apache to name the most prominent ones. The MIT X license, the FreeBSD license, and the LGPL are already compatible with GPL version 2 or later. Apache License version 2 is also compatible with GPL version 3. But a Creative Commons license for icons is not compatible with any version of the GPL. The core point is that it is still confusing how artwork designed for use as part of a computer program should be licensed.
    25. Re:Trolls are great :) by tepples · · Score: 1

      Why on earth would you want to link image data into your application? Because I don't want big ugly blank boxes showing up instead of the intended splash screen, icons, etc.
    26. Re:Trolls are great :) by Anonymous Coward · · Score: 0

      Ok you said that the GPL allows to link MIT/BSD/LGPL into a GPL program.

      In contrast the GPL_EXCEPTION says you can link Qt (which is GPL) into a BSD program. Which is clearly not allowed without the exception.

      That means you can use Qt without making your program GPL.

      And if you still don't get it, when your program is BSD licensed you can put CC icons in it and still use Qt.

    27. Re:Trolls are great :) by Anonymous Coward · · Score: 0

      You do realise that there's a difference between linking and loading, right?

    28. Re:Trolls are great :) by tepples · · Score: 1

      You do realise that there's a difference between linking and loading, right? So does this mean I can "load" a GPL-incompatible shared library from my GPL program?
    29. Re:Trolls are great :) by Anonymous Coward · · Score: 0

      From my understanding, you are half right.

      As another poster noted, the containers provided in Qt are much richer and allow much more flexibility and functionality (cleaner iterators, etc.) The containers in Qt are optimized to run better with that enhanced function set.

      Also, with the Qt string and character classes, it allows them to establish a clean interface that supports the different unicode string standards. There exists no clean interface in the C++ standard library for that purpose.

    30. Re:Trolls are great :) by master_p · · Score: 1

      You can't do that with templates, unfortunately. And it's tedious and error prone to having to declare all data structures of a program explicitly. Additionally, lots of other libraries, including the STL, will not use such a mechanism, and therefore it's gonna be a waste of time. Finally, stack frames are data structures themselves but pointers into them can't be declared to the collector manually.

    31. Re:Trolls are great :) by pherthyl · · Score: 1

      >> There is a philosophy in computer science that classes should be kept as simple as possible, and that utilities unrelated to the basic maintenance of the class should be relegated to separate functions.

      In computer science? Not really. Anyway, defining "as simple as possible" is impossible.

      >> I can do anything with an STL container that I can with a Qt container;

      I can do anything with assembly that you can do with an STL container. That's not the point. The point is that things can be done more easily and in less lines of code with a more convenient API.

      >> I just use free functions that can operate on any container rather than bloating the class with unnecessary functionality that then needs to be duplicated for other container types.

      Qt containers are STL compatible, so you can use stl algorithms on them. Of course, there is a QtAlgorithms module which contains a lower_bound function. http://doc.trolltech.com/4.3/qtalgorithms.html#qLowerBound

      >> I appreciate Qt's motivation for creating their own containers but STL really is a more consistent and rigorously documented paradigm (try finding the timing constraints on any of their functions)

      Overall I find that Qt's docs are much better organized than any stl source I've found. Hell there's a dedicated app to browse and search the Qt docs which is insanely useful. I agree that in some cases I would like more information about algorithmic complexity, but if you look at the sort functions on that QtAlgorithms page, it does tell you that where it's important.

      Also they have the information about the algorithmic complexity of the operations on Qt container classes.
      http://doc.trolltech.com/4.3/containers.html#algorithmic-complexity

    32. Re:Trolls are great :) by pherthyl · · Score: 1

      >> A real example is a widget tree: a widget contains pointers to children and a pointer to the parent.

      Exactly the sort of thing that Qt will handle for you, and as an application developer I never have to worry about.

      >> This overhead is not significant if your widgets are not many, but it becomes significant when you have memory constraints (e.g. on a hand-held device) or when you have a lot of objects organized in trees.

      Assuming your calculation is correct on overhead, you're still missing the second part of the calculation. What's the overhead of the garbage collector? Both in terms of memory, CPU usage, and unpredictability. I highly doubt it will be less than the few bytes you're using to keep track of your objects.

      >> In order to handle the reference counting from multiple threads, atomic increment and decrement instructions need to be used, and these instructions lock some aspect of the system (the bus, the cache, etc)

      You're ok up to here...

      >> and so the system becomes less responsive.

      Until you make a huge leap to the conclusion where it all falls apart. System responsiveness is a massively complex issue, and you can't even begin to guess the tradeoff between reference counting and garbage collection without some real testing.

    33. Re:Trolls are great :) by Anonymous Coward · · Score: 0

      So the answer to my question is a "no" then? Running code as part of your application is not the same thing as displaying an image.

    34. Re:Trolls are great :) by tepples · · Score: 1

      Running code as part of your application is not the same thing as displaying an image. It is if a program and its included data might constitute an audiovisual work, such as the case of a program that implements a video game.
    35. Re:Trolls are great :) by master_p · · Score: 1

      Exactly the sort of thing that Qt will handle for you, and as an application developer I never have to worry about.

      Qt's memory management is not adequate; an application requires many hacks and tricks even in the presence of Qt. Suppose you have a model-view-controller architecture, i.e. a big data model and a big UI hierarchy that reflects the data model. With Qt 3 (I have no knowledge of Qt 4), you have to write adaptor classes that monitor the data model and affect the UI and vice versa, because Qt 3 does not support the MVC pattern.

      So how should the adaptor lifetime classes be managed? The data model does not inherit QObject, it uses reference counting, because the objects of the data model are referenced from multiple sites. But the adaptor classes need to live as long as the UI lives, and therefore they can be QObjects. When the UI objects are deleted, the adaptors are deleted as well, and therefore the data model must contain weak ptrs to them.

      This is quite complicated and tricky to use, and it contains many gotchas. With garbage collection, there would not be such issues.

      Assuming your calculation is correct on overhead, you're still missing the second part of the calculation. What's the overhead of the garbage collector? Both in terms of memory, CPU usage, and unpredictability. I highly doubt it will be less than the few bytes you're using to keep track of your objects.
      There is no great overhead from using a gc, even if the gc is a conservative one ala Boehm's. A compacting GC is much better, of course. Memory allocation with gc is faster than manual memory management (I've measure this while trying to use the Boehm's gc; Java's memory management runs circles around c++'s memory management). You can see it here.

      Until you make a huge leap to the conclusion where it all falls apart. System responsiveness is a massively complex issue, and you can't even begin to guess the tradeoff between reference counting and garbage collection without some real testing.
      When the bus or the shared cache is locked, there are stalls in all the parts of the system that wish to access those resources, by the very definition of the operation: locking means some part of the system will have to wait.
    36. Re:Trolls are great :) by master_p · · Score: 1

      But Qt's containers are a superset of the STL containers.

      And you can't beat QString...std::string and std::wstring are useless classes, unsuitable for anything but trivial cases.

    37. Re:Trolls are great :) by pherthyl · · Score: 1

      >> With Qt 3 (I have no knowledge of Qt 4), you have to write adaptor classes that monitor the data model and affect the UI and vice versa, because Qt 3 does not support the MVC pattern.

      I started on Qt4, which uses MVC extensively. I've never had to do that so I can't comment.

      >> When the bus or the shared cache is locked, there are stalls in all the parts of the system that wish to access those resources, by the very definition of the operation: locking means some part of the system will have to wait.

      Of course, but that still gives you almost no information about overall performance. You don't know what the tradeoff is. With a garbage collector you lose the predictability. Last thing I want is the collector running at random times when my application is time-sensitive.

      Right now in about 10kloc I have a grand total of 7 delete statements. All my other memory is handled by Qt. Yes that's a small app (I'm the sole dev) but for stuff like that I really have no need for a GC.

    38. Re:Trolls are great :) by Anonymous Coward · · Score: 0

      The next version of C++ (due in 2009, draft this year) will support lambda functions, although I think the syntax doesn't make any sense.

      Garbage collection is considered a library issue (as are many things in C++; sometimes, I think C++ is mainly a language for writing libraries in, rather than applications).

      Boost is pretty much considered the C++ SDK, though; features are actively considered for movement from Boost to the standard library, and whatever isn't is still available from Boost directly.

      I wouldn't say lambda functions and garbage collections are necessary requirements for high end development (although of course, that depends on how you describe high end--supercomputer simulations certainly aren't written in anything like Java), but they will be available soon.

      I don't see what the big deal about lambda functions is, though. I prefer to use named functions/function objects rather than anonymous ones, and just stick them into an anonymous namespace or something. They can be convenient, but I don't see how they're a critical feature, at least in a compiled language like C++.

    39. Re:Trolls are great :) by Brandybuck · · Score: 1

      Nobody is stopping you from using STL containers within a Qt application. In fact, Qt even gives you easy conversion functions between the STL and the "QTL".

      But don't right off Qt's collections so fast. They are slightly simpler to use, and far more efficient (at the cost of slightly more memory). In addition, you can use Java-style iterators, which make for slightly cleaner code.

      --
      Don't blame me, I didn't vote for either of them!
    40. Re:Trolls are great :) by master_p · · Score: 1

      I started on Qt4, which uses MVC extensively. I've never had to do that so I can't comment.
      I don't think there is any difference with Qt4 though. The memory management model of Qt4 is the same as the Qt3, so i don't see any difference. Problems like sharing data still remain.

      Of course, but that still gives you almost no information about overall performance. You don't know what the tradeoff is.
      You may not know overall performance, but you certain know that performance is not the same as in the case that there is no locking.

      With a garbage collector you lose the predictability. Last thing I want is the collector running at random times when my application is time-sensitive.
      That's why GC must be optional in C++.

      Right now in about 10kloc I have a grand total of 7 delete statements. All my other memory is handled by Qt. Yes that's a small app (I'm the sole dev) but for stuff like that I really have no need for a GC.
      Assuming you have a GUI application, how do you handle the data models? I am doing a small gui application too (27 Kloc so far), and I have separated by code into model, view and controller namespaces, and the model is one big tree of objects. But they are not QObjects, memory management is handled by boost::shared_ptr, because the objects of the tree are shared with other components of the system. For example, the user can start the execution of a scenario (my app is a sort of simulation) while being able to remove the scenario from the database, and therefore the execution module will hold the last pointer of the removed scenario and not the object model. So how do you handle cases like that?
  16. Re:Qt still has a point? by Anonymous Coward · · Score: 1, Informative

    Why are you comparing Wx or GTK to Qt? Does either of those have platform independent threading, sockets, etc?

    As far as UI design, wake me up when either of those has anything even remotely competetive to QtDesigner.

  17. Sigh, I was hoping for a free WM devel platform... by Yosho · · Score: 4, Informative

    I was pretty excited about the Windows Mobile support in this, until I downloaded it, read the FAQ, and discovered that you have to have the Windows Mobile SDK installed to use it. While the SDK is free to download, you must have Visual Studio (not an Express version) to install it, so developing mobile applications is still going to cost you at least a few hundred dollars.

    So, just a heads up to anybody else who's interested: Don't bother with it unless you have Visual Studio Professional 2005 or later.

    --
    Karma: Terrifying (mostly affected by atrocities you've committed)
  18. Re:Amarok by compro01 · · Score: 1

    and here i was expecting that to be from april 1st. pleasantly surprised. thanks.

    --
    upon the advice of my lawyer, i have no sig at this time
  19. Re:Qt still has a point? by mR.bRiGhTsId3 · · Score: 3, Informative
  20. Re:Qt still has a point? by timmarhy · · Score: 1

    "Does either of those have platform independent threading, sockets, etc?"p. err yes for wx atleast. i can only conclude you don't know what your on about.

    --
    If you mod me down, I will become more powerful than you can imagine....
  21. Framework hell by tepples · · Score: 0

    Maybe we could create some sort of package system, where you download the library just once from something we could call a repository. Then we could have a package manager to sort this out, so that you could have tiny 100kb apps using a 10MB library. But each of those 100 ko apps depends on a different version of the 10 Mo library. Using one version of a library with an application designed for one version often results in framework hell.
    1. Re:Framework hell by SanityInAnarchy · · Score: 4, Informative

      But each of those 100 ko apps depends on a different version of the 10 Mo library. In short, no they don't.

      Using one version of a library with an application designed for one version often results in framework hell. You linked to "dependency hell", which is a solved problem -- see package managers. It is not only possible, but easy, to install multiple versions of the same library. And if the library is reasonably high-quality (like Qt), you're not going to need ten versions of it. On a bad day, you might need two (3 and 4).

      I haven't been on Redhat in awhile, so maybe it's still an issue there. I remember RPM being a bitch, but I haven't used RPM since 2002. On Ubuntu, I have exactly one version of libqt-mt installed, and it weighs in at about 11 megs. And because this is Kubuntu, it's installed already.
      --
      Don't thank God, thank a doctor!
    2. Re:Framework hell by UngodAus · · Score: 5, Informative

      Actually, in Qt we have a mandate for backwards binary compatibility. Only if it's an absolute necessity is binary compatibility broken, and I honestly can't think of a single time in the 4.x stream of code that we have done that. So, your "framework hell" argument is moot. Only the latest version of Qt is "needed", and should support all applications compiled for previous revisions of Qt4.

    3. Re:Framework hell by tepples · · Score: 1

      You linked to "dependency hell", which is a solved problem -- see package managers. Windows XP Professional has a package format, called .msi, but it doesn't have a package manager to speak of. Nor does the operating system have a package repository, apart from Windows components provided by Microsoft through the Windows install disc or Windows Update. Windows users prefer to download a single .msi file and run it. So how should a developer package downloadable Windows binaries: as a single installer that installs both Qt and the application and takes a long time to download in less-than-urbanized areas, or as an installer that requires Qt to be present?
    4. Re:Framework hell by nuzak · · Score: 1

      Windows in fact does keep a catalog of all .msi installed apps and updates it whenever msiexec is used. MSI has the notion of sub-packages and dependencies between them, which is cool, but what MSI lacks is dependency handling between individual .msi packages, which means it lacks basic things like requires/provides.

      Then there's the problem that most apps are still packaged in some other installer format, and other than adding add/remove entries in the registry, there's no other API they can target for writing their package metadata (such as the aforementioned "provides" strings)

      Windows is actually in a really good position to fix this sort of thing and provide a solution that would work across diverse package managers. Unfortunately, it's still not taking advantage of it this position. In defense of inaction, it's probably because you really can't trust that an app that claimed to provide MSVCRT version x actually provided a real compatible version x, so it's easier to just bundle the damn dependencies instead.

      --
      Done with slashdot, done with nerds, getting a life.
    5. Re:Framework hell by SanityInAnarchy · · Score: 1

      I would say, don't deploy on Windows, but of course, the rest of you have to live in the real world...

      And I would say, you can fake this pretty well. Windows does keep track of all MSIs currently installed, and it should be possible to query that. So it'd be as simple as, in your installer (in whatever format it comes in), detect Qt if it's there, and download it if it isn't.

      Of course, the standard Windows solution seems to be to statically link everything, which will make each app smaller, but since they can no longer share, it makes the aggregate bigger.

      And the OS X solution is, if you're feeling especially kind, distribute separate Intel and PPC versions. Otherwise, force everyone to download three times the size of the app in libraries, multiplied by four architectures -- mostly, I think, so that you can distribute one universal CD, and so that people who've bought some proprietary app can drag the bundle between machines. These are nice features to have, but to me, are not worth the insane waste.

      --
      Don't thank God, thank a doctor!
    6. Re:Framework hell by SanityInAnarchy · · Score: 1

      In defense of inaction, it's probably because you really can't trust that an app that claimed to provide MSVCRT version x actually provided a real compatible version x, so it's easier to just bundle the damn dependencies instead. This does not seem like a particularly hard problem. Just sign the damned things, so that if something really does provide MSVCRT version x, it has either been vetted by the people responsible for MSVCRT, or it's been deliberately overridden by the user.

      Or, absolute worst case, simply depend on a specific set of files, by some hash. If the hash doesn't match, download/install your own.
      --
      Don't thank God, thank a doctor!
    7. Re:Framework hell by gnud · · Score: 1

      I would suggest statical linking. You can link only against the needed parts of Qt (for example, no XML, WebKit, Phonon and SQL, but GUI and networking), so the result should be better than other crossplatform alternatives.

  22. This mobo doesn't take 4 GB, you insensitive clod! by tepples · · Score: 1

    And seriously, even with all of them you're talking 10-15MB in a world where 4GB DDR2 costs 60-65$. Older PCs like mine still make up a large part of the market for a Free app. How much does a new motherboard that has slots for 4 GiB of RAM cost? And a new CPU because they don't make motherboards for a 5 to 7 year old CPU's socket anymore?
  23. Why does Qt get such kudos? by PipingSnail · · Score: 0, Troll

    Why does Qt get such kudos?

    Its mad, it doesn't bear scrutiny. And yet I find time after time people holding up Qt as wonderful, often in open source circles, whilst at the same time doing down Microsoft. But for the cost of one license for MSDN you can only license one application for Qt development, both per year. MS provides more value for equivalent fees.

    I'm not knocking Qt's technical merits. I'm sure its great. We have customers telling us they use Qt and its great etc. No problem with that.

    But, per application, recurring per year, its expensive, and yet Microsoft is attacked for its licensing while Qt is seemingly venerated, left right and centre, but Qt is the more expensive. MSDN professional costs the same (no matter how many applications) and you get shed load for that.

    Just to give you an example: For MSDN we pay £563.xx (approx $1116) per year, but for Qt, our licensing fees would be $42,000. And should we port to Linux and Mac OS/X, our licensing fees for MSDN would be £453 (approx $1116) and our Qt fees would be $126,000).

    So why does Qt get such veneration when the value for money is so poor compared to the industry pariah (sic), Microsoft (I've excluded Apple because so many of you seem blind to the proprietary hardware lock-in on every Apple product past and present).

    Even if you want to just do open source, you can have the platform SDK and Visual Studio Express for free, which is greater value than Qt. Thats not what I'm discussing, but I had to include it to stop the "oh but Qt is free for Open source" replies that miss the point.

    1. Re:Why does Qt get such kudos? by Anonymous Coward · · Score: 3, Informative

      I am not sure but reading your post it seems you are under the belief Qt is licensed per application.

      The Qt licensing model is that you a license fee per developer, depending on the number of platforms you want to target.

      One of the key values Qt brings is the single codebase / multiple platform way of developing.

      If you wanted to port a rich client application to Linux and Mac OS/X you would not be able to use your MSDN subscription for much, whereas with Qt you would recompile your app. You would have to be extremely fast and/or have a very low hourly cost not to save money on this relative to doing a rewrite / port / multiple codebase approach (for any non-trivial application).

    2. Re:Why does Qt get such kudos? by Jeremi · · Score: 5, Informative
      But for the cost of one license for MSDN you can only license one application for Qt development, both per year.


      Huh? A Qt license is expensive, but once you have it you can create all the Qt apps you want. At least, that's what my Qt license says. I think you have been misinformed.


      But, per application, recurring per year, its expensive


      Again, there is no "per application" charge. The "per year" charge is if you want support -- if you don't want/need support, just buy the Qt license and don't renew it after a year. You'll still be able to use the version you bought indefinitely.


      And should we port to Linux and Mac OS/X, our licensing fees for MSDN would be £453 (approx $1116) and our Qt fees would be $126,000).


      Are you talking about porting a .net app to Mac and Linux? Most Win32 apps wouldn't be "ported" so much as "rewritten from scratch", and for a non-trivial app the rewrite would cost a lot more than $126,000 in developer time. Maybe C#/.net apps run just as well on Linux and OS/X as they do under Windows, but if so that is news to me. Portability what makes Qt worth the money... being able to support Linux, Windows, and Mac with a single codebase that you only have to write and debug once is a huge win.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    3. Re:Why does Qt get such kudos? by slimjim8094 · · Score: 1

      Except Qt is open-source (GPL, even)

      If you want to sell a piece of (proprietary) software, well this is a framework that will potentially save you a lot of money. About as much or more as they're charging, they figure.

      So - if you don't want to write your own graphics libraries, and don't want to go open source, but want to keep cross-platformness... you go with Qt. At least they give you the option of the dual-license, eh?

      Or you could code only for Windows/Mac/Linux, write your own library, or go open source. Notice all those or's.

      The veneration is for a fully-capable, nice, easy-to-use (or so I've heard) graphics library that runs across platforms with very little application code changes. And it's better than free, it's GPL. So if you're coding open-source and cross-platform (but even if you're not), you can save A LOT of time. Ever tried writing your own graphical framework while retaining all that abstraction?

      I prefer SWT, but meh. To each his own.

      --
      I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.
    4. Re:Why does Qt get such kudos? by croftj · · Score: 3, Insightful

      Because MSDN only wishes they could touch Qt in ease of programming. C++ compared to Java (and I have to assume it's close cousin C#) is hands down the better choice, with Qt you get the cross platform, garbage collection (not 100% but I have less memory leaks with my Qt programs than with my Java programs) and so much more.

        Let's see do a decent GUI or even server using MSDN which will go cross platform!

        Speaking of licensing fees, just how many developers do you have? Is it safe to assume that MS sells one copy of MSDN and lets all of the developers in your company use it? I doubt that! We spend roughly 1700 per year for one developer doing MS/X11 I can make as many applications with it as I like (I'm good, I can write a lot of apps).

        So in the end, the Trolls get the Kudos because they earned them!

      --
      -- Many men would appreciate a woman's mind more if they could fondle it
    5. Re:Why does Qt get such kudos? by codemachine · · Score: 5, Informative

      A number of possible answers, with varying degrees of importance/truth depending on your opinions:

      - Because QT is cross platform.
      - Perhaps it saves enough development effort over the MS stuff that it is worth the cost.
      - It has a GPL version on all the major desktop platforms, so fully OSS apps are possible
      - Is compiled instead of interpreted

      There are probably lots more differences between the platforms that I missed as well. Not all of them would favour QT. Depends what you're looking for I guess.

      But it isn't surprising that QT is popular with much of the Slashdot crowd, since it is GPL and supports non-Windows platforms. So I'm not sure why one would even have to ask why people here prefer QT over MSDN and Visual Studio.

    6. Re:Why does Qt get such kudos? by Anonymous Coward · · Score: 1, Insightful

      Why does Qt get such kudos?

      I'm not knocking Qt's technical merits. I'm sure its great. We have customers telling us they use Qt and its great etc. No problem with that.

      Well I hate to state the obvious, but that is why it gets such kudos.

      I find time after time people holding up Qt as wonderful, often in open source circles

      But, per application, recurring per year, its expensive

      Not for people in open source circles.

      So why does Qt get such veneration when the value for money is so poor compared to the industry pariah (sic), Microsoft

      Let's see. TrollTech takes money from proprietary software developers, and uses it to fund excellent quality GPL libraries. Microsoft takes money from proprietary software developers, and uses it to fund an average set of libraries that are closed-source. Amazingly, open-source developers prefer the company that actually helps open-source software. Imagine that!

    7. Re:Why does Qt get such kudos? by Ant+P. · · Score: 1

      Interesting claims you make there. I had no idea Microsoft were licencing out the Win32 API on Linux and OS X for a flat-rate fee...

    8. Re:Why does Qt get such kudos? by justaguylikeme · · Score: 4, Insightful

      Trolltech has never licensed Qt per application. It's per developer seat per year. At our company we use Qt for most major development we do. The ease of use, flexibility, outstanding documentation, cross-platform capabilities, and excellent technical support we receive for the price makes it definitely worth the while. We couldn't develop nearly as much as quickly if we didn't have Qt. We've been using it since version 1.2, and have watched the toolkit mature over the last decade. We're a relatively small shop (5 developers) that has to turn around products quickly across a wide array of platforms. For the things Qt does, we haven't found anything that comes close to doing it better or more simply. The up-front cost is an easy sell to our management team, who are thrilled with our performance.

    9. Re:Why does Qt get such kudos? by PipingSnail · · Score: 1

      Well, I asked Qt directly about the pricing. It was a few years ago.

      If I was misinformed, they did themselves a great dis-service, as if the pricing was not per-application it would be acceptable.

      As for single code-base solutions, have you heard of wxWidgets? Hence my pricing analysis.

    10. Re:Why does Qt get such kudos? by PipingSnail · · Score: 1

      Or you could code only for Windows/Mac/Linux, write your own library, or go open source. Notice all those or's.

      You can replace all those ORs with ANDs if you use wxWidgets. Problem solved.

    11. Re:Why does Qt get such kudos? by Weedlekin · · Score: 1

      "I had no idea Microsoft were licencing out the Win32 API on Linux and OS X for a flat-rate fee..."

      I had no idea that they'd implemented the Win32 API on OS X...

      --
      I'm not going to change your sheets again, Mr. Hastings.
    12. Re:Why does Qt get such kudos? by PipingSnail · · Score: 1

      Interesting claims you make there. I had no idea Microsoft were licencing out the Win32 API on Linux and OS X for a flat-rate fee... I didn't say they were. I pointed out you could have the Platform SDK and Visual Studio for free. Add wxWidgets and you are fully cross platform.
    13. Re:Why does Qt get such kudos? by PipingSnail · · Score: 1

      Trolltech has never licensed Qt per application.

      In which case their sales team either misunderstood our requirements or mis-informed us when we contacted them some time ago.

      If what you say is correct, that changes things considerably.

    14. Re:Why does Qt get such kudos? by master_p · · Score: 1

      Agreed, but a minor note: QT usually stands for QuickTime, Qt for Trolltech's library.

    15. Re:Why does Qt get such kudos? by Kjella · · Score: 1

      The pricing scheme of Qt is, and has for a very very long time been per named developer. That developer can develop as many applications as he wants, but you can not pass it around like a hotseat license, it can only be transferred once every six months and it must be within the organization. Perhaps that is where you and Trolltech's sales force have miscommunicated. If you described a situation where many people would work on Qt code intermittantly then you need many licenses.

      --
      Live today, because you never know what tomorrow brings
    16. Re:Why does Qt get such kudos? by PipingSnail · · Score: 1

      Thanks. Sounds like they misinterpreted the number of applications as the number of developers. We have no intention of sharing a license - the licensed person(s) will be the only person(s) using the license(s).

      I've just been browsing their website and cannot find pricing information anywhere. Everytime I find a link on their site (or on other websites) that claims to point to pricing information it resolves to a different URL on trolltech's site and that URL has no pricing information. Even the BUY page has no pricing information.

      I've contacted their sales team, but as yet, had no reply.

    17. Re:Why does Qt get such kudos? by shutdown+-p+now · · Score: 1

      Because MSDN only wishes they could touch Qt in ease of programming.
      I'd say it's about the same level if you compare Qt to .NET. Though Qt is occasionally ahead because they really did make a lot of necessary cleanups during the move to Qt4, and thus have cleaner design in some places, which is obviously easier to document and explain.

      C++ compared to Java (and I have to assume it's close cousin C#) is hands down the better choice
      It hardly is, except if you have a bunch of veteran hardcore C++ developers in your company who really know their way around all the C++ quirks. And even then, build process and debugging capabilities for C++ still suck.

      with Qt you get the cross platform, garbage collection (not 100% but I have less memory leaks with my Qt programs than with my Java programs) and so much more.
      There is absolutely no garbage collection in Qt. All it has is a few simple rules about who owns what. You still have to know those, and be careful about what is deleted automatically by its container and what isn't.

      Let's see do a decent GUI or even server using MSDN which will go cross platform!
      This is, of course, a rather pointless request, since Microsoft is least interested in going cross platform - unless that means "XP/Vista/WinMobile/XBox" ;) So, of course, if you need cross-platform support, Qt is by all means the best tool out there (though I've seen a cross-platform Windows/Linux solution done using Mono and Gtk#, and it looked alright; but quality-wise, Mono is still behind Qt).

      Speaking of licensing fees, just how many developers do you have? Is it safe to assume that MS sells one copy of MSDN and lets all of the developers in your company use it? I doubt that!
      Most Microsoft shops have MSDN subscriptions. While those require per-user licenses for Visual Studio and other development tools, MSDN Library itself is allowed to be shared: "The single-user license requirement does not apply to documentation (including the MSDN Library) provided as part of an MSDN subscription. Rather, documentation obtained through a single MSDN subscription license may be copied and shared within an organization for the organizations internal, reference purposes without acquiring any additional MSDN subscription licenses." Such a subscription would cost you $1,199 at minimum,

      Also, boxed standard edition of Visual Studio would cost one $299, and it comes with MSDN as well (that one is for single developer only, though). Still quite a bit cheaper than Qt ;)

      Anyway, this isn't to say that Qt is not a great product. The price label is also quite warranted - you want good stuff, you have to pay for it. And it's not really Trolltech vs Microsoft, at any rate - commercial versions of Qt have that nice Visual Studio integration feature, after all...

    18. Re:Why does Qt get such kudos? by Per+Wigren · · Score: 1

      Have you even compared wxWidgets with Qt4 at any depth at all? Qt has a beautiful API, wx is a total mess in comparision. Also, Qt does a lot of things to try to make apps look and feel native on each platform, wx only takes care about the look of the widgets.

      Qt 4 really is a bloody kick-ass fantastic peace of software engineering art. Too bad its license is restricting its usage so much (it got much better recently though, when they decided to allow other OSS licenses besides the GPL and QPL). They are leaving out the very big .NET-dominated small-app-outside-company-core-focus market by not having a middle ground license.

      --
      My other account has a 3-digit UID.
    19. Re:Why does Qt get such kudos? by Kjella · · Score: 1

      I've just been browsing their website and cannot find pricing information anywhere. Everytime I find a link on their site (or on other websites) that claims to point to pricing information it resolves to a different URL on trolltech's site and that URL has no pricing information. Even the BUY page has no pricing information. Yes, they've completely removed all pricing except on the order form after you add the order. The prices seem to go up and down a bit but here's the current price:
      Qt One Platform - Windows, Desktop Edition 2630 euro
      Qt Three Platforms - Win/Mac/X11, Desktop Edition 5260 euro

      I suspect they're doing volume discounts like most other big companies... Pretty pricey yes, but hopefully they know what they're doing. They certainly seem to be evolving their platform at a very good pace. Remember, it's not just a GUI toolkit - it's more of a complete system library where you build entire applications in "Q-space". Unfortunately, it's a bit overkill for the 29$ part-time shareware developer. Since it's licensed per person, that person should be doing as much Qt work as possible because in a 100% position it's not that terrible, I don't work in application development but I have spent days working around bugs at a very high cost and increasing effectivity and reducing bugs means a whole lot.

      Where the cost/benefit gets completely out of whack is if you want to move slightly from free to shareware. Not only does the pricing structure penalize you heavily, but you also can't use any code written under the open source edition even if you have the copyright. That's the terms of the commercial license, so that people don't develop everything and then buy just one license for maintenance. So for OSS development great (GPL), full-time commercial development good, part-time shareware development really bad.

      I really think they ought to have an alternative revenue-split license which would let you make some money for "small stuff", say maybe a 80-20 split? No company would let you walk off with 20% of gross revenue, but if you've got a few shareware applications making you 2500 euro a year you might pay 500 euro, but never 2500-5000 euro for licensing.
      --
      Live today, because you never know what tomorrow brings
    20. Re:Why does Qt get such kudos? by odourpreventer · · Score: 1

      It hardly is, except if you have a bunch of veteran hardcore C++ developers in your company who really know their way around all the C++ quirks.

      I disagree. Java seems to be the language with all the quirks. C++ is difficult to learn and use, yes, but it allows you to do so much more than Java. There are of course situations where Java is a much better tool than C++, but that's a different issue.

      And even then, build process [sucks]

      True, unfortunately.

      and debugging capabilities for C++ still suck.

      For which IDE? VS's debugger rocks. It's far better than either Weblogic, XCode, Eclipse or gd. MS can do some things right.

    21. Re:Why does Qt get such kudos? by croftj · · Score: 1

      In simple reply, you have not convinced me. You talk about quirks in C++. Well Java has it's own set. I need to get a profiler for my program to find the memory leak that the promise of Java was not to have. Java has no pointers, everything in Java is a pointer, etc.

      It's simple, what C++ Hell Java released me from was replaced with a new Hell of Java's. The build are still quirky, Ant is little better than make(if at all).I haven't tried Maven, but I'm sure it has it's own little hell waiting for me. Recompile once, run anywhere works as long as the moon is in the right phase, airpressure proper etc. It's hardly easier than shared libraries.

      Then when you consider your line here:

      This is, of course, a rather pointless request, since Microsoft is least interested in going cross platform - unless that means "XP/Vista/WinMobile/XBox" ;) So, of course, if you need cross-platform support, Qt is by all means the best tool out there (though I've seen a cross-platform Windows/Linux solution done using Mono and Gtk#, and it looked alright; but quality-wise, Mono is still behind Qt).

        You answered it all right there. Even when you don't consider cross platform.

        Remember Hell is Hell. It come's in many packages. I like how the Trolls packaged their's.

      --
      -- Many men would appreciate a woman's mind more if they could fondle it
    22. Re:Why does Qt get such kudos? by slimjim8094 · · Score: 1

      Or you could code only for Windows/Mac/Linux, write your own library, and go open source. ...?
      wxWidgets - accomplishing three 'negatives' simultaneously!

      No, seriously, what did you mean? wxWidgets allows you to close-source a program with it?
      --
      I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.
    23. Re:Why does Qt get such kudos? by PipingSnail · · Score: 1

      If you have a point to make, make it. I have no idea what you mean with your negatives comment.

      With WxWidgets you can go open source or close source. Read their license.
      http://www.wxwidgets.org/about/newlicen.htm

    24. Re:Why does Qt get such kudos? by shutdown+-p+now · · Score: 1

      I disagree. Java seems to be the language with all the quirks. C++ is difficult to learn and use, yes, but it allows you to do so much more than Java.
      I am not disputing that C++ is the more powerful language. It just has all sorts of nasty bits which if you don't know are there will bite you badly eventually (weird mixed signed/unsigned arithmetic, C-style casts doing not what you think they're doing, extremely complicated overloading resolution rules in presence of function templates, ADL, auto_ptr's copy-is-move... the list is very long). In practice, I've found out that very few people who claim to know C++ actually properly know it in full (or even close), and not a very restricted subset.

      Good thing for Qt, though, is that it is designed in a way that promotes using such a restricted subset. Curiously enough, the result is actually pretty close to Java or C#, only with more powerful templates.

      For which IDE? VS's debugger rocks. It's far better than either Weblogic, XCode, Eclipse or gd. MS can do some things right.
      VS is the best debugger for C++ at the moment, I agree. However, did you ever try using the same VS to debug, say, C# code? You should try it sometime... managed code has quite a few advatages there, such as being able to suppress JIT optimizations while you're stepping through the code (so you'll never get a variable suddenly going out of scope because it was in a register which got overwritten by the aggressive optimizer).
    25. Re:Why does Qt get such kudos? by shutdown+-p+now · · Score: 1

      In simple reply, you have not convinced me. You talk about quirks in C++. Well Java has it's own set. I need to get a profiler for my program to find the memory leak that the promise of Java was not to have. Java has no pointers, everything in Java is a pointer, etc.
      Java's (and C#) are still far fewer than those of C++. And no, I did not mean memory allocation, either - that one is actually relatively easy in C++ once you learn about auto_ptr and shared_ptr. What I rather meant is stuff like this.
    26. Re:Why does Qt get such kudos? by croftj · · Score: 1

      Now that we had fun with code obfuscation, you get what you deserve. First rule, write something people can read (including yourself after 2 months of not looking at it). I've seen example code like that in the Java books as well. Makes for good book publishing in that it reduces word counts, but it still makes the code hard to read and follow.

        IMHO if you right code like that, no language will save you. You deserve the hell you make for yourself.

      --
      -- Many men would appreciate a woman's mind more if they could fondle it
    27. Re:Why does Qt get such kudos? by TheSunborn · · Score: 1

      I don't think that Microsoft gives more value, because unlike Win32 and MFC, Qt does not make you want to scream each time you use it. So qt might not be the cheepest, but for me ~1000$ is a small price to keep my sanity.

      And qt just have to increase your development speed a few %, in order to pay for itself. Which it does, and much much more.

      Win32 and MFC still gives me nightmare.

      And if you are in a situation, where you would have to pay $126,000 for QT licenses, you would also have to pay sereval millions to pay all your developers in the timeframe covered by the license, so in the case the payment to qt would be so small, that it would not really matter.

      But I really have to ask: Do you yourself code to win32 and/or mfc, and do you think it's a good framework?

    28. Re:Why does Qt get such kudos? by PipingSnail · · Score: 1

      Do you yourself code to win32 and/or mfc, and do you think it's a good framework?

      Yes. I've been using it since 1996 (two codebases, both multiple millions of lines of C++). Before that I was knee deep in Motif/X11 (million lines of C) and occasionally OpenView. Also spent many years using Java (and hating the experience), an awful language (like programming in a straightjacket after assembly, C and C++).

      MFC - Good framework? It works. Its usable. I ported a 2 million line C++ app from Win32 to Win64 (pre-rpdocution Itanium box running Whistler) in 2001. I made probably 10 lines of code changes to handle any Win32/Win64 API changes to make that port. I consider that to be well designed. We made plenty of other changes to make the port happen (to do with pointer storage and containers/templates) but thats a design issue from the original team that wrote the codebase in the first place.

      When I worked with Motif/X11 on 7 different Unix boxes, everytime we ported to a new box we had to make more changes than I describe above just to port from Unix to Unix, not even changing machine word length. Then someone gives you a machine with an Alpha chip (64 bit) and all of a sudden you can't put pointers in certain X11 structures because they are 32 bit only. Nice design :-(

    29. Re:Why does Qt get such kudos? by odourpreventer · · Score: 1

      Knowing about the nasty bits is one reason (of many) why C++ is difficult. I have to say I'm not familiar with some of your examples though.

      weird mixed signed/unsigned arithmetic

      When? I haven't seen this, or it's been hidden from me.

      C-style casts doing not what you think they're doing

      Not sure if I agree that this is an issue. C++ allows you to do some weird casting, yes, but that also means that you the programmer have to know what you're doing. Casting is always bad and should be avoided whenever possible. Which is one thing I don't like about Java; it often forces me to do some very unsafe casting.

      extremely complicated overloading resolution rules in presence of function templates, ADL

      Could be, I don't even know what ADL is. The few times I've used function templates it's worked fine.

      auto_ptr's copy-is-move

      auto_ptr is useless. The few times I'm forced to use smart pointers I stick with boost::shared_ptr. Clumsy, but does the job.

      wxWidgets has so far done everything I wish for. But I'm going to have a good look at Qt soon, now that it's open source.

      I have never even looked at C#, so I don't know anything about it, and hopefully never will. That wasn't the topic anyway.

    30. Re:Why does Qt get such kudos? by adamofgreyskull · · Score: 1

      FUD about licensing aside (dealt with already by another poster)...what do you think Qt is?

      In all seriousness, I was under the impression that Qt was a cross-platform graphical widget toolkit*. I didn't realise Microsoft had a cross-platform widget toolkit. All I could find was this and this in this list of widget toolkits and they both seem to be Windows only?? But then I only have wikipedia to go by. I don't have an MSDN subscription.

      *Yah, I know it also does a lot of other nifty non-graphical stuff.

    31. Re:Why does Qt get such kudos? by PipingSnail · · Score: 0

      FUD about licensing aside (dealt with already by another poster)...what do you think Qt is?

      Already answered this in other posts. I never said MSDN was cross platform, but there are a variety of cross platform solutions available, such as wxWidgets (look at the Wikipedia entry for wxWidgets, it lists lots of other toolkits, including Qt).

      What I was pointing out was that Qt seemed expensive and yet they get lots of Kudos but MS provides lots for free and get slammed. I was not equating cross platform == MS. If that wasn't clear, well sorry, thats life, the only person that doesn't make mistakes is the person that makes nothing.

      Trolltech clearly messed up their quote for me a while back (or have radically changed their licensing). I can't find their original email to me as a disk crash wiped all that a few years ago.

      I've got some new pricing from them which is much more sensible and realistic, both in terms of licensing and support costs. With these new numbers my $42,000 and $126,000 figures can be ignored.

      Lots of different opinions on Qt, wxWidgets from many people. Some very partisan, others not so. Turns out some of my customers use wxWidgets and some use Qt. Also seems that if you already have a lot of MFC in your codebase that wxWidgets is a better match than Qt, although Qt does have a migration path.

  24. Woohoo! The Trolls work only gets better n better by croftj · · Score: 1

    I just love Qt! The signals and Slots are the best part. The Layout (geometry) management is 2nd. The face that I can make multi-threaded daemons is what takes it over the top. MS with it's C# and Java has nothing on Qt.

    --
    -- Many men would appreciate a woman's mind more if they could fondle it
  25. Don't feed the trolls. by Anonymous Coward · · Score: 0

    People have REALLY got to stop falling for QuantumG's trolling. He's very subtle at times, but a troll is still a troll.

    In other words, YHBT. YHL. HAND.

  26. Please don't compare Qt to wxWidgets/Gtk by pembo13 · · Score: 1

    Qt is a cross-platform programming framework which also includes a GUI toolkit. wxWidgets and Gtk and basically (if not only) GUI toolkits. Gtk (to my knowledge) doesn't do database driver abstraction, network abstraction, sound abstraction, etc, etc.

    --
    "Thanks for all the money you paid to us. We've used it to buy off ISO among other things" -Microsoft
    1. Re:Please don't compare Qt to wxWidgets/Gtk by EvilIdler · · Score: 2, Informative

      Gtk+ does GUI and threading, but wxWidgets is a complete application framework with networking, filehandling and a whole lot more abstracted. Plugin libraries exist for both to extend them, and I'm sure there is at least some basic file abstraction in Glib (which is required by Gtk+).

      Licensing aside, I rate Qt and wx about the same in features. They both seem to get the native look on OS X, and wxWidgets takes on the Gtk+ theme on X (which is an engine using the KDE theme).

    2. Re:Please don't compare Qt to wxWidgets/Gtk by pembo13 · · Score: 1

      I am apparently ignorant on wxWidgets, my apologies.

      --
      "Thanks for all the money you paid to us. We've used it to buy off ISO among other things" -Microsoft
    3. Re:Please don't compare Qt to wxWidgets/Gtk by Anonymous Coward · · Score: 0

      Does wxWidgets have OpenGL support, SSL encryption, compression support, dbus support, XML processing and scriptable UIs?

      Qt has really matured and expanded it's featureset. I am impressed with the new webkit features of 4.4.

    4. Re:Please don't compare Qt to wxWidgets/Gtk by Brandybuck · · Score: 1

      wxWidgets is a lowest-common-denominator wrapper around other toolkits. Since it doesn't have its own native widgets, creating custom widgets is very difficult.

      Custom widget in Qt: simple
      Custom widget in GTK+: simple
      Custom widget in MFC: moderate
      Custom widget in Motif: difficult
      Custom widget in wxWidgets: pull-your-beard-out difficult

      Plus, it also has the butt ugly macro crap in it. There's no reason in the world to use macros to create collections in C++.

      --
      Don't blame me, I didn't vote for either of them!
  27. Re:Widgets in QGraphicsView look *really* promisin by Anonymous Coward · · Score: 0

    Like OpenStep can rotate or sheer their graphic views 10 years ago?
    Thus, it seems QT significantly improved(?) that by adding one more dimension to the view's transformation.

  28. Re:Qt still has a point? by 21mhz · · Score: 1

    To be honest, GIOChannel sucks. But Glib has got a better I/O API recently.

    --
    My exception safety is -fno-exceptions.
  29. Moderate library - poor company by Anonymous Coward · · Score: 1, Interesting

    I used to program Qt. I thought it was great. I needed to do some commercial development so I bought a licence. After a while I found that the build system on Windows/Cygwin/Mingw was pretty comprehensibly broken. So I submitted a bug report, detailing what was wrong with a few suggestions on how to fix it.

    I got a reply that can be paraphrased as "We can't be bothered".

    So I patched the code and sent them the patches.

    Reply: "We still can't be bothered". The next release *STILL* had the bug in it.

    That's when I stopped using Qt.

    Yes, it might be a nice library, but the weiners who write it are still in the OSS mind frame, they think its their toy and they don't have to listen to their customers.

    When I've paid money for something, I expect a higher level of support than something I use for free. I don't expect to have to maintain my own fork of the source just to get the bloody thing to compile. This is something that they've failed to realise and why I now use Gtkmm, a library system that *is* truely cross platform.

    On a separate point: Once I realised quite how good Gtkmm is I was flabbergasted at how hokey Qt actually is. In comparison with most of the (correct) design decisions made by Gtkmm, Qt is riddled with absolute howlers, e.g. type-unsafe meta compiled signals/slots, arbitrary memory strategy, woeful integration into the STL and a designer that makes me cry with frustration every single time I use it.

    (Posting anonymously because bad mouthing companies who have dicked you over now seems to be illegal)

    1. Re:Moderate library - poor company by pherthyl · · Score: 1

      Hmm, I never had a problem with the windows build environment. And I much prefer proper documentation and the best class library bar none to some sense of technical "correctness" that I would get with GTKMM. I would be embarrassed to give a GTK UI to a paying customer on Windows. It's great on Linux, but the cross platform support is pretty poor.

    2. Re:Moderate library - poor company by Anonymous Coward · · Score: 0

      you are vague in your criticisms. could you please give a specific example of this bug that you speak of?? I use Qt 4.3.4 every day on Red Hat Enterprise 5 (RHEL-5) and Windows XP SP2 with Cygwin, both with no problems.

  30. KDE by 12357bd · · Score: 1

    Great, just waiting for KDE 4.x to stabilize usability/features, and we'll have a real killer graphic/desktop programming. Next is having major game makers to use it as his base platform.

    --
    What's in a sig?
  31. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  32. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  33. Re:Widgets in QGraphicsView look *really* promisin by Per+Wigren · · Score: 2, Insightful

    Yes, but this time it's implemented in something that people will actually use, and it's Open Source and cross platform.

    --
    My other account has a 3-digit UID.
  34. A note on signals and slots by master_p · · Score: 1

    I did not have the opportunity to work with Qt 4 yet, but I have used Qt 3 extensively. One minor disappointment with Signals and Slots is that they require the use of a special tool (qmake) to produce some C++ code which is then fed to the real compiler.

    My company has purchased Qt 3.0.5 for my department, and that version comes with integration with Visual Studio 6. But VS6 is really an old dog, with many bugs both in the compiler and the IDE, and VS8 is much better. So in order to use Qt 3 with VS8 I had to either invoke qmake manually, which is very tedious, or write a piece of code to connect Qt's signals with slots like the ones in boost.

    We chose the 2nd option, i.e. to write code that invokes boost slots from Qt signals, and we found it very pleasing.

    So, here is my question: in Qt 4, can we do signals and slots programmatically, or do we still have to use qmake?

    1. Re:A note on signals and slots by shutdown+-p+now · · Score: 3, Informative

      So, here is my question: in Qt 4, can we do signals and slots programmatically, or do we still have to use qmake?
      I imagine you mean "moc" ("meta-object compiler") here rather than qmake. You can call moc yourself without any problems, and you can run it from post-build actions for files in your project you need preprocessed. It's all there in UI in VS2008. And, of course, if you buy Qt4, you'll get full integration with all modern VS versions out of the box.

      IIRC, you always could do signals/slots programmatically - after all, moc is not some kind of magic, it just generates all the boilerplate C++ code. It's not exactly convenient, though (not like e.g. boost::signal), precisely because it's not intended to be used manually.

    2. Re:A note on signals and slots by master_p · · Score: 2, Interesting

      Yeah, sorry, I meant the MOC.

      I do not want to run the MOC myself, neither would I want to have to setup a build action for each file. I just want to press F5 and see my app compile. Anything else detracts from the development process.

      I can't buy Qt4, my boss will not buy it.

      I did signals/slots programmatically, and it's great. I studied the boilerplate code the MOC creates and simply copied it into templates. Now I don't have to use any special tools.

      Another benefit from this is that I can use any function as a slot, even stand-alone functions themselves. I don't have to declare slots any more!!!

      I understand that for Trolltech, the signals and slots mechanism is used as a kind of vendor lock in, but for me it's a nuisance, at best.

  35. Re:Qt still has a point? by Anonymous Coward · · Score: 0

    Wowee-gee, a couple of no-name, hobbyist emulator developers like QT. Any valid opinions to offer?

  36. Re:Qt still has a point? by Anonymous Coward · · Score: 0

    GTK and WX are both lacking a ton of features that are found in modern toolkits like Cocoa or QT.
    Just off the top of my head, please show me the Qt text widget that can have non uniform tabstops set differently on different lines. The only 2 toolkits that I've seen support this are GTK and Java's Swing.
  37. Re:Sigh, I was hoping for a free WM devel platform by Anonymous Coward · · Score: 0

    ... you must have Visual Studio (not an Express version) to install it, so developing mobile applications is still going to cost you at least a few hundred dollars. It's not Qts fault - the Express Edition can't make Windows Mobile applications full stop.

    It is a limitation added by Microsoft not Trolltech.
  38. Re:Sigh, I was hoping for a free WM devel platform by shutdown+-p+now · · Score: 1

    So, just a heads up to anybody else who's interested: Don't bother with it unless you have Visual Studio Professional 2005 or later.
    Actually, looking at the requirements for WM6 SDK, it says "Microsoft Visual Studio 2005, Standard Edition or above". Standard costs $199 for an upgrade, but considering that you can "upgrade" from the free Express, there's no excuse not to ;)
  39. Re:Qt still has a point? by shutdown+-p+now · · Score: 1

    wxWidgets actually manages to look somewhat crappy on everything but Win32, because the behavior of its widgets is largely Win32-centric. Because of that, they have to rewrite some widgets themselves to get the same expected behavior on other platforms, and the result is usually not very nice looking. A good example is the tree widget - it looks awful on Gtk at least.

  40. Re:Qt still has a point? by shutdown+-p+now · · Score: 1

    Nobody needs Qt when there is WxWidgets and/or GTK. Qt's point is moot.
    Considering that almost half of all Linux desktops run KDE, and that Trolltech doesn't seem to have trouble selling commercial Qt licenses despite the 4-figure price for a single developer license, I'd say that it's your point that is moot.
  41. Re:Qt still has a point? by EikeHein · · Score: 1

    Just as a side note, since this isn't known enough: If you're going to use the open source version of Qt, you're not required to use the GPL and only the GPL. Trolltech grants a broad license exception that allows the use of about two dozen other open source licenses, among them all the popular ones, such as LGPL, BSD, X11, Eclipse, Apache, Mozilla. See: http://trolltech.com/products/qt/gplexception/

  42. Re:This mobo doesn't take 4 GB, you insensitive cl by bestinshow · · Score: 2, Informative

    How much does a new motherboard that has slots for 4 GiB of RAM cost? Hmm, $75 - $125? And CPUs are dirt cheap too now.

    But ignoring that, KDE4 will run on a system with 512MB RAM, and my PC 5 years ago had that. 1GB of RAM, even old DDR 1, won't cost much if you need to upgrade.

    If you're on an older machine still, maybe you should change job or something.
  43. If you want garbage collection... by Viol8 · · Score: 1

    ...use Java or some other high level language or even just smart pointers. Thats not what C++ is about. Besides which the language is bloated enough already.

    1. Re:If you want garbage collection... by master_p · · Score: 1

      Actually, garbage collection will de-bloat C++ significantly. References and rvalue references are there due to lack of garbage collection.

      One of the reasons C is easy is because it only contains one type of indirection, the pointer. And that's all that is needed from a language that has pointers (i.e. C, C++, ADA etc).

      C++ contains 3 types of indirection: pointers, references, and rvalue references (not yet in the standard, but it's coming next year). All of them are actually pointers.

      And let's not forget all the special pointer classes (shared_ptr, weak_ptr etc).

      All these are not necessary when there is garbage collection.

  44. Re:Qt still has a point? by Anonymous Coward · · Score: 0

    I guess the major difference here is that QT and GTK are fun to use. wxWidgets simply isn't, it has gotten a bit better of recent however and I never did use 2.8, but trying to use the previous versions felt like trying to drill a hole in your own head a with a screwdriver. GTK and QT just felt divine after attempting to use it.

  45. Can anyone recommend some good books on Qt? by Viol8 · · Score: 1

    Because I can never find any (or on GTK+) in my local bookshops.

    And no , I'm not going to learn online and get eyestrain and a stinking headache staring at a monitor or spend a fortune printing out an online manual. Before anyone suggests it.

    1. Re:Can anyone recommend some good books on Qt? by Ringlord · · Score: 3, Informative

      I like C++ GUI Programming with Qt 4 very much. Details here http://troll.no/developer/books/2

    2. Re:Can anyone recommend some good books on Qt? by Viol8 · · Score: 1

      Thanks.

  46. Re:Qt still has a point? by Anonymous Coward · · Score: 0

    AND provides the worst documentation possible.

  47. Re:Sigh, I was hoping for a free WM devel platform by bestinshow · · Score: 1

    Java + SWT + IBM's J9 JVM.

    Perfect Windows Mobile development platform.

    And free ($6 for J9). Of course you'll need to have end users installing J9 as well which is a downside. But SWT does make the applications look Windows Mobile native, and adds in some great widgets for small screened devices like the ExpandBar. J9 is also pretty much a full Java implementation, so you aren't limited to J2ME.

  48. Re:Qt still has a point? by odourpreventer · · Score: 1

    Any valid opinions to offer?

    Opera uses Qt.

  49. GPL leaves the definition of "aggregate" vague by tepples · · Score: 1

    On OS X, I don't actually know, but I suspect that the icon is in the .app bundle, which isn't technically linking. The text of the GPL that we have to go on is as follows:

    A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
    This appears to have been intended to apply to independent programs, not necessarily a program and its required data distributed as a collective work. A program is not entirely "independent" of the icons included in the bundle, and the Free Software Foundation has refused to offer guidance as to its interpretation of "extensions of the covered work", leaving that up to the courts in each jurisdiction.

    But on Windows, I can see this being a problem.

    And it's a problem on some handheld or embedded-style systems for the same reason as on Windows. It was also a problem on Mac OS 9, which had a "resource fork" for things like this, which Windows imperfectly copied.

    So for the avoidance of doubt, it appears that artwork for use as part of a GPL program has to be dual-licensed GPL/GFDL so that they can be included in the program and in its manual. I have already done this to my contributions to Wikimedia Commons, but how can I convince others to license their artwork compatibly?

    1. Re:GPL leaves the definition of "aggregate" vague by Anonymous Coward · · Score: 0

      A program is not entirely "independent" of the icons included in the bundle

      Why do you say that? You can drop in any other icon and an application works fine, you can drop an icon into any other application and it works fine, they are completely interchangeable. The only way they aren't independent is aggregation, which we agree isn't covered by the GPL.

    2. Re:GPL leaves the definition of "aggregate" vague by tepples · · Score: 1

      Why do you say that? You can drop in any other icon and an application works fine How does the end user "drop in" icons to a compressed executable? On some platforms, such as Windows, it is customary to include icons in the executable; on others, it is mandatory.
    3. Re:GPL leaves the definition of "aggregate" vague by SanityInAnarchy · · Score: 1

      By that logic, many dynamically-linked libraries shouldn't be covered by the GPL, because you can just drop in any other library that implements the same API.

      I kind of feel like the GPL should be compatible with most CC licenses for artwork, but it doesn't look that way. And IANAL anyway.

      --
      Don't thank God, thank a doctor!
    4. Re:GPL leaves the definition of "aggregate" vague by Anonymous Coward · · Score: 0

      How does the end user "drop in" icons to a compressed executable?

      Are you arguing that mere aggregation within a single file is covered by the GPL? How do you feel about ISOs? Tarballs? Self-extracting zip files? The fact that the icon is stored within the executable doesn't seem to be particularly relevant to me.

    5. Re:GPL leaves the definition of "aggregate" vague by tepples · · Score: 1

      Are you arguing that mere aggregation within a single file is covered by the GPL? From the GPL FAQ: "If the modules are included in the same executable file, they are definitely combined in one program." That had me confused.

      The fact that the icon is stored within the executable doesn't seem to be particularly relevant to me. OK, next step: Is it lawful to distribute A. a 3D model, or B. an animated video of the 3D model, if the texture and mesh are under different, conflicting copyright licenses?
    6. Re:GPL leaves the definition of "aggregate" vague by Anonymous Coward · · Score: 0

      From the GPL FAQ: "If the modules are included in the same executable file, they are definitely combined in one program." That had me confused.

      But why are you classing an icon as a program module? The FAQ asks:

      Where's the line between two separate programs, and one program with two parts?

      It clearly can't be classing icons and other data files as program modules, as this question doesn't make sense under that assumption. An icon on its own isn't executable. Further:

      We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.)

      Again, there is no communication between an icon and the program that displays it, an icon doesn't have an address space or functions, etc. When it says "module", it's talking about executable code.

      Elsewhere in the FAQ, it also highlights the difference between the program and its data:

      When the interpreter just interprets a language, the answer is no. The interpreted program, to the interpreter, is just data; a free software license like the GPL, based on copyright law, cannot limit what data you use the interpreter on. You can run it on any data (interpreted program), any way you like, and there are no requirements about licensing that data to anyone.

      I don't think that answer is any different simply because the program and its data are bundled into a single file.

      Is it lawful to distribute A. a 3D model, or B. an animated video of the 3D model, if the texture and mesh are under different, conflicting copyright licenses?

      That depends upon whether you consider the 3D model to be mere aggregation or not. Does the choice of composition, arrangement, lighting, etc. make it more than aggregation? Probably, but that's something that doesn't apply to simply sticking an icon in an executable. The icon is simply there or it isn't.

    7. Re:GPL leaves the definition of "aggregate" vague by tepples · · Score: 1

      So in other words, you're saying it's safe to make a video game with GPL code and assets using dozens of mutually incompatible free content licenses, and distribute the collection for a fee, because they're all separate works that just happen to be displayed at once, right?

    8. Re:GPL leaves the definition of "aggregate" vague by Anonymous Coward · · Score: 0

      Did you bother reading my last comment? I'll repeat the relevant part:

      Does the choice of composition, arrangement, lighting, etc. make it more than aggregation? Probably, but that's something that doesn't apply to simply sticking an icon in an executable. The icon is simply there or it isn't.

      If you have a point, please get to it. At the moment you are coming up with example after example of variations on a theme which I have already said doesn't apply to a program icon and explained why.

    9. Re:GPL leaves the definition of "aggregate" vague by tepples · · Score: 1

      If you have a point, please get to it. At the moment you are coming up with example after example of variations on a theme which I have already said doesn't apply to a program icon and explained why. I brought up icons and splash screens because I was trying to use them as a bridge to my main issue of game assets.
  50. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  51. Re:Sigh, I was hoping for a free WM devel platform by Anonymous Coward · · Score: 0

    Standard costs $199 for an upgrade, but considering that you can "upgrade" from the free Express, there's no excuse not to ;) I have an excuse not to: I don't want to pay $199 for a development environment. :-p Not to mention that in a year or two, whenever Microsoft comes out with the latest version of Visual Studio, I'll have to pay the upgrade fee all over again if I don't want to be left behind in unsupported territory. No, thanks.
  52. Re:Sigh, I was hoping for a free WM devel platform by Yosho · · Score: 1

    It's not Qts fault - the Express Edition can't make Windows Mobile applications full stop.

    It is a limitation added by Microsoft not Trolltech. That doesn't make any sense. I don't need to use Visual Studio and the Win32 API to make apps for desktop Windows. Windows Mobile applications aren't signed or locked in any way. There's no reason why it should be technically impossible to make WM applications without Microsoft's toolchain. It just so happens that Trolltech decided to have Qt use the Windows Mobile SDK.
    --
    Karma: Terrifying (mostly affected by atrocities you've committed)
  53. Re:Sigh, I was hoping for a free WM devel platform by Yosho · · Score: 1

    But SWT does make the applications look Windows Mobile native, and adds in some great widgets for small screened devices like the ExpandBar. J9 is also pretty much a full Java implementation, so you aren't limited to J2ME. Out of curiosity, is it possible to write apps with SWT/J9 that actually feel like native applications? I admit that I'm not too familiar with Java on Windows Mobile, but on my phone, at least, I have to first run the "Java" program in order to run any Java application, and then I can only have one Java application running at a time; moving a running application to the background and executing "Java" again just brings the old application to the foreground. So, maybe a better question is: is it possible to write an application that runs exactly like a native application, as far as end users are concerned?
    --
    Karma: Terrifying (mostly affected by atrocities you've committed)
  54. Re:Widgets in QGraphicsView look *really* promisin by Nyrath+the+nearly+wi · · Score: 1

    Seconded. I had developed a hex grid map for a game using hex tiles to save space. I had previously coded the game map class in Visual Studio C++, and it was a huge clanking mess that took weeks to write and debug. When I switched to the Qt framework and used the QGraphicsView, I ended up with a small class that took less than a day to write and debug. And even got extra functionality for free (like playing pieces that can be rotated on their axis).

  55. Re:Sigh, I was hoping for a free WM devel platform by bestinshow · · Score: 1

    J9 is fine for running multiple Java applications at the same time.

    You create a small ".lnk" file that includes your Java command line to run the application, and then stick in in Program Files, or the Start Menu, and it works just like any other application.

  56. Re:Widgets in QGraphicsView look *really* promisin by Abcd1234 · · Score: 1

    Yes, but this time it's implemented in something that people will actually use

    You mean like this?

  57. Re:Qt still has a point? by mR.bRiGhTsId3 · · Score: 1

    Ah, yes, the GIO/GVFS, which I didn't post, but is at
    http://library.gnome.org/devel/gio/unstable/
    They are somewhat orthogonal concepts in my understanding, because if you want to use custom protocols across sockets you would need to use GIOChannel, whereas if you just want VFS functionality you would use GIO and friends.

  58. Re:Widgets in QGraphicsView look *really* promisin by FunkyELF · · Score: 2, Interesting

    You can do similar things with Swing but with a LOT more work. Also you'll feel like you're working against the system the whole time you're programming it. I bought a book called "Filthy Rich Clients" after seeing some stuff at JavaOne last year. I got half way through it and realized everything was a hack.

  59. Foundations of Qt Development by Balinares · · Score: 1

    My two cents: I've only just started in my advance copy of 'Foundations of Qt Development' by Johan Thelin but thus far it looks fairly good. I should probably post a review when I've read it cover to cover, actually.

    --

    -- B.
    This sig does in fact not have the property it claims not to have.
  60. Re:Qt still has a point? by nuzak · · Score: 1

    It's still about €2500 for one commercial seat, but if you spend one less day wrestling with glade and glib's half-assed I/O libraries, it pays for itself.

    --
    Done with slashdot, done with nerds, getting a life.
  61. Re:Qt still has a point? by Anonymous Coward · · Score: 0

    And GIMP uses GTK. So?

  62. Re:Qt still has a point? by odourpreventer · · Score: 1

    You asked for examples. I gave you one.

  63. But does it work with Visual C++ Express? by hazee · · Score: 1

    I'd like to try Qt, I reall would. But I only have Visual C++ Express Edition available to me at home, and there seems to be conflicting information as to whether Qt will support VC++ Express.

    First there were a bunch of postings indicating that it would.

    But then, when you check the Qt download page, you're told that "Please note that the Open Source Edition of Qt will support the MinGW compiler".

    So which is it?

    There are some guides to getting it working, but they appear to involve strange nonstandard patches, and a whole bunch of manual configuration - frankly, it's all just too much damn work. I may only qualify as a hobbyist programmer at home, but my time is still precious.

    The irony is that, because Visual C++ Express doesn't come with MFC, there appears to be a gap in the market for a C++ windowing library for hobbyist Windows programmers. And who knows, if I like Qt at home, I may end up recommending buying it at work.

    1. Re:But does it work with Visual C++ Express? by UngodAus · · Score: 2, Informative

      I recommend using QDevelop with the free version of Qt, it's coming along quite nicely, and makes the whole experience quite nice to use with the mingw32 compiler. I've not kept up with the state of free/msvc integration, but yes, you won't get all the niceties of help file/designer/auto-moc'ing that vs integration gives you with devstudio express. The reason for that is because microsoft doesn't allow extensions to be loaded into it, which is how the vs integration stuff works.

    2. Re:But does it work with Visual C++ Express? by pherthyl · · Score: 1

      Two answers. Yes Qt works with the compilers in visual studio express. You can just download the source and recompile it with those compilers, then compile your programs against that. You need to download the platform SDK separately though, since the express editions don't come with it.

      There is no built in VS integration in the free version, you have to buy a license for that.

      It's definitely much easier to use mingw, since everything comes pre-compiled for you. Then use something like QDevelop or the Eclipse Qt integration as an IDE.

  64. Re:Widgets in QGraphicsView look *really* promisin by spyfrog · · Score: 1

    Sorry. He wrote "cross platform" also.
    Show me how you get Cocoa cross platform.

  65. Re:Sigh, I was hoping for a free WM devel platform by iamwahoo2 · · Score: 1

    While it may be technically feasible, it may not be practical. It is not quite as trivial as you are making it out to be.

  66. Re:Qt still has a point? by gnud · · Score: 1

    Just off the top of my head, I would guess QScintilla can. Havn't checked tho.

  67. Re:Widgets in QGraphicsView look *really* promisin by Reality+Master+201 · · Score: 1
    From the linked wikipedia article:

    There are also open source implementations of major parts of the Cocoa framework that allows cross-platform (including MS Windows) Cocoa application development:
    GNUstep
    libFoundation
    Cocotron


    This isn't an endorsement of the ease of development and portability; I'm merely noting that a prima face argument for cross platform Cocoa is possible.
  68. My testers are on dial-up, you insensitive clod ;) by tepples · · Score: 1

    Dude, unless you're on dial-up, 10MB is nothing. I am involved in three free software projects that also have a prominent member who uses dial-up: Lockjaw (tester uses dial-up), vNES (lead programmer uses dial-up), and a homebrew DS Download Play server (lead programmer uses dial-up).
  69. Re:My testers are on dial-up, you insensitive clod by Urza9814 · · Score: 1

    Well then they should be used to waiting :)

  70. Re:Qt still has a point? by Brandybuck · · Score: 1

    Plus, if you're a commercial developer, $2500 is NOTHING!

    I'm sick of shareware authors whining about the price of commercial Qt. If you're only making $100 a year on your software, get a clue and open source your damned software!

    --
    Don't blame me, I didn't vote for either of them!