Slashdot Mirror


A Taste of Qt 4

Karma Sucks writes "In 'A Taste of Qt 4', Trolltech reveals that it is positioning Qt 4 directly against Java. Qt 4 promises to be smaller and faster than its predecessors and there will be a boatload of new features including support for non-GUI applications and accessibility under Linux using Sun's ATK. More controversial is the introduction of a new and elegant foreach construct. Incidentally, for those still opposed to Qt's moc preprocessor, Havoc has some interesting comments. It is possible the idea will be adapted to provide GObject introspection in the future."

3 of 365 comments (clear)

  1. Re:Ack by Bingo+Foo · · Score: 0, Troll

    Yeah, if they said that Quake 4 were being positioned directly against Java, that would make more sense.

    --
    taken! (by Davidleeroth) Thanks Bingo Foo!
  2. Re:Trolling? by SerpentMage · · Score: 0, Troll

    I was a manager of a team of about 20 people. We went to a company similar to TrollTech, except they were called Rational. When you start to multiply the numbers, and remember you do not JUST buy an SDK. But you need an editor, computer, build system, etc, etc. It all starts to add up.

    When I use toolkits like wxWidget or even GTK and the helper apps the money needed to get Qt simply does not add up.

    Heck, it would be cheaper and more effective to buy Visual Studio C++ and then use Winelib. Probably the application would run better as well.

    --

    "You can't make a race horse of a pig"
    "No," said Samuel, "but you can make very fast pig"
  3. Re:Java? by master_p · · Score: 0, Troll

    the Qt APIs/libraries could not possibly yet be considered as complete as the core Java APIs

    And what do the core Java APIs have that Qt does not have ? you do not mention any example.

    database access, rpc, and web application development

    Of course Qt has the above. Just take a look at the Qt API help. It is online.

    If so then perhaps I'll call it a "platform"...

    Or you may start calling Java a 'toolkit'... ;)

    but the cool thing about Java is that I can compile it on my Mac OS X, or Windows desktop (with all the ease of use, etc., etc.)

    Qt source code is 100% compatible in Unix, Windows and MacOS.

    and deploy it onto industrial strength Unix, AIX, Sun cluster, Linux, etc. with drag and drop and NO recompilation.

    Yes, but Qt apps are compiled once and are delivered as-is (in binary form); no need for different Java API installations (and API incompatibilities); faster, more economical.

    If you compile a new web app every half an hour, the Java system is better. But how often is this the case ? not very often, especially in non-web apps.

    If the "goodies" where a standard set this might be a valid argument. There is immense value to me to know that I can download almost any Java project and not worry about how they manage memory, what type of smart pointers they use, what "goody" libraries they use to do this or that, since in Java a vast amount of common functionality is all standardized.

    But Qt is exactly that: 100% standard across all libraries. Once you have Qt, you don't need any other libs, nor you need to know anything about memory allocation techniques of other libs). Qt does everything.

    Performance is no longer an issue.

    You are freaking and plain wrong. I work in a company that makes Java and C++ applications. Java has the same speed in C++ for numerical computations, because it does not involve objects. All other things, involve the freaking one-size-fits-all Object class: too much time is spent in casting, creating objects just to search collections, calling virtual interfaces, etc.I know it, because I've measured it in our apps.

    But observe the retail computing industry - consumers are showing that performance is NO LONGER AN ISSUE.

    Then why our developers have a 2x increase in productivity when moving from JDeveloper 10.5 to Visual Studio .NET ? I will tell you why: because JDeveloper, written in Java, is 5 times slower than VS.NET.

    Of course, for retail apps, performance may not be an issue. But what are the retail apps ? Office ? it already exists and it is written in C++. In fact, where are the Java retail apps ? If performance is no longer an issue, where are the apps ?

    In fact, there are many Java apps around, but not retail. They are usually specialized apps or web applications. I know it because many of our development tools are in Java (and slow as hell).

    And why Swing is slow ? it is entirely written in Java, that's why. Because Java is slow, Swing is slow. It's not about latency of the O/S windowing system, because, for example, Microsoft's GUIs are much faster and quite better looking.

    Boy, that sounds familiar doesn't it...

    Java does not have profile-based compiling. It is something different than optimizing on the fly the compiled code. You obviously don't have a clue what it is about. Let me tell you: Profile-based compiling is based on the principle that an application should optimize for the most-usual cases; and optimization happens in algorithm level, not instruction level. For example, if an app can take 2 paths A and B, and the profiling shows that path A is taken at 80% of the cases, then the path A can be inlined for much faster access. In order for the compiler to arrive to such conclusions, the app has to be compiled as one translation init. Java can't do it, because it does not work like that. Java does not know what comes ahead, because it makes the assumption of the program being defined at run-time. And that's why C++ code is much faster than Java on the Itanium architecture.