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."

365 comments

  1. Mono-Culture? by Anonymous Coward · · Score: 5, Interesting

    "Trolltech reveals that it is positioning Qt 4 directly against Java."

    And what about Mono?

    1. Re:Mono-Culture? by Anonymous Coward · · Score: 0

      see a doctor.

    2. Re:Mono-Culture? by bircho · · Score: 4, Insightful

      It's not a Monopoly... I don't think Gnome is gonna embrace Qt (at least now). So Mono has its place.

    3. Re:Mono-Culture? by gglaze · · Score: 1

      Yes, very curious...what about Mono?

      More controversial is the introduction of a new and elegant foreach construct.

      Wonder where they got that idea...

    4. Re:Mono-Culture? by RoLi · · Score: 4, Insightful
      Is there even one single non-trivial software project made with/on Mono?

      I'm getting tired of all those predictions, promises and vaporware coming from Gnome/Mono. Why does anybody still take them seriously?

      So far, nothing useful has come from Mono while Qt runs REAL software (you know, the kind that actually runs and can be useful) ranging from a whole desktop environment to word-processors.

    5. Re:Mono-Culture? by nuba · · Score: 3, Insightful

      My thought is that this has more to do with critical mass than it has to do with any technical merits of mono. Don't bash mono just because we're not ready to use it, when the time comes that some people begin to need/want it we'll be glad that its mature enough to go head to head with the closed alternatives.

    6. Re:Mono-Culture? by RPoet · · Score: 2, Interesting

      Depending on your take on "non-trivial", there are several projects built with mono and C#: Muine, the music player and F-Spot the personal photo manager, off the top of my mind.

      The point is just that Mono is not a toy. Of course, it's not silver bullet either, but compared to C, it sure allows the developer to focus on the important logic of his applications instead of juggling with memory pointers.

      --
      "Oppression and harassment is a small price to pay to live in the land of the free." -- Montgomery Burns.
    7. Re:Mono-Culture? by Anonymous Coward · · Score: 1, Interesting

      I notice there was no mention of the fact that Qt and KDE are having to rely on a system developed for GNOME (by Sun engineers) to provide the basics of accessibility -- ATK.

      Plus, accessiblity is lot more than just ATK support. It's also the apps design and the supporting apps. None of which exist for Qt and KDE. A conservative estimate is that Qt/KDE is about 2 years behind GNOME is this regard.

    8. Re:Mono-Culture? by Anonymous Coward · · Score: 0

      > The point is just that Mono is not a toy. Of course, it's not silver bullet either, but compared to C, it sure allows the developer to focus on the important logic of his applications instead of juggling with memory pointers.

      Which is incidently, what happens with Qt's memory management model as well.

      Mono is wonderful though, hope to see Trolltech produce Mono compatability like how they made .NET compatability on Windows. Of course, market forces will drive that. If customers want it, they'll do it.

    9. Re:Mono-Culture? by juhaz · · Score: 1

      Where they got the idea hmmh, yeah, obviously it couldn't been any of the kazillion languages that have had foreach or similar construct for decades.

      It must've come from C#/Mono since we all know that something is only innovated after Microsoft copi^H^H^H^Hinvents it, right?

    10. Re:Mono-Culture? by Anonymous Coward · · Score: 0

      I like how you did that "^H" thing. It's very clever, ass clown.

    11. Re:Mono-Culture? by Hard_Code · · Score: 3, Informative

      "Is there even one single non-trivial software project made with/on Mono?"

      Given that Mono runs C#... just survey the landscape of .NET/CLR/C# apps and find out yourself.

      Eclipse (one of the most popular [Java] developement environments) for one has been compiled to CLR bytecode and run on Mono. There is also an ASP engine written on Mono. Go check out the Mono site to see who use it. There are several companies that use it as a production environment.

      --

      It's 10 PM. Do you know if you're un-American?
    12. Re:Mono-Culture? by be-fan · · Score: 1

      Well, Dylan has the moral equivilent of a for-each (actually, a its got a very flexible iteration protocol that leaves 'foreach' in the dust), and its been around a lot longer than C#. I'm sure other languages have had it for decades before that.

      --
      A deep unwavering belief is a sure sign you're missing something...
    13. Re:Mono-Culture? by stilborne · · Score: 1

      having to? no. chosing to? yes. why? because it exists, because it's in use outside of KDE (allowing interop on day 0 rather than day N), because apps are already using it, because it has FSG support, etc, etc, etc. you seem to phrase KDE's pragmatic and generally beneficial decision as a weakness (or am i just reading you wrong?). cooperation and leveraging the good work of others is not a weakness. we could have decided to remain behind GNOME by ascribing to NIH and trying to reimplement everything ourselves, but instead we decided to join the game at a full run thanks to the opportunities inherent in open source and the good will of all involved.

      thanks go to Sun, the FSG and the KDE hackers involved in this particular piece of the puzzle =) see! we can and do work together =)

    14. Re:Mono-Culture? by Anonymous Coward · · Score: 0

      It depends on your definition of REAL software.

      Mono runs web applications, web services, has some very large deployments, is used on embedded systems and we are building various GUI applications with it.

      Some of the largest apps is MonoDevelop, which was originally written for Windows and ported over to Linux, 88 megs of sources + binaries.

      Writing software with Mono and Gtk# is a breeze, specially with MonoDevelop. And thats what atters
      to some of us.

    15. Re:Mono-Culture? by steveha · · Score: 1

      Is there even one single non-trivial software project made with/on Mono?

      Using google, I found a list of GTK# apps:

      http://www.nullenvoid.com/gtksharp/wiki/index.php/ SoftWare

      steveha

      --
      lf(1): it's like ls(1) but sorts filenames by extension, tersely
    16. Re:Mono-Culture? by Anonymous Coward · · Score: 0

      thanks go to Sun, the FSG and the KDE hackers involved in this particular piece of the puzzle =) see! we can and do work together =)

      I think his point was that it is rarely admitted. In all the talk about ATK giving KDE accessiblity, no KDE supporter wants to admit that GNOME and Sun had the foresight and did most of the grunt work. In addition, I've noticed that there are few technology flows out from KDE, due to the insistence of putting a Qt dependence into almost everything. Give the KDE developers a slap will you, and explain about dependency trees and good software engineering practise.

    17. Re:Mono-Culture? by panoplos · · Score: 1

      Here are some substantial pieces of software that can currently run on top of the Mono VM:

      • The Mono C# Compiler (MCS) itself is self-hosting on Mono. This consists of "roughly 1.7 million lines of C# code."
      • OpenLink Virtuoso is hosted on Mono on the GNU/Linux platform.
      • MonoDevelop, though in its early stages, is already proving really quite useful as a full fledged IDE.
      • XSP is already capable of running a number of complex sites, web services and all! Just have a look at the monodoc project.

      ... and if you still believe Mono to be "vaporware," perhaps you can explain why Novell would ever consider sponsering a project so obviously doomed to fail?

      Let us not also forget that Mono is still in its infancy, whereas Qt has had the opportunity to mature over many years of constant development and deployment.

      Don't get me wrong, I am thoroughly impressed with the TrollTech offering in Qt, it is just that I have a hard time buying into the whole "vaporware" pitch with regards to Mono...

  2. Re:The Future of Linux by Anonymous Coward · · Score: 0, Funny

    Arnie, is that you?

  3. Re:False pretenses by jester · · Score: 2, Insightful

    Real contender for what exactly ? You rule things out in a way suggesting that one thing can do everything.

    Java works very well on server side. It doesn't work very well client side. Its horses for courses.

  4. About KDE... by c4Ff3In3+4ddiC+ · · Score: 5, Interesting

    When KDE released version 3.2, there was a noticable speed improvment for most users. Will we get to see another good speed boost when/if KDE moves to QT4? Here's hoping.

    --
    *twitch*
    1. Re:About KDE... by 10Ghz · · Score: 5, Informative

      I would say yes. There has been lots of talks in the KDE-community to keep on optimizing the code. And Qt4 has several improvements that boost performance in the toolkit-side. So the toolkit gets a significant performance-boost with Qt4, and KDE itself gets more and more performance through optimizations in the code.

      Qt4 alone should cut down the start-up time of apps significantly. It's effect in the run-time are propably less dramatic, but the KDE-folks can make a difference there (and they are making a difference). And Qt4 should eat considerably less RAM. I see good things ahead :).

      --
      Lesbian Nazi Hookers Abducted by UFOs and Forced Into Weight Loss Programs - -all next week on Town Talk.
    2. Re:About KDE... by Deraj+DeZine · · Score: 2, Interesting

      Any facts to back your claims up? Optimizing code isn't something you can just always do; sometimes code can't be improved. Additionally, since Qt 4 will have many new features, it would make sense that it may actually be slower and bulkier than its predecessor since it is more complicated.

      --
      True story.
    3. Re:About KDE... by 10Ghz · · Score: 1
      Any facts to back your claims up?


      That seems to be the general feeling I have got reading the mailinglists and other places. Are you thinking that "KDE-developers optimizing code?? That can't be! Where's the evidence to back up that ridiculous claim!?"
      --
      Lesbian Nazi Hookers Abducted by UFOs and Forced Into Weight Loss Programs - -all next week on Town Talk.
    4. Re:About KDE... by Deraj+DeZine · · Score: 1

      Fair enough, it's just that most software projects get bigger and slower when adding features, not the other way around. I'm not saying it's not possible, but I find it hard to believe without writing in assembly or something.

      --
      True story.
    5. Re:About KDE... by koali · · Score: 1

      Didn't they say they were going to compete with Java?? And you're hoping for a speed improvement??

      (Joke: I'm a Java developer and the Java-is-slow cliche gets on my nerves)

  5. Trolltech by Anonymous Coward · · Score: 5, Funny

    Ain't it neat how the trolls have their own tech company?

    1. Re:Trolltech by Anonymous Coward · · Score: 1, Offtopic
      yes. I am thinking of setting up SpamTech.

      Open and Extendable Penis Enlargement.

    2. Re:Trolltech by Anonymous Coward · · Score: 1, Funny

      and the gnomes have theirs too!

    3. Re:Trolltech by Anonymous Coward · · Score: 0

      It's sure nice. But don't forget the crapflooders' upstart company ff74Pb2fbE65dd0en!731ab3d94a67962857b-tech.
      I told them to choose a name that was easier to remember, but they said I should 49a4fuck63sdfa224fuckb24270sdf8sfd2sdf7g1b5 off.

    4. Re:Trolltech by Anonymous Coward · · Score: 0

      You probably work in Redutech, don't you?

    5. Re:Trolltech by Anonymous Coward · · Score: 0

      "Ain't it neat how the trolls have their own tech company?"

      From the Gnome/KDE flamefests, we could have guessed...

  6. Psh... by Anonymous Coward · · Score: 4, Funny

    qt 6.5 has been out for a while now.

    1. Re:Psh... by ashot · · Score: 2, Interesting

      I wonder what sort of shared trademark deal is going on there actually..

      --
      -ashot
    2. Re:Psh... by Anonymous Coward · · Score: 0

      Well, I think it's actually Qt vs QT. It's the tea that makes the difference.

    3. Re:Psh... by Anonymous Coward · · Score: 0

      It's the tea that makes the difference.

      That's why I live in England.

  7. Re:So by moxruby · · Score: 5, Insightful

    I'm not a developer, I'm just a KDE user. I fail to see how there's anything revolutionary in here for me, or the other users. After all, software isn't just for the developers.

    While you may not realise the benefits straight away, software being easier to develop means more, higher quality apps for everybody.

  8. Re:So by Anonymous Coward · · Score: 3, Insightful

    If it's better for developers, then it will be better for you (or should be).

  9. Wait a minute ... by obsidianpreacher · · Score: 5, Funny

    I thought we had come to the conclusion that since Sun "sold out" to Microsoft, that Java was therefore "dead" ... didn't we? And now these guys come along and ... wait ... Trolltech ...?

    Nevermind, it makes sense now.

    --
    topreacher@signature.slashdot.org 1% rm -rf sig
    1. Re:Wait a minute ... by bwy · · Score: 1

      You thought that was bad. I'm a java programmer who owns a Mac! I might as well be writing cobol on a 390.

    2. Re:Wait a minute ... by Hard_Code · · Score: 1

      Doesn't Mac OS have full JDK 1.4+ support by now?

      --

      It's 10 PM. Do you know if you're un-American?
  10. Smaller and Faster is the key by Anonymous Coward · · Score: 0

    Any time a program gets smaller (disk footprint or memory footprint) and/or faster, it helps the end user. The machine will operate more smoothly, for one thing. Of course, people only notice when their computer runs slower, but almost never when it's faster.

  11. Java? by bunhed · · Score: 5, Insightful
    ..."positioning Qt 4 directly against Java"?

    That'll be great to be writing servlets and jsp's in C++. *cough*

    1. Re:Java? by moro_666 · · Score: 5, Interesting

      excuse me for the following expression :
      qt vs java ? WTF ?
      this is like comparing a ford vs. titanic.
      java is much more than some simple thread/socket apis
      and visual components.

      java has technologies from j2me to j2ee including
      huge transactioning clusters which work with thousands
      of clients. show me an qt based application server like jboss.
      there are none.

      so how could you POSSIBLY compare these things ?

      java runs anywhere from sun to x86, you don't have to
      compile anything if you switch the platform.

      with qt you have to. that's the trouble most users don't want to take.

      java can work in a cluster where machines are ranged
      x86's to ultrasparcs and Apple's G4's. Qt isn't able
      to do it. so .. what's the case ?

      it's hard to write a memory leaking application in java
      (i know it can be done, i have seen some "java programmers"
      who are experts on it, but usually it doesn't happen),
      every forgotten free() or a typo in a c/c++ program can
      cause you memory leaks.
      it's very hard to get a segmentation fault in java, in the
      opposite of that you get a catchable exception which
      you can handle as you like, as in c i belive everyone
      reading this forum has opened the bloody gdb and looked
      "where the f do i go wrong here... ?".

      gush. who ever wrote the article should be ashamed a bit.
      there is absolutely no point in the whole thing whatsoever.

      you may define one define that qt the standard of c++ as
      j2sdk is for java, but you couldn't obviously compare a c++
      library to the whole java business.

      --

      I'd tell you the chances of this story being a dupe, but you wouldn't like it.
    2. Re:Java? by Anonymous Coward · · Score: 1, Interesting

      Why would I use being free() with Qt?

    3. Re:Java? by bircho · · Score: 2, Interesting

      A friend of mine has some work in this area... Server-side programming in C++...T++ are not very useble yet, but proof it could be done.

    4. Re:Java? by moro_666 · · Score: 3, Insightful

      you can't possibly write every api that exists into
      a wrapper in qt or can you ?

      let's say you wan't to use ncurses api, are you
      really going to implement it (or at least a frontend)
      in qt ?

      basically if you need to use libraries that
      qt doesn't contain you have to worry about memory
      usage.

      anyway, this is not the global point.

      qt is FAR away from where java is now.

      it isn't even meant to be a java replacement, but as an C++ alternative to it.

      still i can't imagine why should i switch from java
      to c++ when developing huge enterprise applications
      that will run god knows where on god knows which databases
      and so on.

      i can't expect my client to compile every kind of source
      i send to him.

      but i can expect that he can copy one war file into the right directory.

      --

      I'd tell you the chances of this story being a dupe, but you wouldn't like it.
    5. Re:Java? by Anonymous Coward · · Score: 0

      Ehm, that was obviously trying to be sarcastic for funny, he's agreeing with you. Some idiot just happened to mod it up the wrong way.

    6. Re:Java? by Anonymous Coward · · Score: 0

      I suppose I would conceivably use Qt-Console.

      If I really wanted I could make a C++ binding for (or if you want, integrate with Qt) "every API," which incidentally wouldn't be much different from what would be required of using native libraries from Java.

      You always have to 'worry' about memory usage. free() has rather little to do with usage of Qt, though, so your babble is sort of uninteresting. Interfacing with other existing libraries requires you to deal with how they manage memory. Nothing changes that. You can hide it behind a JNI wrapper, and I can hide it behind a C++ wrapper. I could even use garbage collection if I felt so inclined.

      Your 'global' point didn't interest me and I didn't address it. I was merely alluding that you're unfamiliar with memory management with C++ and Qt.

      If you want to make 'points' about the disparity between Qt and Java, stick to that.

      And 'which' database you use has nothing to do with what language you develop with. That was pretty stupid.

      If you're worried about source-compilation issues, the only sort of enterprise you have any experience with probably airs on UPN. You're right, there's no reason for you to switch from Java. Given your poor reasoning skills, I wouldn't be interested in having you design my tetris experience, least of all anything nontrivial.

    7. Re:Java? by Anonymous Coward · · Score: 4, Interesting

      Uh... it should have mentioned "positioning QT4 against J2ME", instead of just Java.

      It's about graphical toolkits used in cell phones.

    8. Re:Java? by master_p · · Score: 2, Insightful

      qt vs java ? WTF ? this is like comparing a ford vs. titanic. java is much more than some simple thread/socket apis and visual components.

      When they say Qt vs Java, they mean API vs API. There is no other meaning, since Java is also a platform, whereas Qt is a toolkit.

      Java is mainly a toolkit, and you also get an environment to run the toolkit inside. This is not a bad thing, but it does not provoke economy. C++ based apps are compiled once, Java apps are compiled every time they run.

      To prove to you that Java is mainly a toolkit, here is an assumption: imagine the Java cross-platform toolkit available for a static compiler (no JVM); it would be a very nice solution, right ? imagine now the JVM compiler and relative protocols without any cross-platform libraries available. Nasty, e ? you couldn't write anything useful for it. As you can see, it is the API that counts, not the platform...

      java runs anywhere from sun to x86

      Qt runs in almost every environment that has a C++ compiler. Not only in mainstream OSes like Windows, Linux, Solaris, BSDs and MacOS, but in many embedded platforms.

      Java also needs a compiler, too. In fact, Java runs where there is a compiler available.

      that's the trouble most users don't want to take.

      That's an assumption from your part. Most users just want to run the program. There are lots of developers that want static apps and they are using Java for that because of the rich APIs.

      java can work in a cluster where machines are ranged x86's to ultrasparcs and Apple's G4's. Qt isn't able to do it. so .. what's the case ?

      So can Qt. Why do you say that Qt is not able to do it ? A Qt app can run in Windows and co-operate with other apps running in Solaris or Macintoshes even using the same protocols Java does (XML, http, sockets, etc). In fact, there is no constraint as to what Qt talks: it is just a local application, which works indepentently of the hardware configuration.

      it's hard to write a memory leaking application in java

      Although Java is a little bit nicer than C++, one error Java programmers often do is that they forget to assign null to pointers. This has a big consequence: the virtual machine does not free unused objects as soon as possible.

      C++ does not have 'free'. It has a 'delete' keyword. A typo can create a memory leak no more than in Java: deleting the wrong object is almost equal to assigning null to a wrong pointer.

      If you use C++ properly, you shall not have memory leaks. It takes a little bit more experience in programming, but it pays off: side effects are executed when the user says so and not when the garbage collector decides to. C++ can even use RAII, which is impossible in Java.

      gush. who ever wrote the article should be ashamed a bit. there is absolutely no point in the whole thing whatsoever

      Maybe you should be ashamed, because you have no idea of C++ programming. The use of templates, RAII, shared pointers, STL, and lots of other goodies C++ has, makes C++ programming better than Java in the long run (especially for big applications). And C++ applications get the full-benefit of object-orientation without the slowness of Java;Java programs are slower than C++, no matter what you hear, mainly because of the run-time casting overhead and big memory footprint.

      Microsoft has recently submitted the C++/CLI environment to ECMA for standardization. They have C#, right ? why do they need C++ ? :-)

      Furthermore, C++ compiler technology marches ahead with technologies like profile-based compiling, which may give speed increases of up to 20%.

    9. Re:Java? by Anonymous Coward · · Score: 0

      every forgotten free() or a typo in a c/c++ program can cause you memory leaks.

      Not if you do it properly. Qt should only make life easier.

      it's very hard to get a segmentation fault in java, in the opposite of that you get a catchable exception which you can handle as you like, as in c i belive everyone reading this forum has opened the bloody gdb and looked "where the f do i go wrong here... ?".

      Exception handling in C++ is quite more advanced than in Java. In fact the language itself, while not very nice to look at, is very flexible.

    10. Re:Java? by Viol8 · · Score: 3, Insightful

      "C++ does not have 'free'."

      Yes it does , you can use the full C API in C++ and for simple things it used to be quicker though I don't think thats the case any longer.

      "If you use C++ properly, you shall not have memory leaks"

      You could say the same about C or even assembler. If an object is new'd in a function but the coder forgets to delete it thats a memory leak,
      exactly the same as doing a malloc but forgetting the free.

      "Maybe you should be ashamed, because you have no idea of C++ programming."

      I'm not convinced you have a full handle on it either. I get the feeling you learnt C++ and never learnt straight C which you may think is an advantage
      but I can assure you it isn't.

    11. Re:Java? by popeyethesailor · · Score: 2, Insightful

      Perhaps he is corect.. The free() function just deallocates memory, delete does a whole lot more AFAIK, calling destructors and the like.

      While I agree that C++ can be as dangerous as Assembler, use of proper libraries/STL does improve the situation.

    12. Re:Java? by xg0blin · · Score: 1

      I think he was talking about keywords, not functions. free() is not a keyword in C or C++.

    13. Re:Java? by Anonymous Coward · · Score: 0
      it's hard to write a memory leaking application in java
      (i know it can be done, i have seen some "java programmers"
      who are experts on it, but usually it doesn't happen)


      Uh, its really not that hard to get a memory leak in java. Just hold on to a reference after it is no longer needed. You really don't need to be an expert or anything to achieve this-- in fact I think non-experts/programmers would be more likely to have leaks because they are less likely to understand the need of setting references to null because in their logic the garbage collector will take care of all that.
    14. Re:Java? by mmusson · · Score: 1

      With the Boost smart pointers memory leaks are no more (probably less) of an issue than leaks in Java. I would make the argument that the lack of a deterministic destructor in Java is a far bigger liability. I think this is the biggest reason that serious resource leaks are so common in Java projects. Using static scoping for grabbing and releasing of shared resources is an almost idiot proof technique for using (and not) leaking a resource.

      Another thing I miss a lot in Java is the templates. It is hard to live without type safe containers and generics once you are used to them. Yes, you can simulate aspects of this with inheritance and interfaces but it is a poor substitute.

      --
      SYS 49152
    15. Re:Java? by Anonymous Coward · · Score: 0

      Maybe YOU should be ashamed for not knowing what you're talking about... Java has been a very fast language for quite some time now. In fact, Java is beating C++ quite easily:

      http://www.osnews.com/story.php?news_id=5602

    16. Re:Java? by swillden · · Score: 1

      You could say the same about C or even assembler. If an object is new'd in a function but the coder forgets to delete it thats a memory leak

      If you use C++ properly, you should almost never manually delete anything. And the only reason I say "almost" is because C++ programmers hate to be constrained :-)

      Seriously, though, good C++ programming technique involves deciding at point of object creation what the object lifetime will be -- or if it's not decidable. In 99% of cases, objects should live either (a) as long as their containers or (b) until the current function ends. In 0.99% of the cases, when object references are shared and object lifetime is hard to predict, you use some sort of reference-counted (or better) smart pointer. In the other 0.001% of cases, you have to really think about it and do manual deletion.

      I get the feeling you learnt C++ and never learnt straight C which you may think is an advantage but I can assure you it isn't.

      What's clear is that you haven't learned C++, and therefore can't see its advantages over straight C. I've been writing code professionally in both languages for nearly 14 years now, and there are very, very few situations for which I'd choose C over C++. The only place where C makes more sense than C++ is where extreme portability is required. C is great for situations where gcc is not available, or where the environment is so tiny that the minimal C++ library overhead (which is only a couple of KB) is excessive. The latter are environments where malloc() and free() are considered excessive overhead, not to mention the rest of the C standard library. Everywhere else, I'll take C++, thanks.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    17. Re:Java? by Hard_Code · · Score: 1

      "Java is mainly a toolkit, and you also get an environment to run the toolkit inside."

      Let's say I agree with this premise. Even so, the Qt APIs/libraries could not possibly yet be considered as complete as the core Java APIs, or J2EE APIs (really just a collection of various "middleware" APIs including those for database access, rpc, and web application development)? Is Qt really going to come to the plate with a set of APIs as full as Java (and furthermore get a significant majority of C++ developers to adopt them as standard)? If so then perhaps I'll call it a "platform"... until then it is a (great!) widget toolkit with some miscellaneous nice libraries.

      "Qt runs in almost every environment that has a C++ compiler"

      Granted that other languages might be more source-portable than the Java platform...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.) and deploy it onto industrial strength Unix, AIX, Sun cluster, Linux, etc. with drag and drop and NO recompilation. This is am IMMENSE development productivity win. If our developers had to recompile every fucking thing each time they migrated from development to test to production our productivity would plummet (for one thing, they would have to become fairly savvy users of every deployment environment, as well as their own local operating system). This tight development cycle is a huge win.

      "So can Qt. Why do you say that Qt is not able to do it ?"

      I think the point is that when you are running in a massive environment where reliability is key, a native language like C/C++ is a big freaking liability. No - everything cannot go down because of a segfault - not acceptable. Ok, I KNOW you can get Java to fail in other non-desirable ways, but the odds of failing so catastrophically and randomly are much lower in a language that simply does not allow you to make a common set of mistakes.

      "Java programmers often do is that they forget to assign null to pointers. This has a big consequence: the virtual machine does not free unused objects as soon as possible."

      I have not ever seen this ever be a problem. Garbage collection is a black box and is done according to whatever heuristics the garbage collector uses...sure it might "help" negligably to assign nulls but I have seen no effect either way. Perhaps in a REALLY garbage-collection-intensive program (where you are creating and destroying thousands of objects). If something is going out of scope then it's pointless to assign null. In other situations I suppose you could pre-emptively annull references that you think you might not need in the future but that is more a matter of how much heap you want to consume as the working set etc., it doesn't have any leak ramifications.

      "If you use C++ properly, you shall not have memory leaks."

      And if "using C++ properly" is more expensive than "using Java properly" for the same solution, then the argument is already forfeited.

      "The use of templates, RAII, shared pointers, STL, and lots of other goodies C++ has, makes C++ programming better than Java in the long run (especially for big applications)."

      Of course, everybody else needs to be using the same goodies or you have to learn their goodies and whoops maybe you didn't understand it as well as you thought you did. 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.

      "Java programs are slower than C++"

      Performance is no longer an issue. Latency surely is an issue in the GUI, and for intensive things like games (which is why you don't major adoption of Java for games). But observe the retail computing industry - c

      --

      It's 10 PM. Do you know if you're un-American?
    18. Re:Java? by master_p · · Score: 1

      Yes it does , you can use the full C API in C++ and for simple things it used to be quicker though I don't think thats the case any longer.

      No, it does not. The function 'free' is part of 'stdlib.h', which is not part of the C++ standard. You can use it, along with 'alloc', 'alloca', 'AllocMemory' (WIN32) 'kalloc' and many other functions. But it is not part of the language specification. On the other hand, 'new' and 'delete' are operators, i.e. part of the language spec.

      You could say the same about C or even assembler

      It's not the same argument about C or assembler, because there exist no tricks that can make C safer (or assembler, for that matter). In C, you have 'malloc' and 'free', and that's it. You don't have RAII, smart pointers, etc.

      'm not convinced you have a full handle on it either. I get the feeling you learnt C++ and never learnt straight C which you may think is an advantage but I can assure you it isn't.

      You are wrong. You are also wrong that C is a subset of C++. It is not. C++ is an entirely different language, partially compatible with C. (for example in C99 you can do 'array[arg1]', whereas in C++ you can not).

      It's obvious who is ignorant, isn't it ? :-)

    19. Re:Java? by master_p · · Score: 1

      Please mod the parent post as 5, insightful. Amen, brother: in a few words, you summarized what is wrong with Java.

    20. 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.

    21. Re:Java? by coaxial · · Score: 1

      "C++ does not have 'free'."

      Yes it does , you can use the full C API in C++ and for simple things it used to be quicker though I don't think thats the case any longer.


      Using free(3), malloc(3) and all the other C memory allocation functions in C++ is bad form. They don't call the constructors and destructors. That's why there's new and delete.

      Use the language right people.

    22. Re:Java? by Hard_Code · · Score: 1

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

      You're right I didn't mention, and I should consult the docs. ... a little time passes... This is what I found: http://doc.trolltech.com/3.3/groups.html , and you are correct. To my surprise (and pleasure), comparing this to the Java core libraries, it seems mostly complete (at least compared to the standard edition, I don't see any web application stuff but I don't expect to either).

      "Yes, but Qt apps are compiled once and are delivered as-is (in binary form);"

      You're not saying accross processor architectures are you?

      "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."

      For us, this actually turns out to be important, because it is an immense waste of time and money to have to also train developers on Unix and how to compile their application on Unix (which I presume would include common concepts, shell navigation, unixish build tools like make/automake/autopackage). Granted this situation would be different if either the processor architectures or operating systems were the same between development and production, and while Linux and Mac OS X provide this possibility, there are many real world reasons (one of which would be massive initial retraining and purchasing costs) to be able to support heterogenous processor architectures and operating systems among environments.

      "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."

      Yes, as I found out...this is really cool, and I hope that this is sold not as "Hey, look we added a platform to Qt" but really as a seperate product so that even non-Qt C++ developers can use a standard platform. That would make C++ development much less painful IMHO.

      "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."

      I won't argue this.

      "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."

      Yes, a lot of these development environments are truly monsters. Don't get me wrong, I'm not saying Swing is great...there is a lot of room for improvement. I'm not saying that Java ISN'T slow at all...I'm not a zealot, I can see where it is obviously slow in various circumstances... my argument is that yes it may be slow, but on the whole it is not THAT relevant. What IS relevant to GUI is latency/responsivity (i'm not talking X context switches, or OS windowing system, I'm talking how fast a menu actually responds, etc.), and startup overhead. These are still areas Java can work on, in the GUI. These issues have little relevance to non-desktop applications. Startup time is still relevant to non-GUI (CLI) desktop apps. I don't think throughput is an issue.

      "Java does not have profile-based compiling. It is something different than optimizing on the fly the compiled code."

      Eh? The current breed of Java VMs include profiling compilers - the first popular implementation of which from Sun, was called HotSpot, because it found and optimized the hot spots you are talking about. Modern JITs don't just JIT once and forget it (I don't know, maybe .NET/Mono does this?) but they JIT (perhaps a fast, less-optimized version to aid startup), and then possiblye unJIT and reJIT many times over the lifetime of the application to adapt to how the program is running.

      "Java can't do it, because it does not work like that."

      Um, it

      --

      It's 10 PM. Do you know if you're un-American?
    23. Re:Java? by gnu-generation-one · · Score: 1

      "so how could you POSSIBLY compare these things ?"

      You could compare the things people are using them for, maybe.

      People could write in Java because it's multi-platform. Or they could write in C++/Qt.

      People could write in Java because of the nice graphical interface. Or they could write in C++/Qt.

      People could write in Java because of the useful objects that make programming easier (*cough*strings*cough*). Or they could write in C++/Qt.

      Or you could write in Perl/GTK+

      Oh, and tke KDE/Gnome argument is over. GNUstep wins. WindowMaker is better than them all.

    24. Re:Java? by Anonymous Coward · · Score: 0
      Although Java is a little bit nicer than C++, one error Java programmers often do is that they forget to assign null to pointers. This has a big consequence: the virtual machine does not free unused objects as soon as possible.

      Oh, please. JVM seldom frees objects ASAP no matter what -- generally it's more efficient to batch enough reclaimable stuff for GC, then run it, usually done by either periodically running incremental GCs, or when currently allocated heap runs out for new allocs. But more importantly, there is seldom need to do explicit null assigments; most references are through automatic variables, which, when going out of scope, are as good as getting cleared.

      For an "uncleared" reference to cause 'memory leak', one usually has to try hard. Reference has to be from currently reachable object (not automatic variable at any point). It can be done, but it's rather rare occurence. At most it causes problems with some event handler frameworks, where intricacies may come to play.

      Now as to C++ and memory leaks; they are pretty damn easy to do for any non-trivial application that uses other components (libs etc). Fundamental problem is object ownership; who should be responsible for deleting the object. And that gets hairy pretty quickly, on real-world systems. There's no comparison between C++ and Java there; one has practically guaranteed problems that need to be debugged out, while the other has low chance of ever getting even temporary extra memory use from unintended references messing GC.

    25. Re:Java? by koali · · Score: 1

      Most of your points have been addressed, but I think this one has not:

      Although Java is a little bit nicer than C++, one error Java programmers often do is that they forget to assign null to pointers. This has a big consequence: the virtual machine does not free unused objects as soon as possible.

      You don't need to set variables to null to have them garbage collected. In fact, sometimes it's a bad idea.

    26. Re:Java? by tonejava · · Score: 1
      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.

      To be using JDeveloper is insane. It's way too heavy for Java development and in my opinion a piece of shit. I've used different Java IDE's and nothing can compare with IntelliJ 4. It may not be perfect but it has most of the resources you need (Module based development, auto importing of classes, great debugging features easily configurable) and not a whole overhead of resources you don't need. It's also affordable and don't go spouting on about free IDEs because I'm getting sick of this whole idea that development tools should be free.

      JBuilder 6+ isn't too bad but I think it's way over priced.

      Forte/NetBeans is slowly getting there but still needs work.

      The highlights I find with Java include the hotswapping of compiled classes while debugging - man it really improves productivity! The JPDA debugger makes debugging less of a pain in servlets and EJBs, webstart makes a great alternative for deployment of swing based interfaces as an alternative to using applets.

      Granted there are still areas in Java that need improving (JDBC for example could be a bit faster but this is typically vendor based anyway) but with computer speeds increasing and hardware costs dropping again this is becoming an insignificant argument.

      You also need to remember that .NET is pretty much just an extension on other languages to improve inter-platform compatibility (ie Delphi.NET can work with C# and ASP.NET etc). It applies to multiple languages and to a degree is still bound to windows.

      So which language do you think could develop the same application faster Java or C++? I know for a fact that the last few years companies are more into getting a project completed before ironing out bugs and a project is never initially deployed bug free. If a company can have 80% of the project in 2 weeks then they will go for that and not wait for it to be 100%.

    27. Re:Java? by Anonymous Coward · · Score: 0

      it's hard to write a memory leaking application in java (i know it can be done, i have seen some "java programmers" who are experts on it, but usually it doesn't happen),


      You've never used Eclipse, have you?

    28. Re:Java? by Anonymous Coward · · Score: 0

      what about the other .009% of cases?

    29. Re:Java? by Viol8 · · Score: 1

      "They don't call the constructors and destructors"

      And for allocating a chunk of scratch memory of N bytes this matters why exactly?

    30. Re:Java? by Viol8 · · Score: 1

      "On the other hand, 'new' and 'delete' are operators, i.e. part of the language spec"

      So what?

      "because there exist no tricks that can make C safer "

      Really? So people writing their own wrapper functions to malloc and free that do extra checking are wasting their time, right?

      "In C, you have 'malloc' and 'free', and that's it"

      Well actually you have "brk" and "sbrk" at a lower level that allows you to do you're own mapping of allocated memory blocks. But you knew
      that right and you're not just a thick troll?

      "It is not. C++ is an entirely different language, partially compatible with C. (for example in C99 you can do 'array[arg1]', whereas in C++ you can not)."

      An entirely different language that stroustrup deliberately made 99,9% compatable with C. Yeah ok , I guess you have a different idea about what "entirely" means.

      As for C99 , that may well have bits C++ doesn't but don't expect them to remain outside the C++ standard for too long.

      "It's obvious who is ignorant, isn't it ? "

      Yes, thank you for playing but better luck next time sonny.

    31. Re:Java? by Anonymous Coward · · Score: 0

      Yeah, that's great. I saw a picture on the internet showing Osamma Bin Laden having sex with a camel. I suppose you think that was true as well?

    32. Re:Java? by Anonymous Coward · · Score: 0
      No, it does not. The function 'free' is part of 'stdlib.h', which is not part of the C++ standard.
      You are wrong. ISO/IEC 14822:1998 20.4.6 covers the C++ standard header . This clause states that 's "..contents are the same as the Standard C library header ..." Furthermore Table 33 "Header Synopsis" in the same clause lists free as a function. free is a part of the C++ programming language.
    33. Re:Java? by Anonymous Coward · · Score: 0
      So which language do you think could develop the same application faster Java or C++?
      Python/C++ would most likely be faster than Java. It has been in my experience.
    34. Re:Java? by Anonymous Coward · · Score: 0

      Please insert and in the appropriate spots while reading the above post.

    35. Re:Java? by swillden · · Score: 2, Insightful

      I'm not sure in your 14 years you've really done much to-the-metal coding

      On the contrary, a great deal of my experience has been on the metal, using tiny, proprietary OSes, commercial RTOSes, or even no OS at all... and nearly all of it done with C++. A couple of times I had to implement the necessary C++ run-time support myself, but it was well worth the effort.

      I can write C code, but I find it tedious, error-prone and constraining. The only time I'd choose to restrict myself to C is in the context of an existing C codebase like, for example, the Linux kernel.

      As for exceptions, RTTI and other potentially expensive C++ tools... it's a toolbox, use what you need, leave the rest. You can't truly think that intentionally depriving yourself of tools is beneficial.

      Note that I *do* think those potentially expensive tools are valuable, it just depends on the environment.

      I suspect you're an applications coder who thinks a UML design is cool.

      A UML design may or may not be cool. It depends on the design, not on the medium in which it's expressed.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    36. Re:Java? by tonejava · · Score: 1

      So you reckon you can write, lets say an email client in C++/Python quicker than you can with the Java API?

      I'm not talking about application performance but the time it takes to write the app. Aside from the fact that 50% of the app is pretty much already written for with the Javamail API and your pretty much left with just the User Interface to plug into the mail processes I would say your more likely to complete the application faster in Java.

    37. Re:Java? by master_p · · Score: 1

      "Really? So people writing their own wrapper functions to malloc and free that do extra checking are wasting their time, right?"

      Wrapping malloc and free into your own functions does not make for a safer environment. You can't forget a 'free', or your program will leak memory. On the other hand, I can use smart pointers and forget about deletion.

      So, in C, one has to do the same effort before and after wrapping malloc/free, where as in C++ there is less effort by employing one of the tricks C++ has.

      "Well actually you have "brk" and "sbrk" at a lower level that allows you to do you're own mapping of allocated memory blocks. But you knew
      that right and you're not just a thick troll?"

      So what ? how does that that makes C safer than it is ? (and how calling names can help you win an argument ?)

      "An entirely different language that stroustrup deliberately made 99,9% compatable with C. Yeah ok , I guess you have a different idea about what "entirely" means."

      If C++ is 99.9% compatible with C, does that make C 99.9% compatible with C++ ? nope. C does not have classes, templates, overloading, multiple inheritance and many other features...isn't C++ an entirely different beast than C, or not ?

      "Yes, thank you for playing but better luck next time sonny."

      Nice style...unfortunately, you are wrong in what you are saying, and that does not change with any smart quotes from your part.

    38. Re:Java? by master_p · · Score: 1

      "You're not saying accross processor architectures are you?"

      Of course not.

      "For us, this actually turns out to be important, because it is an immense waste of time and money to have to also train developers on Unix and how to compile their application on Unix (which I presume would include common concepts, shell navigation, unixish build tools like make/automake/autopackage). Granted this situation would be different if either the processor architectures or operating systems were the same between development and production, and while Linux and Mac OS X provide this possibility, there are many real world reasons (one of which would be massive initial retraining and purchasing costs) to be able to support heterogenous processor architectures and operating systems among environments."

      But you've got to have the target platform, one way or another, due to differences in things outside Java, which affects Java. At least, that's what I've seen in our company: Linux Java apps are preferrably developed on Linux, because Windows behaves differently. But it may be an exception though, so you may have a point.

      "but on the whole it is not THAT relevant"

      If users of your apps are frustrated by the delays, it is. Only for trivial apps this does not matter...in all other apps, it matters greatly.

      "qhat IS relevant to GUI is latency/responsivity"

      Hey, spending all this time looking at JDeveloper trying to update the display would have been better spent coding.

      "These issues have little relevance to non-desktop applications"

      But the main lure of Java is that is has a cross platform gui...by far the most important part of a library.

      Console apps run greatly in C++, and STL covers console apps very good. And then, there is Boost, which covers everying a console app maker needs.

      Where is the Java word processor ? any serious document longer than 20 pages (especially technical ones) already brings a Pentium IV to a halt, especially when repaginating and inserting new stuff in the middle, changing styles and reformatting etc. I don't dare imagine a word processor in Java...Sun tried it, but they miserably failed.

      What you don't get is that, on the small scale, Java slowness may not matter. But when things pile up, then the slowness is visually recognizable, you don't need benchmarks to find that out.

      "Eh? The current breed of Java VMs include profiling compilers"

      I was not talking about that kind of profiling. I was talking about having all the program as one translation unit an optimize on the large scale.

      "Um, it absolutely does work like that."

      No, it does not. Here is what I am talking about:

      http://www.microsoft.com/indonesia/msdn/profileg ui dedoptimization.asp

    39. Re:Java? by master_p · · Score: 1

      "So which language do you think could develop the same application faster Java or C++? I know for a fact that the last few years companies are more into getting a project completed before ironing out bugs and a project is never initially deployed bug free. If a company can have 80% of the project in 2 weeks then they will go for that and not wait for it to be 100%."

      Are you talking about the 2-week projects that take 2 years to complete, due to an almost infinite amount of bugs introduced in the 2-week development period, and the many design flaws that make adaptation and change almost impossible ?

      Java or C++ is irrelevant to good software engineering. In the absence of software engineering (i.e. I sit in front of an empty project and start typing), Java may have a little advantage here and there, but in the end, it does not matter.

    40. Re:Java? by Hard_Code · · Score: 1

      But you've got to have the target platform, one way or another, due to differences in things outside Java, which affects Java. At least, that's what I've seen in our company: Linux Java apps are preferrably developed on Linux, because Windows behaves differently. But it may be an exception though, so you may have a point.

      Nope. Not for us at least. While some savvy developers are starting to play around with Linux, the day to day development is all done on Windows and to a lesser extent Mac OS X. We do not develop on the target platform. If our developers had to use AIX as a development environment I think we would find a large chunk of our staff commit mass suicide (granted we are moving generally to Solaris...but still).

      If users of your apps are frustrated by the delays, it is. Only for trivial apps this does not matter...in all other apps, it matters greatly. ...

      Hey, spending all this time looking at JDeveloper trying to update the display would have been better spent coding.

      Yes. I am willing to grant latency and startup as legitimate performance issues in the Java GUI platform. Swing is OK, but it is built upon another toolkit (AWT) and the API and object hierarchy is really bloated. I'm sure a better job could be done if starting from scratch again, but that is not feasible at this point (although there are side projects like SWT which use true native peers, and are MUCH FASTER).

      But the main lure of Java is that is has a cross platform gui...by far the most important part of a library.

      Well, that is where we are approaching this differently. For me, and for most Java developers, the allure of Java is certainly NOT the GUI. I don't know of any Java developer who is completely satisfied with Swing (or at least as satisfied as I gather Qt developers are with Qt). The main allure of Java is 1) massive, well documented platform for developing middleware and web applications (server side stuff) 2) portability, both in code/object as well as human skills (in that you can apply the same general knowledge to both server-side stuff and client side stuff, which makes our developers much more productive and cross trained... we don't need a C++ gui developer and a Java server developer).

      I would not rank GUI anywhere near the main draws of Java. I have never heard anyone pick Java because of the GUI. There are other portable toolkits, notably WxWidgets (previously WxWindows) and Qt itself.

      I think you are coming into the platform from using Qt and expecting to compare another platform based on widget toolkit. The discussion started like "Qt is not a platform like Java is a platform" and moved to "well Qt is a faster platform than Java". I'm willing to admit of course Qt is faster in the GUI realm, where it matters. But for most other things (i.e. not highly latency-sensitive) I stand by my statement that Java is fast enough (disk IO, network IO, text processing, etc. etc.).

      I was not talking about that kind of profiling. I was talking about having all the program as one translation unit an optimize on the large scale.

      Well, I'm not sure how this is different from what I described. The VM is a Virtual Machine, and as such, is aware of everything about the program. The article says:

      "Generate profiles from running the executable/dll on real-world inputs, which are then used to assist the compiler in generating optimized code for the particular executable."

      The only difference is that in modern Java VMs (let's just stick to Sun's for simplicity), this is done at *runtime* automatically. Bytecode is not all that optimized, and profile-driven-optimization (if that is what you want to call it now) does not necessarily optimized at the opcode level, but at the program level. This is exactly what the "hotspot" VM does. The only difference is that it will do it *each* time the program is

      --

      It's 10 PM. Do you know if you're un-American?
    41. Re:Java? by master_p · · Score: 1

      Nope. Not for us at least. While some savvy developers are starting to play around with Linux, the day to day development is all done on Windows and to a lesser extent Mac OS X. We do not develop on the target platform. If our developers had to use AIX as a development environment I think we would find a large chunk of our staff commit mass suicide (granted we are moving generally to Solaris...but still).

      Why are you saying it ? there is nothing wrong with Linux. We use JDeveloper, and it is the same in Linux and Windows.

      The problems of deploying your code in another platform its because C++ does not define a compiler interface and an ABI. If it did, one would write the compilation scripts for one machine, then run them on another. It would be just an installation step.

      es. I am willing to grant latency and startup as legitimate performance issues in the Java GUI platform

      But it's not only that. You dare not comment the most crucial part: that of constant dynamic casting and the virtual interfaces. Don't tell me that they don't make a difference.

      The main allure of Java is 1) massive, well documented platform for developing middleware and web applications (server side stuff)

      What do you mean massive ? massive as in "have an extensive set of APIs" or massive as in "Everything is documented ?" and what kind of middleware can't be developed with C++ ? give me an example.

      2) portability, both in code/object as well as human skills (in that you can apply the same general knowledge to both server-side stuff and client side stuff, which makes our developers much more productive and cross trained... we don't need a C++ gui developer and a Java server developer).

      Boost and Qt are 100% portable from one platform to another. The arguments you say are valid for C++ also.

      I have never heard anyone pick Java because of the GUI

      On the contrary, I have. All our apps are developed on Java, mostly because of the cross-platform GUI.

      here are other portable toolkits, notably WxWidgets (previously WxWindows)

      You propably have never worked with WxWindows. Not only it sucks as a toolkit, following the same programming paradigm as MFC, but it is terribly buggy, too.

      I think you are coming into the platform from using Qt and expecting to compare another platform based on widget toolkit.

      Not at all. In our company, we first started working with Java, then with Qt. But I am not comparing apples with oranges. I am comparing the core Java APIs with Qt, not the Java platform with Qt, which is not a valid comparison.

      well Qt is a faster platform than Java

      No, C++ is faster than Java. Qt justs makes it as easy as Java. You are confused.

      I'm willing to admit of course Qt is faster in the GUI realm, where it matters.But for most other things (i.e. not highly latency-sensitive) I stand by my statement that Java is fast enough (disk IO, network IO, text processing, etc. etc.)

      It depends on what you are doing. I work in a company that does defense applications. Java apps suck. Not only they are slow as hell, but the Java model of doing things does not help at all...it makes it very easy to introduce subtle bugs, due to not having templates(for example). Maybe, from your point of view, Java is better...especially for the web. But I don't care for the web, I am talking about real apps, where complexity is very high, there is demand for speed, and the application has to have an actual design.

      And why Swing is slow ? is it because of the bloated architecture ? nope. It is because Java is slow. Just compile your Java app with Exelsior Jet and you can find a speed increase of over 20 times!!!And your Swing apps, compiled to native code, will fly!!!

      So, why our customers want Java ? because bare C++ does not cut the mustard and because of the cross-platform GUI.

      To reiterate, I don't see how what y

    42. Re:Java? by Hard_Code · · Score: 1

      Why are you saying it ? there is nothing wrong with Linux. We use JDeveloper, and it is the same in Linux and Windows.

      The problems of deploying your code in another platform its because C++ does not define a compiler interface and an ABI. If it did, one would write the compilation scripts for one machine, then run them on another. It would be just an installation step.

      I can't understand what you are saying here or how it either agrees or disagrees with what I said. It would be a huge waste of effort to try to get our developers to develop on the target platform (which currently is AIX and Solaris). Even running a compile or install script is a waste of effort if they can currently already drop in a JSP, or drop in a jar file (through webdav or sftp, etc.), and then just restart their servlet engine (again through a web interface).

      that of constant dynamic casting and the virtual interfaces. Don't tell me that they don't make a difference.

      I won't tell you they don't make a difference but I will tell you they don't make a difference that matters. Do you have benchmarks showing that it is in fact dynamic casting and virtual interfaces that is adding latency to Swing applications? I always presumed it was the depth of object hierarchy (not necessarily virtual interfaces but the amount of composition or extra logic), the probably less than optimal event/task system coupled with SLOW software painting instead of native widgets (which would presumably be backed more directly by hardware). I wonder how, for instance a more hardware-backed backend would fare, e.g. OpenGL, etc. I believe Sun demo'd this with "Looking Glass" but I have no idea how it performs.

      What do you mean massive ? massive as in "have an extensive set of APIs" or massive as in "Everything is documented ?" and what kind of middleware can't be developed with C++ ? give me an example.

      Yes. Both. A large and well-documented API. As for "what kind of middleware can't be developed with C++": if you don't already agree that Java provides a tradeoff between safety and power/performance, then there is no longer any need to continue this discussion. C++ would always be better for everything always. On the other hand, in the real world, real people use Java not because it is the fastest around but because it is simpler, more easily verifiable, cheaper, more reliable, and less prone to errors. If you don't believe this is a legitimate tradeoff then there is no point continuing - Java has no merits at all then.

      Boost and Qt are 100% portable from one platform to another. The arguments you say are valid for C++ also.

      Well, now there is the "Qt platform", maybe...but still, I see no support in the "Qt platform" for web applications and I certainly think that that is a significant "kind of middleware can't be developed with C++". So where is it, short of ASP/C#/.Net? No sane person is going to develop standard web applications in C++ when platforms like Java and .Net are around. Amazon, maybe, Ebay, maybe, due to sheer crushing load...anybody else?

      But I am not comparing apples with oranges. I am comparing the core Java APIs with Qt, not the Java platform with Qt, which is not a valid comparison.

      Whatever. Qt's widget set I will grant is nicer and faster than the widget set provided by the Java platform (Swing). Other than that I don't see performance as an issue in the rest of any of the libraries.

      No, C++ is faster than Java. Qt justs makes it as easy as Java. You are confused.

      Um. Duh. Qt is in C++ no? And therefore by deduction we find that the "Qt platform" is faster than a "Java platform".

      Not only they are slow as hell, but the Java model of doing things does not help at all...it makes it very easy to introduce subtle bugs, d

      --

      It's 10 PM. Do you know if you're un-American?
  12. Happy Developers == Happy Users by Derleth · · Score: 5, Insightful

    This should be obvious.

    If the new Qt toolkit gives developers things to drool over, they'll develop more software. If they develop more software using droolworthy tools, there's a good chance some of that software will be droolworthy in and of itself.

    A good API isn't the be-all and end-all of software design. But giving developers things to feel excited over is important, especially in the open-source world.

    --
    How can you use my intestines as a gift? -Actual Hong Kong subtitle.
    1. Re:Happy Developers == Happy Users by Anonymous Coward · · Score: 0

      How did it go again? Ah yes:

      DEVELOPERS, DEVELOPERS, DEVELOPER!!!

      (lameness filter, yadda yadda yadda)

    2. Re:Happy Developers == Happy Users by Anonymous Coward · · Score: 0

      Come on, do the psycho-monkey shareholder-value dance!

  13. Re:The Future of Linux by Anonymous Coward · · Score: 5, Funny

    Dude, you can't hope to get a job if your only skill is technical trolling. There is no such thing as a company called Trolltech... oh wait.

  14. Re:So by mabinogi · · Score: 3, Insightful

    exactly - so?

    It's a C++ development toolkit - the users of this software are by definition developers.
    Also, the article is posted in the "Developers" section of slashdot, it was never intended to interest you. If it bothers you so much, turn off the Developers section in your preferences.

    --
    Advanced users are users too!
  15. LGPL by Anonymous Coward · · Score: 1

    What if someone bought Trolltech and got prior permission to LGPL the lot. THAT would worry Microsoft, and their pesky little C++ scam as of the weekend to be a trifle.

  16. Qt is almost a like a language by infiniti99 · · Score: 5, Informative

    In the Linux world, Qt is often thought of as just a GUI toolkit. After all, there is no look-and-feel standard in the X11 environment, and by default Qt and Gtk look much different. Therefore, most look-and-feel decisions on the X11 platform amount to selecting between the toolkits. Consider PyQt, which provides GUI support to python via Qt, but nothing more.

    What people don't realize is that Qt is actually a massive foundational library, similar in nature to Java's, for C++. It is a very large API, with threading, network, XML, objects, container classes, string handling, unicode, etc. The 'moc' tool even brings extra features to C++ that normally don't exist. It's almost as if Qt/C++ is a language of its own. GUI is a very small portion of Qt. In fact, of all the Qt code I've ever written, most of it has nothing to do with the GUI. Qt makes C++ actually fun.

    I'm very much looking forward to Qt 4. With the plans for advanced threading support and GUI/non-GUI split (similar to how glib and gtk are separated), I can see Qt being very useful for writing cross-platform server applications, a market mostly ruled by Java. The great thing about Qt is that it gives us natively compiled code.

    1. Re:Qt is almost a like a language by dcuny · · Score: 5, Informative
      What people don't realize is that Qt is actually a massive foundational library...

      Yes, a lot like wxWidgets.

    2. Re:Qt is almost a like a language by osewa77 · · Score: 4, Interesting

      For server-side programming, they'll need their own sort of Servlet API _or_ at least something that connects to Apache (see mod_cpp). There are conceivable ways to implement memory protection for such C++ Servlets, e.g. running each separate Servlet as it's own multithreaded application (another name for SpeedyCGI?)

    3. Re:Qt is almost a like a language by HuguesT · · Score: 3, Interesting

      Honest question, not flame.

      I read a comment in Doctor Dobbs' Journal more than a year ago to the effect that Qt doesn't teach good C++ practices because most, but not all, objects are managed by the toolkit, in such a way that they must be allocated but never released. People do lots of new() but never any delete().

      Is that true?

    4. Re:Qt is almost a like a language by k-zed · · Score: 0

      The 'moc' tool even brings extra features to C++ that normally don't exist.

      This of course also means total unportability.

      --
      we discovered a new way to think.
    5. Re:Qt is almost a like a language by vivek7006 · · Score: 4, Informative

      You are right. QT is more than just a GUI. QT XML Module provides a very neat XML solution (both DOM and SAX), but unfortunately their implementation is really slow

    6. Re:Qt is almost a like a language by AJWM · · Score: 3, Insightful

      The 'moc' tool even brings extra features to C++ that normally don't exist.

      This of course also means total unportability.


      Shrug.

      Once a body of application code is married to a GUI toolkit or class library, it's pretty tough to port it to anything else (different toolkit or classlib) anyway. A few extra keywords like slots, signals and the new foreach don't make that much difference, they're just syntactic sugar (but oh so sweet) for stuff that can be implemented in other ways.

      --
      -- Alastair
    7. Re:Qt is almost a like a language by Yokaze · · Score: 4, Informative

      Only objects derived from QObject and added as a child to another QObject are deleteted automatically on destruction of the parent. (See QObject)

      This means that one doesn't have to delete all widgets which are added to a parent widgets by hand, but that it happens through the ownership-tree when deleteing the parent widget.

      I don't feel qualified to play judge between DDJ and Trolltech on wether that is good or bad C++ practice.

      --
      "Between strong and weak, between rich and poor [...], it is freedom which oppresses and the law which sets free"
    8. Re:Qt is almost a like a language by joib · · Score: 2, Insightful

      I haven't used qt any more than for some simple Hello world, stuff, but IMHO that argument is quite poor. Qt sucks because it makes life easier? Umm, why not do your GUI programming in asm while you're at it, if you like pain?

      The same argument could of course equally poorly be made against smart pointers. Why use a smart pointer when you could do manual memory management with new and delete? Oh, what heresy!

      PS. new and delete are operators, not functions. There is no such thing as new() and delete().

    9. Re:Qt is almost a like a language by Anonymous Coward · · Score: 0

      Of course, Havoc was being politic in his message... he knows very well that KDE advocates skulking around freedesktop.org wait for any reason to attack (they cause enough trouble as it is) -- hence the "moc is not a prepocessor, it is a metadata extractor." It is pure sophistry.

      Moc is a preprocessor used to bandage up the lack of any use of type safety in TrollTech's shitty non-standard implementation of signals. See GTKMM, the C++ bindings for GTK for the right way to do it.

      The idiotic zealot comment that "GTK is also thinking of using a preprocessor" is truly a pathetic attempt to excuse bad coding in Qt." First, extracting metadata for bindings is one thing (but that's not what moc exists for)...writing a preprocessor to fill in for FEATURES THAT ALREADY EXIST IN THE LANGUAGE is stupid. This is what moc does. Second, GOBject creation preprocessors ALREADY exist (see GOB). Third, the GOBJECT discussion is in regard to providing metadata to allow other languages even easier access to the GTK system... Qt almost *forces* the use of C++. The two areas are completely separate.

    10. Re:Qt is almost a like a language by Seli · · Score: 3, Insightful

      Let's try it once again for for those who are a bit slow:
      - moc is not a preprocessor (funny that this slashdot story says so right next to the link where Havoc says it's not)
      - moc fills in features that are not already in the language; how exactly does gtkmm do dynamic introspection (properties, finding out which signals/slots are available at runtime, etc.) in the "right way" ?
      - just like most of the Qt bashers, you're a moron talking about something you have no clue about

    11. Re:Qt is almost a like a language by julesh · · Score: 4, Interesting

      You could argue that COM teaches bad practice because you never explicitly deallocate a COM object. You just call unlock() on it.

      Perhaps using a garbage collector is bad practice, too. We should probably therefore stay away from any project like Boehm GC that provides garbage collection in C and C++.

      Or maybe automatic ways of managing object destruction are useful tools that make programming easier... I wonder which?

    12. Re:Qt is almost a like a language by Anonymous Coward · · Score: 0

      Let's recap for those who insist on missing the point: moc is a preprocessor in every sense of the word. I realise the word "preprocessor" isn't something that Qt shills like to be reminded of, it exposes what a mess most of Qt really is, and they would prefer to use more technical lingo to cover it up... but moc is a preprocessor. It was and is used to cover up the fact that Qt is crufty and doesn't use the standard features available in C++, instead it uses it's own crappy methods. Just because TrollTech also shoehorned in a bit of metadata doesn't change that.

      GET OVER IT.

    13. Re:Qt is almost a like a language by mattyrobinson69 · · Score: 1

      whoever wrote that sounds like someone who thinks anybody who writes in a higher language than machine code is a heretic

    14. Re:Qt is almost a like a language by StormReaver · · Score: 2, Informative

      "I don't feel qualified to play judge between DDJ and Trolltech on wether that is good or bad C++ practice."

      Like all language features, whether Qt's automatic object deletion is good or bad depends entirely on the programmer taking advantage of the feature (or failing to take advantage of it).

      I think it's a great feature. It proves its usefulness each time I create a non-trivial user interface.

      I use QPtrList (the class which does the behind-the-scenes auto-deletion) extensively in my non-GUI classes just so I can take advantage of auto-deletion. When the class goes out of scope, all its children objects are automatically destroyed.

      It's the concept of a destructor extended to be even more useful.

    15. Re:Qt is almost a like a language by AlXtreme · · Score: 0, Offtopic
      What people don't realize is that Qt is actually a massive foundational library...

      Yes, a lot like wxWidgets.

      threading, network, XML, objects, container classes, string handling, unicode...

      Wow, they just described glib2+libxml2! Doesn't it surprise anyone that we'd rather reinvent the wheel than reuse someone elses code? Opensource innovation at it's best!

      Yeah, I've got the karma, bring on those blowtorches...

      --
      This sig is intentionally left blank
    16. Re:Qt is almost a like a language by HuguesT · · Score: 1
      Unfortunately I don't have access to the original article anymore. I seem to remember that the point was that sure it simplifies things a great deal in the context of the QT object, but that later the same developers are likely to forget to delete what they've allocated in a different context.

      From memory the author advocates a syntax that makes it clear that the pointer is managed (à la smart pointer) or to provide a method that clearly deletes something (as in widget.deleteAllChildren() maybe?).

      And yes new() and delete() do exist, sorry.

      Like everything in C++, operator new is implemented as a series of methods, in ISO C++ it is defined in the header
      <new>
      and has a series of prototypes, e.g:
      void * operator new(size_t) throw(bad_alloc);
      See Stroustrup, 3rd Ed., p 576.

    17. Re:Qt is almost a like a language by Paul+Rose · · Score: 1

      I recall that article. I don't remember the date, but it was Al Steven's "C programming" column. I'm a big fan of Al Steven's writings, but even though I had never heard of Qt at the time I thought he was overreacting. Years later, now that I've actually used Qt, I can see that the techinique is well documented, useful and even goof-proof. Yes the parent will take over the component that you create, but if you explicitly delete the subcomponent yourself the framework "does the right thing" and removes it from the parent for you -- very nice.

    18. Re:Qt is almost a like a language by IIEFreeMan · · Score: 1

      >>> moc is a preprocessor

      >> moc is not a preprocessor

      > moc is a preprocessor

      What about 'moc is a metadata extractor implemented as a preprocessor'.
      Everybody is happy this way :)

    19. Re:Qt is almost a like a language by Diclophis · · Score: 1

      Except Qt's documents look like this:

      http://doc.trolltech.com/3.3/index.html

      a little more inviting that glibs site... just the presence of words like GPtrArray,GByteArray is going scare away any n00bs, where QT is warm and fuzzy.

    20. Re:Qt is almost a like a language by Seli · · Score: 1

      There might be something wrong with my definition of "preprocessor", but AFAIK preprocessor is a tool which transforms its source to another form, which is further processed, and the original form (source) is no longer used.

      E.g. with C++ compilation, the .cpp is preprocessed by the C/C++ preprocessor, which results in the .ii file, which is futher compiled by the actual C++ compiler (this is usually handled by g++ as one step, so the .ii is not visible to the developer unless the steps are explicitly done separately). The source .cpp file is not used for the actual compiling, and in fact even cannot be compiled by the actual C++ compiler (just try to rename a .cpp file to .ii and compile it).

      In this sense of the word "preprocessor", moc is not a preprocessor. All .h files passed to moc can be normally compiled (#included in .cpp files indeed) using g++ just like other non-Qt .h files. All moc does is it analyzes the .h file, and creates additional C++ code (which would have to be written manually otherwise), and this additional C++ code is used for the before-mentioned features which are not available directly in the C++ language.

      But maybe it's just that there's really something wrong with my definition...

      Also, while I'm at it, http://doc.trolltech.com/3.3/templates.html calls moc a precompiler, and explains some reasons for moc's existence even today, when templates finally have a decent support in available C++ compilers.

    21. Re:Qt is almost a like a language by Anonymous Coward · · Score: 0

      You realise that Qt and WxWindows predate GTK+ and GLib, don't you?

      The GNOME people seem to have quite a case of the NIH syndrome, if you ask me.

    22. Re:Qt is almost a like a language by joib · · Score: 1

      And yes new() and delete() do exist, sorry.

      I stand by my claim: new() and delete() don't exist in standard C++.

      Yes, of course new and delete can be overloaded, just like other OPERATORS. And yes, overloading happens to be done with methods having a special signature, in the case of new the method name happens to be "operatornew". Because the "operator" word is reserved in C++, you often see the new operator overloaded as

      void* operator new(std::size_t) throw (std::bad_alloc);

      to improve readability. Unfortunately, this might also confuse people to believe that the method is actually called "new".

    23. Re:Qt is almost a like a language by IIEFreeMan · · Score: 1

      Mmmm i think some .h files passed to moc actually can't be compiled by a normal compiler. the latter might choke on signal,slot and foreach (strange in a .h but who knows)

      To be literal, a preprocessor is just a dumb compiler whose output is a subset of its input. I think moc fall in this category quite well :)

    24. Re:Qt is almost a like a language by Anonymous Coward · · Score: 0

      Ya know, it would be nice if the C++ standards people would add language features that would make things like moc unnecessary. Hell, they throw every thing else into the language!

    25. Re:Qt is almost a like a language by Anonymous Coward · · Score: 0

      Hey idiot... you get modded up for describing anyone criticising Qt as a moron, while being proved wrong repeatedly.

      Go back and read it, then come back and tell me what stupid and arrogant really is. I'll give you a clue: It's KDE/Qt zealots on slashdot.

    26. Re:Qt is almost a like a language by Qwavel · · Score: 1

      Yes, it is it's own language - a proprietary fork of C++.

      What would /. be saying if MS did this?

      This is not just a political issue, this is a real practical issue. It splits the C++ community and deprives us of a great library. With the end of active development of MFC, Qt could have become the standard C++ library (built on top of the STL).

      But the way things are going, I can't even share a snippet of code with a Qt C++ developer.

      I don't doubt that what TT is doing makes sense financially, and that Qt is an excellent library/language/toolset, but it is bad for Linux and bad for C++.

    27. Re:Qt is almost a like a language by Seli · · Score: 1

      No, .h files using Qt are normal .h files, and can be normally compiled (after being included in .cpp files and preprocessed by the C++ preprocessor, of course, just like all .h files). "signals", "slots", "foreach" etc. are just #define's, there's nothing special about them from this point of view.

      BTW, moc is not a preprocessor when using your definition either :), at least I don't think the moc output can be considered a subset of the .h file. That'd be like claiming doxygen is a preprocessor.

      Not that this playing with words matters actually. What matters is that people using Qt are quite happy with it and don't think there's anything seriously wrong with it (well, everything has its disadvantages indeed, but Qt without moc would be a noticeably worse toolkit).

    28. Re:Qt is almost a like a language by spectecjr · · Score: 1

      You could argue that COM teaches bad practice because you never explicitly deallocate a COM object. You just call unlock() on it.


      You meant "Release()".

      --
      Coming soon - pyrogyra
    29. Re:Qt is almost a like a language by Anonymous Coward · · Score: 0

      Actually I do think garbage collection is bad. It encourages sloppy, careless programming.

    30. Re:Qt is almost a like a language by jhunsake · · Score: 1

      "signals", "slots", "foreach" etc. are just #define's

      That is totally (and obviously) incorrect.

    31. Re:Qt is almost a like a language by Seli · · Score: 1

      > "signals", "slots", "foreach" etc. are just #define's, there's nothing special about them from this point of view.

      ("this point of view" being talking about how Qt .h files can be normally compiled).

      $ cat qobjectdefs.h | grep -e slots -e signals
      #define slots slots
      #define signals signals
      #define slots // slots: in class
      #define signals protected // signals: in class

      The second pair gets used when normally compiling.

    32. Re:Qt is almost a like a language by Anonymous Coward · · Score: 0

      Good point! Why do the GTK/glib folks insist on reimplementing Qt, poorly? Let's not even mention their doomed-from-the-start (and now-defunct) Harmony project.

    33. Re:Qt is almost a like a language by Tukla · · Score: 1

      I disagree. After all, they frequently "adopt" preexisting software like GIMP, Abiword, Open Office, and Mozilla, and call them "Gnome" applications.

    34. Re:Qt is almost a like a language by stilborne · · Score: 1

      > he knows very well that KDE advocates skulking
      > around freedesktop.org wait for any reason to
      > attack

      oh? has Havoc said this to you? i'd be interested in an attributable quote, since it's complete BS. of course, i doubt Havoc said or even thinks such a thing. i have a lot more respect for him than to think that. i'm not sure why you feel the need to try and drive a wedge between people on FD.o, but perhaps if you posted as yourself as opposed to an AC we would have a better idea as to your agenda and slant on things.

      seriously, KDE supports FD.o and works hard with others there. this includes the non-KDE ppl involved, without whom FD.o wouldn't be the useful thing that it is.

      > shitty non-standard implementation of signals

      interesting definition of standard, since Qt was pretty much the first toolkit to introduce the concept of signals and slots. ;) i know what you are trying to say, however: they added new tools to the language as opposed to using things like the STL. there were and are good reasons for this, which others have hinted at and you evidently are either unaware of or simply don't grasp. while you may not agree with how Trolltech decided to approach the problem, millions of lines of code and tens of thousands of happy developers think otherwise. it works and works well, which is to say that it's extensible and clean. for the pragmatically minded, that's primarily what matters.

    35. Re:Qt is almost a like a language by jhunsake · · Score: 1

      You really don't have a clue. Look at what you just posted.

    36. Re:Qt is almost a like a language by fault0 · · Score: 1

      heh.. considering that Seli (aka, Lubos Lunak) is probably the most knowledgeble person about Qt outside of Trolltech, I'm pretty sure he does "have a clue"

    37. Re:Qt is almost a like a language by jhunsake · · Score: 1

      You don't know what the fuck you're talking about.

    38. Re:Qt is almost a like a language by Anonymous Coward · · Score: 0

      heh.. considering that Seli (aka, Lubos Lunak) is probably the most knowledgeble person about Qt outside of Trolltech, I'm pretty sure he does "have a clue"

      Now *that* bit of information is actually quite frightening. The guy is a tard who invents his own definitions of preprocessor to support his own warped view... and you describe him as the most knowledgable person outside TrollTech. Fuck me... no wonder KDE/Qt is such a mess.

    39. Re:Qt is almost a like a language by Anonymous Coward · · Score: 0

      oh? has Havoc said this to you?

      Seen it in practise. I've seen it on a few lists in fact. Wherever KDE people congregate, their ridiculous sensitivity and unprofessional behaviour almost always ends in them flaming like mad. And they don't even have the decency to just blow off steam anonymously on slashdot, they do it directly... and incite all their zealot mates to do the same.

      seriously, KDE supports FD.o and works hard with others there. this includes the non-KDE ppl involved, without whom FD.o wouldn't be the useful thing that it is.

      Seriously, if you took away all the KDE contributions to fdo, you'd have a calmer, more professional list and lose little in the way of technical competence. You'd also raise the average IQ by 50 points.

    40. Re:Qt is almost a like a language by arkanes · · Score: 1

      Well, any C++ (or C, for that matter, or any other language where you need to do explicit memory managment) will come up with similiar auto-deleting data structures very quickly. The design of C++ is such that writing them is very easy - this sort of paradigm is fundamental in C++ and it's one of the reason it's "better" than C - it's easier to write safer code. So it's actually very good C++ practice. However, someone who is just learning C++ should learn how to do it themselves, even if they've got a toolkit that does it for them. I can't help but think that you're misremembring the DDJ article/comment.

    41. Re:Qt is almost a like a language by spitzak · · Score: 1

      This is an extremely common design.

      If the caller is responsible for deleting objects, the caller must also maintain a pointer to all those objects so it can delete them. This is a huge waste of time and space if in fact the toolkit itself has to keep track of such pointers anyways. And if the code for deleting a window can assumme that all widgets inside that window are deleted as well it can vastly simplify the code.

      The fact that there is no way to create an arbitrary subclass other than "new" in C++ might be a defect, I suppose some interface that does not let you get at the pointer at all (so you are not tempted to delete it) may be a good idea for a new language.

    42. Re:Qt is almost a like a language by HuguesT · · Score: 1

      This is getting slightly pedantic. You mean that one should write either 'new' or 'operator new()'. Fine, I concede defeat on that point.

  17. Out of Context by Anonymous Coward · · Score: 0
    ..."positioning Qt 4 directly against Java"?

    It would make more sense to position Qt4 against WMV9, but I digress. (too much Apple news today)

  18. Re:So by MasTRE · · Score: 0, Offtopic

    > While you may not realise the benefits straight away, software being easier to develop means more, higher quality apps for everybody.

    Or higher quality crap, as we vegetarians like to call it.

    Smile. Save a kitty!

    --
    Must-not-watch TV!
  19. If We Use a Simple Syllogism... by tealover · · Score: 5, Funny

    a. More controversial is the introduction of a new and elegant foreach construct.

    b. VB has a foreach construct.

    c. Therefore, VB is elegant ?

    --
    -- You see, there would be these conclusions that you could jump to
    1. Re:If We Use a Simple Syllogism... by Anonymous Coward · · Score: 0

      By "simple" you mean "fallacious," right?

    2. Re:If We Use a Simple Syllogism... by Anonymous Coward · · Score: 0

      a. Ladas come with a cheap cup holder

      b. Rolls Royces also comes with a cheap cup holder

      c. Therefore, Rolls Royces are cheap ?

    3. Re:If We Use a Simple Syllogism... by Anonymous Coward · · Score: 0

      Er, I think it's more like: by "syllogism" you mean "fallacious".

    4. Re:If We Use a Simple Syllogism... by bigbaloney · · Score: 0

      Well, if "elegant" equals "easy to read and write", then yes, VB is elegant.

      And no, I am not a Microsoft hugger, I spend most of my day inside Perl's foreach loop. :-)

    5. Re:If We Use a Simple Syllogism... by Anonymous Coward · · Score: 0
      if "elegant" equals "easy to read and write", then yes, VB is elegant.

      I find VB pretty difficult to read. Of course, that might be something to do with not being able to open my eyes or stop screaming whenever I'm required to work with it.

      Frankly, any language that requires a special foreach construct is fundamentally broken anyway. Why bother wasting hours writing macros or templates to let you write
      foreach (s, someList)
      doStuffWith (s);
      when a well-designed language lets you just write
      let rec loop = function
      | [] -> ()
      | x::xs -> doStuffWith x; loop xs
      in loop someList
      (Of course, the said well-designed language naturally provides a library function as a shortcut -
      List.iter doStuffWith someList
      - but that doesn't show how simple the code behind the function is. I'm willing to bet the implementation of Qt's new foreach loop is more than three lines of code!)
    6. Re:If We Use a Simple Syllogism... by Idaho · · Score: 4, Funny


      a. More controversial is the introduction of a new and elegant foreach construct.
      b. VB has a foreach construct.
      c. Therefore, VB is elegant ?


      Yeah, and using the same type of logic:

      a. Human beings have hair
      b. Cats have hair
      c. Therefore, cats are human beings.

      See, I knew it! Your cat owns you, and not the other way round! (or is that only the case in Soviet Russia?)

      --
      Every expression is true, for a given value of 'true'
    7. Re:If We Use a Simple Syllogism... by Anonymous Coward · · Score: 0

      "I spend most of my day inside Perl's foreach loop."

      You should get out more.

    8. Re:If We Use a Simple Syllogism... by bigbaloney · · Score: 0

      I do like to pop down to the pub and slurp some beer, so I consider myself perfectly normal. :-)

    9. Re:If We Use a Simple Syllogism... by parksie · · Score: 1

      Everyone with a cat knows that you are really the cat's pet/slave ;)

    10. Re:If We Use a Simple Syllogism... by Hard_Code · · Score: 1

      Sadly anybody who has a cat and a computer already knows who owns who.

      --

      It's 10 PM. Do you know if you're un-American?
  20. Qt interface to Parrot? by tree_frog · · Score: 5, Interesting

    A Qt widget set target against the Parrot virtual machine would be lovely.

    Just think. .Net has well, all that Windows stuff (I'm not a big windows graphics programmer)
    Java has Swing / Eclipse and the old one whose name I can't remember but I did use it a lot but its 7:30am and the coffee hasn't hit me yet.
    A Parrot/Qt set would give Perl, Python, Ruby etc a nice graphics toolkit targettable against multiple platforms. Yes I know about Tk/Tcl and WxWindows.

    Uurgh. Must get coffee. And train

    regards, treefrog

    1. Re:Qt interface to Parrot? by PedanticSpellingTrol · · Score: 1
      *cough* GTK *cough*

      I'm just saying you left it out, not trying to start the holy war. In keeping with that goal, I'll offend both sides in one of the other well known battles and openly tell the world... I prefer nano

    2. Re:Qt interface to Parrot? by adler187 · · Score: 1

      Well there is PyQT.

      There is also many bindings for KDE, including Ruby (I have no idea about Perl though). It's still cross platform (well any Posix compliant computer with an X server and KDE installed, Mac OS X/Darwin, Linux, BSD, Unix, Cygwin).

    3. Re:Qt interface to Parrot? by AJWM · · Score: 1

      No reason why not. There are already Perl and Python bindings for Qt (PerlQt and PyQt), as well as Ruby and Java bindings. Dropping it down to the Parrot level does make some sense (use a subclassed PyQt object from Perl, say?)

      --
      -- Alastair
    4. Re:Qt interface to Parrot? by sumengen · · Score: 1

      QT can't be the part of parrot because of the C++ compiler requirement (To be able to run on 100 different platforms, only a C compiler (and perl 5) is required to compile parrot), but an external QT module would be very useful.

    5. Re:Qt interface to Parrot? by Anonymous Coward · · Score: 0

      Pretty good too.

      Maybe GTK programming with C is really the hell Qt advocates make it out to be (though I really doubt it), but PyGTK is _very_ nice to write software with.

    6. Re:Qt interface to Parrot? by Anonymous Coward · · Score: 0

      A Qt widget set target against the Parrot virtual machine would be lovely.

      It would be even lovelier if Parrot were anything other than vaporware. Let's get the virtual machine running something more advanced than BASIC before we start worrying about GUIs.

    7. Re:Qt interface to Parrot? by tree_frog · · Score: 1

      Do you not think that now is exasctly the right time to start worrying about a gGUI. If Parrot is running basic, then the guts of a VM is obviously there. SO maybe now is the right time to think about low-level bindings to GUIs, etc. After all, the efforts are already strted to put Perl, Python and Ruby onto Parrot, so why not a good common interface to Qt4.

      You can probably tell that I am more awake than I was when I wrote my original comment :-)

      regards,
      Treefrog

    8. Re:Qt interface to Parrot? by Anonymous Coward · · Score: 0

      Parrot's unicode library is written in C++. Take a look for yourself.

    9. Re:Qt interface to Parrot? by sumengen · · Score: 1

      And as far as I know there is heavy discussion about who is going to maintain the C version of ICU library.

  21. Re:So by Anonymous Coward · · Score: 1, Funny

    Or higher quality crap, as we vegetarians like to call it.

    shouldn't that be Krap?

  22. 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!
  23. Yeah, BUT.... by SerpentMage · · Score: 4, Insightful

    Sounds interesting, BUT.... The problem QT are as follows:

    1) No GPL version for the Windows platform. As much as people in the Open Source community might hate MS, many (most) Open Source packages are cross-platform where Windows is a platform.

    2) A non GPL version of the library costs an outrageous sum of money. Sure Trolltech wants to make money, but lower the costs a bit.

    3) Why compete against Java? Somebody who uses Java is not going to switch to Qt as Java is still simpler. To me C++ != Java, and I am not saying one is better or worse than the other.

    Frankly, I tend to prefer wxWindows, which has many of facilities mentioned in the parent post. And there are plenty of bindings for wxWindows (Python, Java, .NET, etc)

    --

    "You can't make a race horse of a pig"
    "No," said Samuel, "but you can make very fast pig"
    1. Re:Yeah, BUT.... by infiniti99 · · Score: 4, Insightful

      1) No GPL version for the Windows platform. As much as people in the Open Source community might hate MS, many (most) Open Source packages are cross-platform where Windows is a platform.

      A port of the GPL'd Qt/X11 to Windows can be found here. Remember, there was a time when Gtk didn't run anywhere but X11 either, yet hobbyists managed to port it. Qt is arguably much easier to port, as it was designed this way, and Trolltech has already proven it with their own proprietary version.

      2) A non GPL version of the library costs an outrageous sum of money. Sure Trolltech wants to make money, but lower the costs a bit.

      Honestly, I'm not sure how Trolltech can afford to pay all of their programmers a decent wage by simply selling a developer tool (which by definition is a bit of a niche market), even at such a high price. They must sell a heap of licenses... I'm no business major, but I think that Qt has to be expensive if we want Trolltech in business (and we do, Linux on the desktop wouldn't be where it is today without 'em).

      3) Why compete against Java? Somebody who uses Java is not going to switch to Qt as Java is still simpler. To me C++ != Java, and I am not saying one is better or worse than the other.

      Ahh, but maybe Qt can keep a C++ user from switching to Java? I learned Qt before I learned Java, and during my study of the latter I kept thinking how much it was like Qt. At this stage, if something cool is possible in Java, I'd like to see it also possible in Qt/C++ (assuming such a feature would make sense in that context).

    2. Re:Yeah, BUT.... by StormReaver · · Score: 1

      "A port of the GPL'd Qt/X11 to Windows can be found here."

      Thanks for the link. I had no idea such a port was so far along. As a former Qt licensee (my workplace bought the license, but can't justify the cost of continuing to do so) who writes only in-house software, this is incredibly good news.

    3. Re:Yeah, BUT.... by StormReaver · · Score: 3, Interesting

      "Somebody who uses Java is not going to switch to Qt as Java is still simpler."

      I wrote Java GUI applications for a few years before having been exposed to C++ (much less Qt). I learned C++ solely so I could use GTK--.

      A year later, I found Qt and found myself using it more than I used Java (I had since become disillusioned with GTK--).

      Today, I only write Java code if I would otherwise be stuck writing VB. In all other cases, I write C++ with Qt.

    4. Re:Yeah, BUT.... by fault0 · · Score: 1

      As a former tinkerer in that port, I'll have to say that it is about 80% of Qt is ported, but that other missing 20% creates problems with many real life apps. The other problem is that there aren't any active developers for a few months. So if you any Qt and/or win32 experience, and have never looked at Qt/Win's source code, sign up!

    5. Re:Yeah, BUT.... by ndogg · · Score: 1
      --
      // file: mice.h
      #include "frickin_lasers.h"
  24. New and Elegant "foreach" ? by PissingInTheWind · · Score: 5, Insightful

    Wow, a new syntactic construct. Stop the press.

    Seriously, such rejoicing about new language features fills me with pity at the thought of those poor programmers stuck with whatever language constructs the "higher autorities" deems them worthy to have.

    Lisp has supported extending the language for about 40 years. And people still get excited when they get a new syntactic construct for C++. That is sad.

    If you want to find joy and productivity in programming, use Scheme, Common Lisp or some other programmable programming language. Free your mind.

    --

    A message from the system administrator: 'I've upped my priority. Now up yours.'
    1. Re:New and Elegant "foreach" ? by Anonymous Coward · · Score: 2, Funny

      As a Lisp advocate, your name is entirely appropriate.

    2. Re:New and Elegant "foreach" ? by jbrandon · · Score: 3, Insightful
      If you want to find joy and productivity in programming, use Scheme, Common Lisp . . .

      I would, but runtime type errors keep me up at night.

      . . . or some other programmable programming language.

      I'm still looking for one with static types.

    3. Re:New and Elegant "foreach" ? by Anonymous Coward · · Score: 0

      You lisp weenies sure are funny.

    4. Re:New and Elegant "foreach" ? by Anonymous Coward · · Score: 1, Insightful

      Truly it is horrible that end-user software is still being written in C and C++. These languages have their place, but it boggles the mind that people who are writing GUI applications are forced to deal with these languages' explicit memory management, broken type systems, and horrible horrible problems introduced by pointers.

      You know your language sucks when writing a simple list class is an error prone activity for new programmers.

      It is high time for the programmers of the world to sit down and create some clean, secure, applicative language with a well defined semantics for this class of programs.

    5. Re:New and Elegant "foreach" ? by Anonymous Coward · · Score: 0

      Shouldn't it have been 'PithingInTheWind'?

    6. Re:New and Elegant "foreach" ? by rmstar · · Score: 1
      >If you want to find joy and productivity in programming, use Scheme, Common Lisp . . .

      I would, but runtime type errors keep me up at night.

      Of course, there are no runtime errors in C++ programs. They are called features.

      I'm still looking for one with static types.

      Flexibility and static typing do not like each other. And static typing only gives you the illusion that it is avoiding errors.

    7. Re:New and Elegant "foreach" ? by zhenlin · · Score: 1

      Perhaps this is because, Lisp, unlike so many other languages, has only one (effectively, anyway) syntactic construct, the list?

      Since the distinction between built-in and non-built-in functions does not exist, 'extension' of the language is trivial. (I use 'extension' a bit liberally here.)

    8. Re:New and Elegant "foreach" ? by mmusson · · Score: 1

      I'm still looking for one with static types. Look at Haskell.

      --
      SYS 49152
    9. Re:New and Elegant "foreach" ? by be-fan · · Score: 1

      Well, sexpr's make Lisp macros nearly omnipotent, so you're right in a way. But, most of what is usually done by Lisp macros is doable in an infix language too. Check out Dylan's macro support, which is powerful enough that much of the language's syntax is defined by macros. Eg: 'for' is a macro that defines a local tail-recursive function, which the compiler (in its optimization pass), turns back into a machine-language loop.

      --
      A deep unwavering belief is a sure sign you're missing something...
    10. Re:New and Elegant "foreach" ? by be-fan · · Score: 1

      Heh. If 'foreach' botherse you, wait till you check out Xen. Its an attempt to hard-code XML and SQL syntax helpers into C#. It is as bad as it sounds...

      --
      A deep unwavering belief is a sure sign you're missing something...
    11. Re:New and Elegant "foreach" ? by Anonymous Coward · · Score: 0

      If you want to find joy and productivity in programming, use Scheme, Common Lisp or some other programmable programming language. Free your mind.

      Interestingly enough, I've never been paid to use Scheme, Common Lisp or any such language... Yet I get paid an excellent amount of money to use such "horrible" languages as C++ and Java.

      So maybe if I was programming for the pure pleasure of it I would use them... but actually come to think of it, no, that's when I use Python.. =P

    12. Re:New and Elegant "foreach" ? by cpghost · · Score: 1

      Lisp has supported extending the language for about 40 years.

      Wondering how Lisp or Scheme Qt bindings would look like...

      --
      cpghost at Cordula's Web.
  25. foreach by Bingo+Foo · · Score: 5, Insightful
    If you use a c++ compiler with "typeof" (g++ has this) and STL containers, you can do this handy trick:
    #define EACH( I , C ) typeof((C).begin()) (I) = (C).begin();\
    (I) != (C).end(); ++(I)
    that allows:
    std::vector<MyBigClass> v = ...

    for ( EACH( i, v ) ) {
    ... do something with i ...
    }
    which is very readable and maintainable. My guess is that Qt's foreach is something similar:
    #define foreach( I , C ) for ( typeof((C).begin()) (I) = (C).begin();\
    (I) != (C).end(); ++(I) )

    foreach( i, v ) {
    ... do something with i ...
    }
    The problem is that this is too much of a departure from C++ syntax (foiling editor syntax highlighting), and the macro hides too much of the actual loop construct.

    --
    taken! (by Davidleeroth) Thanks Bingo Foo!
    1. Re:foreach by nickname_unique · · Score: 1

      IIRC I _learned_ in a OO programming course that the usage of dynamic type information (like typeof()) isn't recommended. But I can't remember the exact reasons ... just the obvious one that the compiler isn't able to check the correct usage of dynamic type infos.

    2. Re:foreach by Bingo+Foo · · Score: 1

      IIRC, the g++ "typeof" extension is evaluated at compile-time. I think it's not at all related to RTTI, which may be what you are thinking of. RTTI is a performance drag, and is "considered harmful" by some.

      --
      taken! (by Davidleeroth) Thanks Bingo Foo!
    3. Re:foreach by Anonymous Coward · · Score: 0

      Well I was taught that I shouldn't use switch/case at all since it would be confusing...

    4. Re:foreach by nickname_unique · · Score: 1

      oh ... looks like you're rigth. I thought typeof() is working like the java instanceof() nevermind

    5. Re:foreach by skraps · · Score: 1

      This has been in the STL for quite some time:

      #include <algorithm>
      #include <set>

      std::set<int> myset;

      struct myfunc
      {
      void operator()(const int& theint)
      { // do something with theint
      }
      };

      std::for_each(myset.begin(),myset.end(),myfunc() );

      --
      Karma: -2147483648 (Mostly affected by integer overflow)
    6. Re:foreach by WWE-TicK · · Score: 1

      I don't think the performance thing is the main isssue when using RTTI. The main issue when using RTTI is that whenever you write code that depends on the exact type of the object, you are no longer being object oriented. That is you are doing dynamic typing rather than dynamic binding. Dynamic typing == bad. Dynamic binding == good. This is probably what the parent poster learned in his OO class.

      There are some instances where runtime type information is necessary (for example, you get some unknown object thats been deserialized from a network socket and you'll need to get it to the right type before you can do anything useful with it). But RTTI abuse is very easy to do, especially for the beginner.

    7. Re:foreach by debrain · · Score: 1
      #define EACH( I , C ) typeof((C).begin()) (I) = (C).begin();\
      (I) != (C).end(); ++(I)


      Nifty trick - it's dynamic, too, and works with non-STL containers (ie. pointers). It requires run-time type information, which slows (generally) everything down. Also, as a macro, it's not safe, and it may make copies (what if one of I or C is a function call? eg. EACH( I, some_foo()). Very bad! )

      For just STL containers you could do something like:
      template<typename iter, typename foo>
      void each(iter i, foo&f) {
      /* &f reference may not be 'good', but meh.
      There are some const optimizations that you can make w/
      partial specialization, but again, meh. You probably don't
      want this. :)
      */
      for (i = f.begin(); i < f.end(); ++i)
      { f(i); } /* functor */
      }
      Now you can see the obvious problem with this - it's very close to for_each, and yet very far from your for ( EACH(I,C) ) macro. What you probably really want are lambda functions, per the C++ BOOST library, where you can have lovely things (per their examples) likeso:
      for_each(vp.begin(), vp.end(), cout << *_1 << '\n');
      This is not a macro, so you don't lose the type safety, and it doesn't recreate (C) and (I) everytime they are called, and thinking ahead, doesn't store them in a temporary global variable so it's thread safe.
    8. Re:foreach by thallgren · · Score: 1

      > Dynamic typing == bad. Dynamic binding == good

      Dogma is ALWAYS bad.

      Regards, Tommy

    9. Re:foreach by Wolfier · · Score: 1

      The problem is, writing functors makes code longer, and harder to understand.

      No true lambda == :-(

  26. AWT? by Anonymous Coward · · Score: 0

    Is this the one you can't remember?

    1. Re:AWT? by tree_frog · · Score: 1

      Yes.
      I was sitting there with a cup of coffee thingking API no A something no ahh fuckit!

      Ta!

      Treefrog

  27. Scribe by Anonymous Coward · · Score: 1, Informative
    The new text engine, codenamed Scribe, offers a public API for high-quality Unicode word processing with real WYSIWYG.

    I hope they looked at the Swing libraries for inspiration. I've settled on Swing as the library for a big project, because I need to change the core storage model of a word processor, and Swing makes that easy. The text storage just has to implement a simple interface, plug in your own storage object and everything works. If QT4 has something similar, I might be writing native code after all.

    1. Re:Scribe by zhenlin · · Score: 1

      Call be crazy, but why can't they use Pango? It is platform independent, graphics-system agnostic -- the only problem I can forsee is (a) it uses glib (b) it seems to only support Xft, X11 core and fontconfig.

      Well, now that I think of it, it is because Qt has to be a clean room implementation... But I don't see anything wrong using Pango (as an external library, like FreeType) on systems where it is available.

    2. Re:Scribe by Anonymous Coward · · Score: 0

      Scribe has nothing to do with pango. Qt has supported bidi/unicode text for ages, way before gtk did.

      Scribe is new rich text widget for word processors and such. Next generation KWord will be based on Scribe, for example.

    3. Re:Scribe by be-fan · · Score: 1

      Pango is also phenomenally slow. At least, that's what the GTK+ folks always claim.

      --
      A deep unwavering belief is a sure sign you're missing something...
  28. Directly against Java? by ron_ivi · · Score: 1, Funny
    So they'll use QT where Java does well
    • So I can write large scale enterpise software in QT?
    • So I can write applets in Java?
    • So QT'll run in smartcards?
    Oh, perhaps it's this aspect that they're shooting to duplicate.
    1. Re:Directly against Java? by Anonymous Coward · · Score: 0

      Follow the link and I think parent posting was shooting for "funny".

    2. Re:Directly against Java? by Anonymous Coward · · Score: 0

      So I can write large scale enterpise software in QT?

      The company I work for does. The (heavy weight) client runs on both Solaris and Windows.

    3. Re:Directly against Java? by MS_is_the_best · · Score: 1, Informative

      # So I can write large scale enterpise software in QT?
      Of course, C++ is enterprise ready. No problem.
      # So I can write applets in QT(?)?
      Compile to ActiveX or something. Anyway java-applets suck anyway and are used less and less (fortunately).
      # So QT'll run in smartcards?
      Yes, no problem. Only a C++ compiler is needed and exists in most cases.

      I really don't understand the parent post. Is it flamebait or something?? I bite then, even as someone who prefers GTK... The poster really has no clue or do I not understand the post?

    4. Re:Directly against Java? by Anonymous Coward · · Score: 1, Insightful
      "# So QT'll run in smartcards? Yes, no problem. Only a C++ compiler is needed and exists in most cases."

      Huh? Sure C++ runs in smart cards, but QT?!? What kind of QT application are you running in a smart card. In a Java smartcard, the java could would typically be some key-exchange handshake for encryption or authentication.

      Comparing a GUI widget set with a virtual machine definition is really stretching an analogy.

    5. Re:Directly against Java? by Hard_Code · · Score: 3, Insightful

      "I really don't understand the parent post."

      The difference is that Java is a true platform while QT is at the moment foremost a widget toolkit with a bunch of latecoming useful libraries bolted on. Not to knock it - I think one of the massive holes in the C++ "platform" (if you are going to act like it is one) is that it has had no standard set of libraries. The mantra is "write your own" or "use XYZ because that's most popular". That, a platform, does not make.

      Seriously I think it's about time C++ got a platform, but to call some syntactic sugar plus some libraries a platform (or at least a platform even beginning to compare to Java in platform-ness) is silly.

      And by the way, C++ is "enterprise ready" in the same way straight razors are "oral hygeine ready". Sure you can do it, but expect pain, bleeding, and embarrassment. These is not only my argument - survey the enterprise landscape... the only people using something like C++ for large web applications or middleware are either those that have 1) massive legacy investment 2) massive earth crushing load and performance requirements (e.g. ebay, amazon, etc.). Lastly just because you CAN do it, doesn't mean that it is necessarily a good idea. The market shows that C++ is very expensive to write and deploy (if you are going to go by salaries, etc.) for jobs which can be done equivalently in some other language.

      Almost every body else is using some other-generation language, be it Java, .Net/CLR, php, whatever.

      --

      It's 10 PM. Do you know if you're un-American?
    6. Re:Directly against Java? by Anonymous Coward · · Score: 0

      C++ has no standard libraries??? Where have you been? Read up on the STL - lots of good stuff. Do you really think a toy language like PHP even compares to something like C++?

    7. Re:Directly against Java? by davidle · · Score: 0

      Qt is a heck of a lot more than a widget toolkit, which is why the comparisons to GTK are silly.

    8. Re:Directly against Java? by Anonymous Coward · · Score: 0
      >>So I can write large scale enterpise software in QT?
      >Of course, C++ is enterprise ready. No problem.

      Avoiding the question, aren't you. Noone asked if C++ is enterprise ready. Yet large enterprise systems such as those from Agile Software are build with Java, and Application Server, and a HTML client.

      Are you saying QT has a good HTML generating toolkit?

    9. Re:Directly against Java? by Anonymous Coward · · Score: 0

      Any examples? I'm not trolling, but as far as I could see it's very much comparable to GTK.

      I'd love to see a QT GTK Java comparison chart.

  29. std::for_each by jhurani · · Score: 2, Interesting

    http://www.sgi.com/tech/stl/for_each.html would do the trick (and would help in avoiding a large body for for-loop).

    1. Re:std::for_each by Bingo+Foo · · Score: 3, Insightful

      This would not "do the trick" for me. The STL for_each requires a pre-defined functor outside the scope where the for_each pseudoloop algorithm is executed. I like the perlness of a "for each" that acts like a natural extension to the for loop.

      --
      taken! (by Davidleeroth) Thanks Bingo Foo!
    2. Re:std::for_each by demo · · Score: 2, Interesting

      Well, you could look into the boost::lambda library.

      std::for_each(v.begin(), v.end(), std::cout << _1);

      --
      ---
    3. Re:std::for_each by be-fan · · Score: 1

      It would do the trick if C++ had proper lambdas (no, Boost.Lambda is not a proper lambda), but it doesn't, so it doesn't.

      --
      A deep unwavering belief is a sure sign you're missing something...
    4. Re:std::for_each by be-fan · · Score: 1

      Boost.Lambda is fraught with complications and subtle errors. For example, if you do:

      std::for_each(v.begin(), v.end(), std::cout "value: " _1 endl);

      The 'std::cout "value: "' will get evaluated eagerly, and you won't get the expected result. There are work-arounds, but they are a pain to use when a mistake in a lambda expression results in completley indecipherable errors.

      --
      A deep unwavering belief is a sure sign you're missing something...
  30. Cheers to trolltech by exigentsky · · Score: 1

    Qt 4 sounds amazing, I just hope that they will be able to deliver, that's a hume amount of stuff their promising and none of it is trivial. I'm very happy with the direction Trolltech is taking with Qt 4 and I wish them the best of luck! I'm also looking forward to Mark Summerfield and Jasmin Blachette's book on Qt 4.0. I've already got their book on 3.2.x and I found it to be pretty good, though still a bit too advanced for me (I don't know C++ well).

  31. Trolltechs license is great by grahamsz · · Score: 5, Informative

    You can buy a commercial license and make closed-source linux applications, while supporting the community financially.

    Or you can stick with the open one...

    I can't see why it would bother microsoft either way.

    1. Re:Trolltechs license is great by Anonymous Coward · · Score: 0

      It's great? Why is that? If your purpose is to limit the amount of non GPL development that is done against the QT lib isn't great, but if that's not the purpose then is sucks. Hay seeing as how java is being mentioned do you have to purchase a commercial java license to write a java application? What if somebody wants to write a BSD license application against QT? Will that work with the linking clause or the commercial license, short answer is NO.

    2. Re:Trolltechs license is great by Anonymous Coward · · Score: 0

      What if somebody wants to write a BSD license application against QT? Will that work with the linking clause or the commercial license, short answer is NO.

      BSD license is GPL-compatible, you can use the GPL'led version of Qt for that...

    3. Re:Trolltechs license is great by grahamsz · · Score: 1

      No you dont have to buy a license to use Sun's java implementation, but you do for some other java implementations. But java's license doesn't give you as many rights at the gpl.

      You can (i believe) write a bsd licensed app using QT.

    4. Re:Trolltechs license is great by Vicegrip · · Score: 1

      The problem most people complain about is that there is no 'open' license on the Windows platform.

      Section 8 of the Non-Commercial License:
      8. Licensee is as an individual granted a personal, non-exclusive, non-transferable license, in a non-commercial setting, to ....

      As you can see, one cannot develop a Windows program in a commercial environment with QT, even if you will open up all your source, because you are using it in a commercial setting. You have to buy a license for every single developer working on a Windows app based on QT. This means, for instance, that things like in-house utilities using QT are incredibly hard to justify budget wise.

      Anyways, it's their product and I don't begrudge them the right to do what they want with it; but those license costs make it really difficult to sell switching from MFC + a 400$ widget toolkit. Especially if you're a small company where 50,000$ is a big deal.

      When I last asked QT about this policy I received the reply that 'we need to eat'. Translation: we make most of our money from Windows licensing.

      So what do I see happening? People are switching to java and C# on Windows. Not QT by any stretch.

      --
      Do not spread "09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0" over the internet, thank you.
  32. Do we REALLY need more things fighting Java? by JessLeah · · Score: 3, Insightful

    Already, Java is being threatened by Microsoft (for obvious reasons) and by Sun themselves (for almost-as-obvious reasons-- i.e. Sun getting into bed with Microsoft). Remember that the software field does not look like "Microsoft versus Sun versus Apple versus...." at present. Rather, it looks like "Microsoft versus everybody else.."

    Until the marketplace is more open, with no gigantic 95+% monopolies in any given field, I'd like to see the non-Microsoft players cooperate in an effort to cut MS down to size. Then, and only then, should they focus on competing amongst themselves!

    1. Re:Do we REALLY need more things fighting Java? by Anonymous Coward · · Score: 0

      > Until the marketplace is more open, with no
      > gigantic 95+% monopolies in any given field, I'd
      > like to see the non-Microsoft players cooperate
      > in an effort to cut MS down to size. Then, and
      > only then, should they focus on competing
      > amongst themselves!

      Just wondering. To what extent, and in which areas, are companies allowed to "cooperate". As far as I understand, at least certain overnational competition courts have ruled price cooperation illegal. As far as I understand, companies cannot "divide" the market between themselves, through some sort of agreement either.

      A second point I would like to make is that, while I agree with you from an idealistic standpoint: Companies like Sun, Trolltect and the like, have to make money. Wouldn't cooperation cause a drop in revenue for a relatively long periode of time? Taking on Microsoft isn't completed in one day, and fighting other companies for their market share seems to be easier than fighting Microsoft. It would seem that the events of recent history have confirmed that.

      Regards,
      Hans S. Tømmerholt

  33. And how about SCO? by Anonymous Coward · · Score: 1, Funny

    I think SCO has made a business out of trolling :)

  34. Java sure is doomed by Anonymous Coward · · Score: 0, Insightful

    Yeah, well, the problem is that Java just isn't Free or Open Source enough, so it's doomed. QT, on the other hand, has a bright future. It's so Free you can't even write a non-GPL program that uses QT unless you pay an expensive per-platform per-developer-seat yearly fee. And you can't write a program that targets Windows for QT at all unless you go with the yearly fees.

    Now, which do you think developers would rather go with? A company with tenuous links to SCO and a free-to-use but closed-source base library, or a company with tenuous links to SCO and a library you can only use to write GPLed software for UNIX? Yes, I think we all know the answer to this one: the one that the slashdot groupthink hasn't decided is "doomed". So, QT will win.

  35. Re:The Future of Linux by Anonymous Coward · · Score: 0

    hehe, not bad of a reply.

  36. Re:QT's licence is BAD! by S3D · · Score: 0, Flamebait

    How was this post moderated Troll ??? It is in fact very informative. I was looking for free alternative for QT (don't want pay 1500+ $ and fed up with MFC) and found them in this post. Please moderate it up.

  37. Yeah, right positioning against Java... by keyboardsamurai · · Score: 2, Insightful

    ...that will make Things better. What is it, that everybody is trying to discredit java, by just copying fundamental features of the Language, or API or VM? .NET and QT are just the big players here. I don't know whats wrong with these folks.

    1. Re:Yeah, right positioning against Java... by bwy · · Score: 1

      They do say that imitation is the higest form of flattery...

      (Just don't imitate so much that it lands you in jail)

    2. Re:Yeah, right positioning against Java... by be-fan · · Score: 1

      You do realize that there isn't anything in Java that is actually new, do you not?

      --
      A deep unwavering belief is a sure sign you're missing something...
    3. Re:Yeah, right positioning against Java... by keyboardsamurai · · Score: 1

      Actually all concepts of the Java Language have evolved in a try and error fashion over time.
      First came C, then C++ then Java. And so it goes.
      What I find particularly disturbing in a Framework "positioning against Java" is that a company like Trolltech actively tries to compete against the allegedly inferior Java by saying that they now sport Java features. I mean, how crazy is that? If Java was so crappy, why would anybody even bother to "borrow" concepts from it for his own product?

      Of course I realize that a "for each loop" existed even long before perl saw the light of the world, or that Generics are really old hats when it comes to a certain novelty factor - But Java has set an industry standard that is tried and true and naturally everybody will have a good look at he experience gained with this particular lang, just as its inventors that took a good look at C++.

      Oh, yeah - and while we are at it: even if Anders Heijlsberg will tear his legs out while raving and cursing in terror: Java's checked exceptions are a real blessing if you know how to use 'em.

  38. Win32, Win32, and Win32 again by henrypijames · · Score: 4, Interesting

    So Qt 4 is "positioned directly against Java". Fantastic! Except I read just a few days ago (also here on slashdot) that Qt will keep on blockading the release of a free-of-charge and publicly available version of their Win32 library port.

    Now, call me cynical, but how in the hell are you gonna compete with Java, whose foremost strength is the (alleged) platform independency if you kill yourself right away for the most commonly used platform?

    As pointed out by many readers already, Mac OS X is not free or Open Source, and does not have a statistically proven larger base of FOSS developers. So offering free Qt library for OS X while categorically denying Win32 is nothing but complete BS. And this new PR crap about "positioning against Java" is simply too laughable seen in this light.

    Btw, I prefer KDE over Gnome, so I'm not an "enemy" of Qt per se.

    1. Re:Win32, Win32, and Win32 again by master_p · · Score: 3, Insightful

      Now, call me cynical, but how in the hell are you gonna compete with Java, whose foremost strength is the (alleged) platform independency if you kill yourself right away for the most commonly used platform?

      What does platform independency have to do with openness ? if you pay Trolltech, you get the Win32 sources. Qt is open (as in speech)

      Why does everything have to be free (as in beer) ? if you made good software, woudn't you want to get something in return ?

      Sun has a specific reason that Java is free (as in beer): market penetration. On the other hand, Trolltech is just a small company, very small compared to Sun. They can't afford to give away for free their flagship (and only) product.

    2. Re:Win32, Win32, and Win32 again by fault0 · · Score: 1

      > So offering free Qt library for OS X while categorically denying Win32 is nothing but complete BS.

      I agree, but pragmatically speaking, Trolltech would probably go out of buisness if Qt for Windows was freed.

      I'd like to see that NOT happen.

    3. Re:Win32, Win32, and Win32 again by Anonymous Coward · · Score: 0

      You are surely right in that it would be nice to have a GPLed version of Qt for Windows. On the on the other hand, I really like the idea that stupid windows users are paying for the development of my favorite UI toolkit. :-)

    4. Re:Win32, Win32, and Win32 again by bonch · · Score: 1

      if you pay Trolltech, you get the Win32 sources. Qt is open (as in speech)

      You can pay a Microsoft license and get their source code too. Does that mean they're open as in speech?

  39. Consumer-style user interfaces - ugh by jfl2 · · Score: 2, Insightful

    Driven by consumer electronic devices such as mobile phones and PDAs, desktop applications are moving away from standard widgets and styles towards more customized user interfaces. Qt 4 will support this modern user interface approach through its powerful style system as well as with flicker-free refreshes and transparency for all built-in and custom widgets.

    I find this trend distressing. Custom user interfaces are, in general, a bad idea. Using non-standard widgets impacts negatively upon application usability.

    Standardised widgets help the user quickly adapt to new applications, by maintaining consistent user interfaces.

    1. Re:Consumer-style user interfaces - ugh by Anonymous Coward · · Score: 0

      Some times they are needed, like for embedded devices with a touch screen and limited display area. It's great to keep widgets all the same, but tell that to machine operators with fat fingers. Qt provides an excellent way of fixing this by inheriting a QStyle to redraw some common widgets

    2. Re:Consumer-style user interfaces - ugh by N1KO · · Score: 1

      According to your quote, the user interface will be consistent. Seems to me like they're describing themes, not a specific interface for each application.

  40. Re:The Future of Linux by Sv-Manowar · · Score: 0, Offtopic

    I must leave Slashdot now, your ego is taking up all the bandwidth

  41. Re:Condi... by Anonymous Coward · · Score: 0

    Thank God for your post. I was beginning to think I was the only person in the world to find Ms Rice delicious. Now I need feel no shame

  42. foreach, like this? by catf00d · · Score: 2, Informative

    I wonder if it's anything like the foreach macro I wrote and proposed for inclusion in the Boost library. Slides and source code available from here.

  43. Does it include something like, well "QDBC"? by pamar · · Score: 1


    i.e. a standardized way to interact with relational DBs (like ODBC and JDBC)?

    If the answer is "No", I cannot really see the point.

    1. Re:Does it include something like, well "QDBC"? by Anonymous Coward · · Score: 0

      Im pretty sure QT has had an odbc support since about version 3

    2. Re:Does it include something like, well "QDBC"? by Anonymous Coward · · Score: 2, Informative

      Yes, already in version 3, see the SQL module:

      http://doc.trolltech.com/3.3/sql.html

    3. Re:Does it include something like, well "QDBC"? by Anonymous Coward · · Score: 0

      Yes, for a long time now

  44. Re:QT's licence is BAD! by Capt.+Beyond · · Score: 4, Insightful

    your post is redundant. GPL is GPL. If you want GPL Qt on windows, you are free to write the code yourself. As if Trolltech's GPL isn't as good as the GNU GPL. Give this a rest.

    --
    -- "Perceptions create reality. By changing your perceptions you change your reality."
  45. Re:So by troon · · Score: 1

    Yeah - I have the same problem with kernel and compiler releases. I don't care about those, I just want to run my browser. Who needs to know about all that developer rubbish? If I wanted to know about that I'd go to some sort of nerd-news site.

    --
    Ydco co ,df C erb-y go. a Ekrpat t.fxrapev
  46. And how about Jerry Seinfeld? by Anonymous Coward · · Score: 0

    And Jerry Seinfeld makes a living out of being funny , something you would be better off not trying.

  47. Re:False pretenses by LQ · · Score: 1

    Java works very well on server side. It doesn't work very well client side. Its horses for courses.
    Sorry, but Java on the client works just fine. I've implemented many sophisticated GUI client applications and wouldn't dream of using anything other than Java.

  48. Re:So by Anonymous Coward · · Score: 0

    While you may not realise the benefits straight away, software being easier to develop means more, higher quality apps for everybody.

    So you mean trolltech think Java is easier and "higher quality"?

  49. Re:Cheney wants to strip US citizens of their righ by Anonymous Coward · · Score: 0

    Dick Cheney is going to be president in 2008. Go start your own country if you want some terrorist utopia.

  50. Qt vs Java? on Server-Side? Try Cocoa WebObjects by tyrione · · Score: 3, Interesting

    For most people who were in the pre-DotCom Boom you will recall that WebObjects via Objective-C really paved the way for Web Server-Side Development.

    The decision to switch it to J2EE was political and at the time, necessary, in order to compete with all the hype.

    Remember however, that this "CODE" wasn't washed down the drain. WebObjects leveraged Foundation and AppKit directly. The beauty of Cocoa is that augmenting WebObjects back to Cocoa/Objective-C is extremely trival for Apple.

    I would be highly surprised if Steve doesn't decide to throw out the trump with Portable Distributed Objects (PDO) for say OS X version 11 and have it seemlessly work with .NET and J2EE.

    What a lot of people who also worked once at NeXT know is that lots of the technologies that were never released are slowly being reincarnated into various pieces of the pie.

  51. Re:So by pointwood · · Score: 2, Interesting

    As a KDE user you can look forward to a (most likely) KDE 4.0 release that'll start faster and run faster, have smaller memory requirements, look better and have better accesibillity.

    And you say there's nothing to be excited about as a KDE user?

    So when will KDE 4.0 be released? I have no idea (and I'm not a KDE developer so I have no influence at all - I have just followed the KDE losely for quite a while) but my wild guess would be fall 2005 :)

  52. Against Java ? by MosesJones · · Score: 4, Insightful


    Which bit ?

    Against the J2EE platform supported by IBM, SAP, PeopleSoft, Oracle, BEA, Sun, Manugistics etc etc

    Against J2SE supported by IBM, Sun, Dell, HP etc

    Against J2ME supported by IBM, Nokia, Ericsson, Sony, Sun etc

    How about positioning it as a useful tool for corporate developers with minimal tooling support and no easy integration with corporate applications.

    OSS needs to realise what WORKS in a corporate environment and why it does, and why re-inventing, or competing with, the wheel is not a great idea.

    I like OSS, I advocate OSS with my clients, but its this sort of visionless statement that makes many serious IT directors walk away as they know its a bollocks statement made by people without a grasp of their problems.

    Corporate IT _is_ IT.

    --
    An Eye for an Eye will make the whole world blind - Gandhi
  53. NAtive Toolkit? by Daengbo · · Score: 2, Interesting

    On Linux, Qt is in the unique position of being seen as one of the native APIs.
    I thought that honor belonged solely to Motif...

    1. Re:NAtive Toolkit? by meringuoid · · Score: 3, Funny
      What I liked was this:

      On Linux, Qt is in the unique position of being seen as one of the native APIs.

      --
      Real Daleks don't climb stairs - they level the building.
    2. Re:NAtive Toolkit? by Haeleth · · Score: 1

      What I liked was this:

      On Linux, Qt is in the unique position of being seen as one of the native APIs.


      Nice funny, but the claim makes sense in context: Qt is unique as compared to other toolkits designed to be cross-platform (Java's Swing, wxWidgets, and the like), which seen as 'foreign' on every platform.

      Doubtless Tcl/Tk and GTK advocates would beg to differ, so allow me to make it clear that I'm not making these claims, just interpreting them.

    3. Re:NAtive Toolkit? by juhaz · · Score: 1

      Motif is no more native than GTK or Qt, they're all parallel.

      Xlib is the only thing that could reasonably claim that.

    4. Re:NAtive Toolkit? by Daengbo · · Score: 1

      But wasn't Motif the "official" toolkit of Unix?

    5. Re:NAtive Toolkit? by juhaz · · Score: 1

      I guess it (and CDE) was an industry standard of some kind for quite a few of commercial unices at some time.

      That doesn't mean much else than that it was used much, though... quite a bit like the position GTK and Qt are now in.

  54. Re:QT's licence is BAD! by Anonymous Coward · · Score: 0

    How on earth is this Score:4, Informative ?

    Who doesn`t already know this ? And what is "bad" about programmers who can`t survive on fresh air and need to eat occasionally - especially when KDE is regarded, by most programmers, as rather good when compared to other toolkits beginning with, umm, "G". The parent poster needs to be batted around the head with a large clue stick.

  55. Re:QT's licence is BAD! by Anonymous Coward · · Score: 0

    Or Ill just the free windows forms and not bother writing Qt for windows myself.

  56. I thought there were more changes but... by Anonymous Coward · · Score: 0

    "Incidentally, for those still opposed to Qt's moc preprocessor, Havoc has some interesting comments."

    I'm not aggainst Qt moc preprocessor but I think some things can be done in a more efficient way in a c++ way rather than java (static time without introspection, marshaling and other stuff). For example, signal and slot communication, which is one of the main uses of qobject/moc, can be done using c++ templates (see libsigc++ o signals library in boost) .

    Instrospection and dynamic uses are probably neccesary in a higher level (interfaces compiling, components and scripting), but no in these uses.

    It's just my opinion, do not repply with http://doc.trolltech.com/3.1/templates.html, because I think these arguments aren't valid:
    No. 1 "Syntax matters" I think syntax in c++ way is even easier

    No. 2. "Precompilers are good" ?? It looks like a theological statement:-) Well, probably precompilers are good for interfaces compiling in components, or when c++ compilers are not powerful enough, but not now in this context (more with TT supporting mingw)

    No 3. "Flexibility is king" Templates are sooo powerful :-)

    No 4. "Calling performance is not everything" But is a big component in UI designing (I've seen similar comparisons between CORBA versus dcop/dbus, and I think the election was dbus)

    No. 5 "No limits" ?? For what? There are no limits for the enterprise

  57. Re:QT's licence is BAD! by Anonymous Coward · · Score: 1, Insightful

    The price instantly puts the toolkit out of reach for smaller development houses

    Total, utter rubbish. If a small development house can afford one employee with a single PC they can affors a Qt license. I don't know what world you live in, but in the Real World $1550 is small beans for a primary development platform. Seen the prices of BEA Weblogic or Windows 2003 Server lately?

  58. Re:FUCK YOU BUDDY by Anonymous Coward · · Score: 0

    What was the point of killing all those people?
    What was the point of sending so many Americans off to their death?
    What is the point of arguing with someone this fucking stupid?

    There is no point. Good night.

  59. Re:QT's licence is BAD! by Brian+Blessed · · Score: 2, Insightful

    All the morons are out this morning...

    > QT isn't even free software

    The GPL'ed version is. GPL'ed Qt != Win32 Qt, i.e. you need to view them as different products.

    Trolltech have given us GPL'ed Qt, but they have absolutely no obligation to provide their Win32 version under the same license.

    The price is a factor only if you want to develop using Trolltech's proprietary version. I suppose that if you can't afford that then you may have to consider cheaper alternatives, but this doesn't lead us to "QT's licence is BAD!" unless you see all proprietary licenses as bad (I do, but you seem to be singling out this one).

    I don't see Qt as a competing technology to Java, but I love using the Free Qt, and appreciate Trolltech's generosity in providing it.

    - Brian.

  60. Qt vs Java/Swing by nikster · · Score: 5, Interesting

    First, we need to clear up the confustion from the following statement:
    "Qt is positioned as superior alternative to Java".

    Trolltech cannot possibly mean that. What they meant to say is: "Qt is an alternative to Java when it comes to cross platform client applications using a GUI". While Qt may do some non-GUI things, too, it's totally different from Java (clue: Qt is not a programming language) and from the Java platform (it doesn't come with a VM, it doesn't have its own bytecode, etc...). What remains is that it's an alternative to Java if you want to deploy applications across Windows, Mac, and Linux. Giving Trolltech the benefit of doubt, this is what they meant.

    Having done client-side programming for many years, i can see that there is something to that. I once hoped that Qt would develop into a viable alternative because AWT/Swing was so slow.

    However, since then Sun has done their homework and made Swing fast (indistinguishable from native, for the most part), and they are continuing to work on performance in release 1.5. There is still a lot of room for improvement. Things like Apple's library caching - where they pre-compile the native libraries and cache the machine code on the hard disk which makes a Java apps start as fast as a native apps, more hardware acceleration for Swing etc.

    Once we get performance out of the way (i have not seen Qt, but i assume it's fast), there is nothing Qt could offer that Java didn't do better.
    For example, you don't have to deal with c++. Java is not perfect, but it's - yes we can say that in public - definitely more productive than c++, in the same way that c++ is more productive than asm machine code.
    Add to that extensive networking libraries, array bounds checking (buffer overflow exploits not possible in java, imagine that), garbage collection, serious instead of optional OO, and the list could go on and on, no recompiling, runs on more platforms than Qt, free deploy license...

    1. Re:Qt vs Java/Swing by StormReaver · · Score: 3, Informative

      "Java is not perfect, but it's - yes we can say that in public - definitely more productive than c++"

      I've been programming in Java and C++ for years, and in Java for years before learning C++. My productivity with Qt/C++ equals (and in most cases, exceeds) my productivity with Java.

      While Swing on the Mac may have dramatically improved its performance (I'll have to take your word for it), Swing on Linux and Windows are still (as of JDK 1.4x) horrendously slow to start and horrendously slow to run.

      Qt outperforms Java/Swing by a huge margin on those platforms.

    2. Re:Qt vs Java/Swing by Espectr0 · · Score: 1

      However, since then Sun has done their homework and made Swing fast (indistinguishable from native, for the most part),

      Swing is, and always will be, a running dog. Try SWT. Real, native interfaces, done via jni.

    3. Re:Qt vs Java/Swing by nikster · · Score: 1

      I've been programming in Java and C++ for years, and in Java for years before learning C++. My productivity with Qt/C++ equals (and in most cases, exceeds) my productivity with Java.
      i guess we would need to go more in-depth to resolve this. maybe you just have a lot of experience with the Qt APIs? in that case, of course you would be more productive with C++/Qt. If you were an expert on Swing as well... i have my doubts.

      Swing on Linux and Windows are still (as of JDK 1.4x) horrendously slow to start and horrendously slow to run.

      i call BS on that. that is a myth. i deploy Swing apps on windows all year, and since about 1.4 i have not had any complaints about performance. most of the time, people are not aware that these are Java programs.
      i can believe that Swing is slow on Linux. there is no hardware acceleration for Swing on Linux to my knowledge. same goes for OS X though they are working on it.

      There are two things that Java and the JVM are still slow at: Startup (which has to do largely with the JVM compiling all the system classes at every start of a java program instead of mapping a DLL), and memory use.
      In addition, deployment can be a pain since if you ship the entire JRE with your app, it adds 30M of deliverables. Not good.

      For instance, if you want to write a small command line tool in Java, it's probably not a good idea - startup cost is too high, mem usage is too high, and deliverable size is too big. If, on the other hand, you write a client app in Swing, and target WinXP with 256M RAM, it's perfectly fine and a pleasure to work with :) People such as myself will be a little annoyed with the startup overhead of a few seconds, but overall they won't know it's a Java application.
      [not to mention the traditional Java stomping grounds such as servers]

  61. the first one makes it difficult by Trepidity · · Score: 1

    No GPL version for Windows makes it impractical for a lot of cross-platform applications. Gaim, for example, uses GTK for both its Linux and Windows versions, but this would be impossible to do with Qt.

    1. Re:the first one makes it difficult by infiniti99 · · Score: 3, Insightful

      Yes, this is an unfortunate problem. The main reason there is no GPL version for Windows is that 99% of all software developed is in-house, and the GPL would allow in-house development without needing a commercial license (this would seriously eat into Trolltech's income). The company has tried in the past to release a "non-commercial" edition, which was closed source, but free to use, provided it was not for commercial purposes. Unfortunately this was abused by organizations who used it for commercial purposes anyway.

      I should mention that the Psi project receives Qt/Windows for free. Trolltech gave us several commercial licenses, including endless support and upgrades, provided that we only use it for open source work. I'm not sure how practical it is for all free cross-platform projects to establish a trusting relationship with Trolltech in order to use Qt/Windows, but it might be a solution...

    2. Re:the first one makes it difficult by neonstz · · Score: 1
      I'm not sure how practical it is for all free cross-platform projects to establish a trusting relationship with Trolltech in order to use Qt/Windows, but it might be a solution...

      If a developer got a Qt/Win commercial license, can he/shethen compile an open source program and distribute the binary? I checked the license agreement for Qt/Win and didn't find anything about that...

    3. Re:the first one makes it difficult by infiniti99 · · Score: 1

      If a developer got a Qt/Win commercial license, can he/shethen compile an open source program and distribute the binary? I checked the license agreement for Qt/Win and didn't find anything about that...

      Yes, this is allowed. Back when Qt/Mac was still non-free, I found a commercial user on the qt-interest mailinglist to maintain my Mac port. Just ensure that the person doing the compiling has the necessary rights to do so. For GPL projects, this generally means amending the license to allow linking to the commercial edition of Qt (see this question in the GPL FAQ for more information).

    4. Re:the first one makes it difficult by fault0 · · Score: 1

      No problems with that, in fact, some Trolltech employees themselves used to do that for open source software that needed to a quick port to Windows.

    5. Re:the first one makes it difficult by DeltaZulu0 · · Score: 1

      This makes the solution obvious. Form a development organization dedicated to bringing open software to Windows. Purchase a commercial QT license (after taking donations from supporters) and provide CVS upload and compilation services. CPU architecture is virtually never a consideration during compilation of a windows app. Binary distribution is (using the LCD of current Intel architectures) normal. Noone wonders if the app was compiled with their CPU in mind.

  62. OT: Re:New and Elegant "foreach" ? by Haeleth · · Score: 2, Informative
    I'm still looking for one with static types.

    How about this one? (For the "programmable" bit, see here.)

    Here's Qt's new 'foreach' construct:
    foreach (element, list)
    process (element);
    Here's the equivalent code in Lisp:
    (foreach element list
    (process element))
    And here it is in OCaml:
    List.iter process list
  63. Re:QT's licence is BAD! by julesh · · Score: 4, Interesting

    Don't expect to port to Windows without paying the Trolls.

    Why on earth not? If you've only ever agreed to the GPL license on their X11 version, there is absolutely nothing they can do to stop you from porting the library, like these people are doing.

  64. Re:QT's licence is BAD! by Ben+Hutchings · · Score: 4, Insightful

    I work for a small development house, and we were certainly able to afford it. $1550 is less than two weeks' salary (and that's before counting expenses on the top of the payroll) so if Qt can save that much developer time it's worth buying. Note that the price includes good technical support.

  65. Re:FUCK YOU BUDDY by Anonymous Coward · · Score: 0

    Russians.

  66. I can't see.... by xquark · · Score: 0, Redundant

    As far as portability goes, and correct use of an object oriented
    frame-work I can't see why one wouldn't use wxWidgets?

    why would anyone in their right mind consider anything else for
    cross-platform development with the C++ language?

    Pay peanuts, you get monkeys...

    Arash Partow

    --
    Arash Partow's Philosophy: Be a person who knows what they don't know, and not a person who doesn't know.
    1. Re:I can't see.... by Anonymous Coward · · Score: 0

      > why would anyone in their right mind consider anything else for cross-platform development with the C++ language?

      wxWidgets is nice, but it doesn't have nearly as well designed API as Qt does. I think Qt is probably the holy grail of C++ application frameworks.

      I have to admit that I don't use C++ much anymore. Work with Swing and Java mostly :-)

  67. The price is quite reasonable by msobkow · · Score: 2, Insightful

    The price is per developer, not per user.

    Have you checked the prices on Win32 development tools? $1550 isn't cheap, but it's far from outrageous or out of reach.

    If that is out of your budget, you aren't a "smaller development house" -- you haven't even learned to think like a business yet. Products like Qt save development time, which allows lower bids, which means more revenue. If you can't work the numbers, go back to the basement -- your business won't be outgrowing it for quite some time.

    --
    I do not fail; I succeed at finding out what does not work.
  68. Re:Linux has no chance by Anonymous Coward · · Score: 0

    Trolltech will be a niche player.

    _Will_ be? That's what it is now. Maybe you meant to say "will always be a niche player.

  69. Extended multithreading support is interesting by Meijer · · Score: 4, Interesting
    For me, the extended support for multithreading is the biggest deal.
    Qt 4 takes threading support to another level, with per-thread event loops, signals--slots connections across threads, and thread-safe implicit data sharing.
    If I am not mistaken, this will enable slots to serve as messages in message passing concurrency.
    But how will they make shared data thread-safe implicitly!? Usually, for MPC, data is just copied. But if different threads share pointers, the access must be synchronized. Will QObjects become Monitors, like Java's Objects?
  70. Havent you kids taken history by Anonymous Coward · · Score: 0

    Fighting communism....

    1. Re:Havent you kids taken history by Anonymous Coward · · Score: 1, Insightful

      Communism fell with a bank statement, not a napalm attack.

    2. Re:Havent you kids taken history by Anonymous Coward · · Score: 0

      Acutally communism fell with along with a wall.

  71. Re:FUCK YOU BUDDY by Anonymous Coward · · Score: 0

    Cold War motherfucker. Remember who won.

  72. Re:FUCK YOU BUDDY by Anonymous Coward · · Score: 0

    No, I don't remember who won. Care to enlighten me you inbreed shithead?

  73. Re:False pretenses by Anonymous Coward · · Score: 0

    Could you tell us what sophisticated application
    this was or if it's an internal application, could
    you name any non-trivial GUI application written
    using Swing which didn't look and feel like sh*t?
    The only Java GUI I've used which didn't suck
    the one for Eclipse and that doesn't use Swing.
    I've being using Java for years so I'm not a Java
    basher.

  74. Re:QT's licence is BAD! by Anonymous Coward · · Score: 0

    QT isn't even free software. It's GPL'ed on X11 and the Mac - but not the most popular development platform: Windows.

    Firstly, by that reasoning, GNU HURD isn't Free Software, because it doesn't run on Windows. What a load of shit. Secondly, a Windows port does exist, and you can find links to it scattered all over this discussion.

  75. Re:So Qt4 is ok. by msh104 · · Score: 1

    well, the benifits are quite simple. 1. being able to write code easy will help coders build there apps faster and more stable. so coders will have time to add additional features. (webcam support in kopete perhaps) 2. less ram and disk usage. more bit for your buck! less diskusage means less disk spins and thus faster loading. less ram usage means you can run heavy or multiple tasks at the same time faster then before. 3. faster and more responsive widgets! come on, this is something every end user loves. almost all the user joe's that I showed kde 3.2 where just creaming to get ik because konqy started 1000x faster. QT 4 really is a must have.

  76. I'll Give you a hint. by Anonymous Coward · · Score: 0

    It wasn't the cocksucking russians...

    1. Re:I'll Give you a hint. by Anonymous Coward · · Score: 0

      Was it the cocksucking americans then?

  77. Trolling? by brunes69 · · Score: 5, Insightful

    2) A non GPL version of the library costs an outrageous sum of money.

    If you think only 1500-3000 ( depending on package ) per developer for a perpetual license is a large amount of money, then you're either 12 years old or have never paid a dime for software in your life.

    A manager of any team of 5 or more people would laugh at that kind of money. It is chump change compared to how much a company would spend on *paper* for pete's sake.

    And if you take into account the developer's time ( which any manager must ), Qt is actually cheaper since it is so powerfull it takes on average 25-50% less code to do things in Qt than it does to do in other C++ toolkits I have used in the past.

    I would use Qt even if I was only targeting Windows and even if I was the only person on the team. It is *that* good. People who knock it just do not have experience using it.

    1. Re:Trolling? by Anonymous Coward · · Score: 1, Insightful

      Sorry, but $2000 per developer IS expensive for small companies (start-ups).

      I'm working for a company in South America, and I know this kind of cost would be blocking, since the taxes alone eat half of your total income.

      So if you're working with other 3 or 4 guys, and you need to release a windows app, you do like we did and go with gtk/mingw32 or whatever combination you can afford (ie: visual basic -- argh) to meet the customer's request.

    2. Re:Trolling? by XP_sucks · · Score: 1

      Or for an even better comparision, contrast it against hardware design tools. Figure on spending 30-50K/designer for board guys, 50-80K for FPGA guys, and 100-150K per ASIC guy. That is assuming a reasonable amount of license sharing going on, not 1 seat of required tools per designer. On top of that you are going to pay 18% maintenance per year. 3K/seat is noise in any real design shop for a supported library or toolkit.

    3. 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"
    4. Re:Trolling? by snkline · · Score: 1

      Umm, no offense, but don't you need those things even if you go with something other than Qt? Your will still need and editor, computers, build systems, etc.... I mean I understand when you buy something from a company they will pressure you to buy other things, but if they do just say no.

      And personally I never had that experience with Trolltech, they pretty much sell their toolkit, and stick to that.

    5. Re:Trolling? by SerpentMage · · Score: 1

      Yes you are right regarding the other tools.

      However, lets consider the purchase of Visual Studio. I have included a compiler, editor, debugger, and SDK. I could even think about using Delphi, or even C++ Builder. Regarding build systems I could use Subversion, Ant, and some other things.

      Heck MSDN Universal is in the same price range as TrollTech. With MSDN Universal you get everything a developer ever needs (OS, tools, Servers, etc, etc albeit on the Windows platform).

      My point is that when the original parent said 3000 was the smallest bit of the overall equation, in fact it is the largest bit for what you get. Good development tools can be easily had in the lower three digit range. What Trolltech develops is not worth four digits.

      --

      "You can't make a race horse of a pig"
      "No," said Samuel, "but you can make very fast pig"
    6. Re:Trolling? by be-fan · · Score: 2, Funny

      The difference is that with Qt, you pay to increase productivity, while with Rose, you pay to lower it.

      --
      A deep unwavering belief is a sure sign you're missing something...
    7. Re:Trolling? by Qwavel · · Score: 2, Insightful

      Any amount of money is large at a time when all the alternatives are free: Python, C# with Mono or DotNet, Java, or C++. Even MS has now made their C/C++ compiler free (and it's v7.1, the first good one).

    8. Re:Trolling? by Jeremi · · Score: 1
      Heck MSDN Universal is in the same price range as TrollTech. With MSDN Universal you get everything a developer ever needs


      Oh? MSDN Universal will let me recompile my source code under OS/X, Linux, Irix, BSD, etc? I didn't realize Microsoft had gone cross platform... :^)

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
  78. Re:So by Doug+Neal · · Score: 1

    Go and read another article then.

  79. Re: So by IamTheRealMike · · Score: 1
    It's a C++ development toolkit - the users of this software are by definition developers.

    I disagree, and I think it's pretty bad fanboyism that the original poster was marked "Offtopic".

    A widget toolkit is used by both developers and end users.

    Think about it. A developer uses the APIs, so we want them to be nice, but the user uses the widgets, so we want them to be nice too. Fully featured widgets that are designed to look good and be easy to use are just as important as nice looking APIs - in fact, I'd say they are moreso, as users typically outnumber developers by a long way.

    You know, I wonder if this is a key insight. TrollTech have a big financial incentive to make a toolkit that is really nice - for developers. Most of their licensees I'd guess are developing custom apps in industry, not for mass usage by the public. Features that appeal to users therefore don't get priority, because users don't buy their software - developers do.

    Maybe this is why GTK+ has been getting more user-oriented features lately like a new file picker, double-buffering, stock artwork and so on: these help the developer but not as much as they help the user.

    I think TrollTech need to be careful here. If they focus only on adding developer sugar like foreach macros and (slow) XML parsers they could end up alienating users and by implication (though it may be hard to see) developers.

  80. Re:Its obvious why QT is better than Java by benhaha · · Score: 1

    +1 Funny anyone?

    An on-topic joke, methinks.

    --
    NO ID: BEING FREE MEANS NOT HAVING TO PROVE IT
  81. A newbe question by Anonymous Coward · · Score: 0

    If I write something for Windows, I create a .exe and I can use it on any Windows machine.

    If I write something in Java, then almost any machine with a browser can run it.

    What about QT?

    How does QT relate/compare to TCL/TK?

    I switched to Linux about a year ago and started writing in Python because someone at Sun said it was better than Java. The dependancies drive me nuts and I haven't worked out how to share my stuff (except, of course, that I can create .exe files for Windows).

  82. Re:spoNge by Anonymous Coward · · Score: 0

    Er... markov chains? Tweak them a bit more :)

  83. Nope by Sunnan · · Score: 1

    The code in scheme is:

    (for-each process list)

    and in CL

    (mapc process list)

    In CL you may want to use the function cell:

    (mapc #'process list)

    It depends on what type of process it is.

  84. Smaller and faster by mnmn · · Score: 1

    Nothing in the new feature list excites me as much as the smaller and faster part. I enjoyed using QT because it was simpler than MFCs, and was pretty fast, but recently Ive found wxwindows and fltk to be smaller/faster than QT. I know wxwindows binaries are huge, but in memory, theyre smaller, and along with FLTK are faster too.

    Now if only they'd release GPL or otherwise a free version for win32. A lotta people like me have to develop the app and present it in half-developed form to management to earn the requisition for the $$$. The demo version cannot be downloaded anymore, so I'll pretty much have to start with wxwindows from now on.

    --
    "Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
  85. Going to be VERY BLUNT!!! by SerpentMage · · Score: 1

    Hmmm, off shore.... Hmmm.....

    I kid you not. Could it be that BECAUSE people thought, Ahh 3K noise in contrast to wages and software, that we have an off shoring issue?

    Having gone through the manager cycle the problem is not the single costs, but the package. And if you can save anywhere then as a manager you do it. Hence why off shoring is so interesting to many companies.

    The reality is that people and software companies have to start thinking differently since the "ol" days of charging an arm and leg have disappeared.

    --

    "You can't make a race horse of a pig"
    "No," said Samuel, "but you can make very fast pig"
    1. Re:Going to be VERY BLUNT!!! by brunes69 · · Score: 1
      If you a decent manager you would realize that this saves you money, not costs you money.

      See . http://slashdot.org/comments.pl?sid=104566&cid=890 7152

  86. nah, we actually get laid. by Anonymous Coward · · Score: 0

    Americans, unlike European contries, do not suck cocks. America gets pussy. Lots of warm pussy.

    1. Re:nah, we actually get laid. by Anonymous Coward · · Score: 0

      >Americans, unlike European contries, do not suck cocks. America gets pussy. Lots of warm pussy.

      Dream on, boy!

  87. Screenshots? by pen · · Score: 1

    I've been clicking around this article for a few seconds now, and I don't see any screenshots... What's the point of this article? ;-)

  88. Re:Ack by Anonymous Coward · · Score: 0

    Uh, parent is Off Topic or Funny, not Troll.

  89. typeof() is compile-time by MenTaLguY · · Score: 1

    It requires run-time type information

    As another poster pointed out, typeof() is evaluated at compile-time, not runtime.

    --

    DNA just wants to be free...
  90. 4? by Anonymous Coward · · Score: 0

    I thought Apple was up to QT 6 now, with 7 just around the corner?? What up?

  91. LOL... so true. by Ayanami+Rei · · Score: 1

    It's too bad it didn't pan out that well.

    --
    THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
  92. Re: Now all KDE devs have to do... by symbolic · · Score: 1

    ...is think before implementing. Not all of them, of course, because there *is* some very decent software on the KDE/Qt side. Just the same, I *still* see things that leave me wondering, "What were they thinking?" My current pet peeve is the way that the Bookmarks menu in Konqueror is handled. If you have more items in the menu that will fit into a single column, instead of scrolling, it spills over into another column, blocking any menus to the right, and hijacking a good portion of the screen.

    While I realize that there are several issues to contend with here, this, at least in my opinion, is not the answer. KDE/Qt is polished, and offers a great deal of flexibility. Even so, developers still need to use that flexibility wisely.

  93. Question by bonch · · Score: 1

    If you take the GPLed QT code and port it yourself to Windows using the GPL license and call it "FreeQT," would TrollTech sue you?

    At the end of the day, I put my stuff out under the BSD license--the GPL imposes restrictions that, in my opinion, contradict the definition of being free.

  94. Re:Condi... by Anonymous Coward · · Score: 0

    Watch out... some apes can carry diseases like AIDS.

  95. Re:Cheney wants to strip US citizens of their righ by Anonymous Coward · · Score: 0

    Dick Cheney is a washed up old cretin who by all rights should be long dead, he can't dodge that coffin for much longer though, and a (hopefully) long and excruciating death is just around the corner. Worms and maggots will be chewing on his boney unappetizing corpse long before 2008 has come and gone.
    I almost wish I was a christian, then I could be smug in the knowledge that old Dick will be spending the rest of eternity off in hells weeds.

  96. Re:Trolltechs license is great I don't think so by LWATCDR · · Score: 1

    It is impossible to write a GPL program and release it under Windows under Tolltech's license using the latest QT library from Trolltech.
    You could maybe port the GPL'd Linux version to Win32 with a lot of effort maybe....

    I keep people ranting about free software and freedom. Isn't it odd that people praise Trolltech for supporting free software but they do not allow programers freedom of choice when it comes to what OS they write for?

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  97. Not if you do the math by brunes69 · · Score: 2, Insightful

    2000 * 4 developers = 8,000.

    8,400 / 120 = 70

    4 Developers * 30 / hour = $120 / hour

    Even if using QT only saved you 10% of developer time ( and from my experience it saves you more like 25%-50% ), it would pay for itself after only one and a half weeks. After one and a half weeks you are making pure profit.

  98. Re:Trolltechs license is great I don't think so by teprrr · · Score: 1

    From the interview of Trolltech's guys:

    PF: Now, a question that everybody has been asking: Why isn't there a GPL version of Qt3 for Windows?

    EE (laughing): As some people mentioned on the dot, it has partly to do with finances, sales and Trolltech's business model. Another point is the fact that Windows is a closed source Operating System. There is no community for Free Software development under Windows. The situation is very different from Linux, as you know. On Windows development usually happens as shareware or commercial software and we don't see that community evolving into producing Free Software.


    Hope this clears the situation a bit :)

  99. Re:Trolltechs license is great I don't think so by LWATCDR · · Score: 1

    Yes. GT3 is not free software as in free speech unless you write on Linux. I have seen that no community line before and it is a load of Monkey Muffins. If you want proof that it is a lie look at the very question you posted...
    "PF: Now, a question that everybody has been asking: Why isn't there a GPL version of Qt3 for Windows?"

    If everybody is asking I would guess that there is a communit for Free Software development under windows otherwise no one would be asking!

    The situation is very clear. QT is not free as in speech or free as in beer.
    It looks like a good lib and most likely worth the money but it sure as heck is not free.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  100. Re:Trolltechs license is great I don't think so by teprrr · · Score: 1

    GT3 is not free software as in free speech unless you write on Linux.
    ... or Mac.

    I don't comment about the "everyone" thing, but can you point out some big OS projects on Windows? Anything as big as KDE? I can't remember, but please tell me some big projects and communities if there's such. Do they do cross-platform stuff too?

    QT is not free as in speech or free as in beer. So what do you mean with free? Isn't Linux kernel free as it isn't licensed under BSD/LPGL license as you're trying to tell me or what?

  101. Re:Trolltechs license is great I don't think so by LWATCDR · · Score: 1

    I did not use the term everyone. The person from OS news said everyone. As to a list of large OpenSource projects on Windows well there are a few and have been listed before. They do tend to be cross platform as well.
    OpenOffice
    AmiWord
    Mozilla
    Emule
    Virtua lDub
    GAIM Yes they have a windows version.
    FireFox
    Thunderbird
    Fillzilla
    Apache
    Perl
    Netbeans
    Eclipse IDE

    Not to mention almost all of the GNU tools.

    Yes almost all of these run under Linux as well but there are windows ports of them as well. The Linux kernel is free by every standard I can see I am not into the whole BSD/LPGL/XYZ wars. I do not even really have a problem with the way Trolltech sells there software. I only have an issue with it being called free.
    How can it be free if it is practicaly impossible for me to write GPL software using QT for Windows?

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  102. Re: Now all KDE devs have to do... by Deraj+DeZine · · Score: 1

    That's interesting because I would prefer to not have scrolling menus because I don't like waiting for them to scroll. Multiple columns is faster than a single scrolling column and makes sense when the columns aren't wide.

    --
    True story.
  103. OCAML! by Andor · · Score: 1

    The OCaml variant of the very strongly typed languages of the ML family is not only extremely elegant, like Lisp and Scheme, but is extremely fast.

  104. Re:Trolltechs license is great I don't think so by arkanes · · Score: 1

    This is a ridiculous question - there's plenty of cross-platform OS applications. None of them use Qt, because you can't reasonably write cross platform, open source applications in Qt that target windows - anyone who wanted to use your app there would need a Qt license. So of course you don't see "demand" for cross platform apps if you're Trolltech - anyone who writes open source code with your toolkit has already given up on porting to Windows. People who want to write cross platform apps use other options.

  105. Syntax highlighting seems ok by spitzak · · Score: 1

    In my main software project I have used a very specific "foreach" macro (it only works with a single type that we use a lot). Whether this is a good idea or a bad one, I have not had any problems with syntax highlighting or automatic indentation, in Emacs and in several IDE's.

  106. Re:Trolltechs license is great I don't think so by teprrr · · Score: 1

    Well yes, but the main point was how strong the opensource community is there in Windows base..

    AFAIK only eMule and VirtualDub are the ones which are developed mainly by Windows users/developers. Others are mostly used and developed under some *NIXes, but fix me if I'm wrong.. That's only what I think about those.

    For an example, I think Apache httpd was first written to *NIX and then ported to work on Windows.. Can you give me some apps which are done by the opposite way?

  107. Re:Trolltechs license is great I don't think so by LWATCDR · · Score: 1

    From what I hear most FireFox developers are on Windows.
    The main point is that you can not write GPL sofware with QT3 for the Windows Platform. You can with GTK.
    What I have a problem with is not that TrollTech is limits what people can do with their software. They wrote it they can do what they like. What I have an issue with is them lieing about it.
    Truth. Our libs are open source under Linux but we plan on making a pile of money selling it to Windows programmers. It ain't Free as in speech or beer unless you are runing Linux/BSD.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.