Slashdot Mirror


C++ GUI Programming with Qt 3

Alex Moskalyuk writes "Before Sun monopolized the notion of 'write once, run everywhere,' those who enjoy programming in C++ had the choice of using Qt libraries that provide cross-platform GUI support. C++ GUI Programming with Qt3 is written by the employees of TrollTech, the company that created and currently distributes the Qt environment." Read on for the rest of Alex's review. C++ GUI Programming with Qt 3 author Jasmin Blanchette, Mark Summerfield pages 464 publisher Prentice Hall PTR rating 9 reviewer Alex Moskalyuk ISBN 0131240722 summary Practical introduction into GUI programming with Qt

The first question that came to mind when I got this book - is there any need for it? Qt's Documentation is detailed and extensive with how-to's and an API reference available online for free. I have done GUI development in .NET (with C#) and Tk (with Perl) environments, and even though I've never tried Qt, the site with tutorials looked like a sufficiently good resource to start.

However, after getting through the first few chapters, religiously trying out the code, my opinions on whether a separate book is needed have changed. Jasmin Blanchette and Mark Summerfield's book can take a sufficiently clueless newbie with some C++ knowledge and guide him through the intricacies of GUI building, providing practical advice and some bits of experience on the way. You learn about the practicality of this book by turning to page 3 (with page 1 being the title) and seeing a code example as the second paragraph of the first chapter. Writing a basic GUI application in C++/Qt is attractively easy, to win you over and make you read the rest of the chapter, as well as finish the basic introduction by creating a windowed application with SpinBox and Slider widgets.

The table of contents is available on the publisher's Web site and looks fairly simple. Each chapter takes about 20-30 pages, with screenshots and code examples provided as part of the text. Reading the first 5 chapters, which comprise the "Basic Qt" section and take up 110 pages, should be enough for any C++ developer to build a sufficiently complex GUI application if all that's required is some graphical interface slapped on top of the functionality that's already there.

The rest of the book -- "Intermediate Qt" chapters -- take the reader into the common problems of GUI development, providing some insight into more advanced topics as well. Supporting networking, working with graphics and images, internationalization of the software application, interacting with help, reading XML through SAX and DOM APIs, accessing databases and doing inter-process communication are all covered here. The authors tended to avoid inserting huge amounts of reference material into the book, and, for example, in the XML chapter when working with Unicode you will be told to go online and download the numeric values of the Unicode characters instead of dedicating valuable book pages to it.

The language of the book is simple to follow; there are plenty of code examples (with discussion following each), and when the authors make certain choices, they also explain why. The diagrams and screenshots are clear (although not in color), and the code examples can be easily separated from the text. This is the first official TrollTech guide to Qt 3.2 programming, and the authors promise that the techniques will work with Qt 4.

Perhaps part of the positive impression that this book left is the fact that programming in Qt is easy and straightforward. At the early stages of my education, I started learning GUI programming with MFC, which left an indelible image of complexity and will probably increase psychiatrist bills in the future (to be fair to Microsoft, Windows Forms with .NET is a huge step forward). The book and the Qt library made some complex things sound quite simple and enjoyable to program. As Matthias Ettrich notes in the foreword to this book, the most important point in reasoning why Qt is so popular is "because programmers like it."

The book comes with a CD that contains non-commercial version of Qt 3.2 for Windows/Mac/Linux, Borland C++ 5.5 (Non-Commercial) and trial version of Borland C++ 6.0 compilers, SQLite database engine and book source code. The non-commercial version of Qt 3.2 for Windows can be installed for Borland C++ 5.5, Borland C++ 6.0, Microsoft Visual C++ 6 and Microsoft Visual C++.NET environments. The examples are quite conveniently located in folders with chapter numbers, followed by subfolders with example names.

Whether you're looking for general introduction to GUI development with C++ or trying to learn Qt, having worked with other libraries and toolkits before, this book is a good source of practical information and reference. The book is part of Perens' Open Source Series.

Alex Moskalyuk enjoys reading and reviewing books on programming and tech industry in general. You can read his other reviews on his personal site. You can purchase C++ GUI Programming with Qt 3from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

428 comments

  1. non commercial QT? by msh104 · · Score: 2, Interesting

    a non commercial version for windows? I thought there wasn't a non commercial version of qt for windows.

    1. Re:non commercial QT? by Dave_bsr · · Score: 2, Informative

      You can use QT as long as your applications are non-commercial, as I recall. You could always RTFL - Read teh Friendly License.

      --


      Who is this Anonymous Coward character, how does he post so much, and why is he always such a whore?
    2. Re:non commercial QT? by Keith+Russell · · Score: 4, Informative
      I thought there wasn't a non commercial version of qt for windows.

      There was, then there wasn't, now there is again. Trolltech withdrew the old non-comm version late last year because it was based on 2.3, and every other supported platform/license combination was on 3.x. The book includes a non-commercial version of 3.2 for Windows.

      --
      This sig intentionally left blank.
    3. Re:non commercial QT? by arkanes · · Score: 2, Informative
      It's worth noting that the non-commercial versions are binary-only. Not an issue for many people, of course, but I like having source code for my libraries (if only because I like to know whats going on if something doesn't work).

      Also, this non-commercial version does not appear to be available on the Trolltech website, so you'll need to get the book (and the text of the license for it doesn't appear to be available either, although I'd assume it's similiar to the 2.3 non-comm license).

    4. Re:non commercial QT? by Anonymous Coward · · Score: 0

      http://kde-cygwin.sourceforge.net/qt3-win32/

      Basically, they are taking GPL'd QT3 libs for linux and porting them to Windows.

      This avoids the license problems entirely.

    5. Re:non commercial QT? by IceFox · · Score: 1
      I can too! There is a difference between commercial and propriatery. You can sell GPL'd code all you want. (Why is this even brought up anymore, wasn't this beaten dead back in 1998? hehe those were some flame wars!)

      -Benjamin Meyer

      P.S. If anyone wants the Source code to Qt I am selling a GPL'd version for $1000 a copy (burned onto a DVD-R!). Just e-mail me.

      --
      Do you changes clothes while making the "chee-chee-cha-cha-choh" transformation sound?
    6. Re:non commercial QT? by pclminion · · Score: 0, Informative
      You can use QT as long as your applications are non-commercial, as I recall.

      You recall wrong. There is no free Windows QT, even for non-commercial purposes.

      I complained about this years ago to TrollTech, and the response was "Why the hell would anyone want to create free Windows software?"

      A non-commercial, free license for Windows QT is not forthcoming.

    7. Re:non commercial QT? by baxissimo · · Score: 2, Informative

      Then what do you call this ?

      It's not libre free, but beer free. And it's old as hell. But the poster was correct that there is a "non-commercial" version for windows that's freely available. Be warned though that Trolltech's definition of "non-commercial" is rather peculiar.

      I'm wondering if they'll make this new non-comm 3.2 edition similarly available.

      In the meantime I continue to happily use FOX.

    8. Re:non commercial QT? by Anonymous Coward · · Score: 0

      Why use FOX when you can use GTK2. I suppose if you really can't stand programming in C instead of C++ than you're stuck? Excellent Gtk2 for Win32 stuff here. Not to mention that many Linux users will already have GTK2, whereas there are very few apps that I'm aware of that depend on FOX-- and zero desktop environments being pushed by the corporate types.

    9. Re:non commercial QT? by Capt.+Beyond · · Score: 1

      ummmm. most of the source code IS available in the free version. The difference between the free linux version source and the windows source are a few files.

      --
      -- "Perceptions create reality. By changing your perceptions you change your reality."
    10. Re:non commercial QT? by pclminion · · Score: 1
      I stand corrected. I asked TT about it back in 2001, I think.

      And they don't make that page easy to find -- no link to it from the licenses page. How did you find it?

    11. Re:non commercial QT? by baxissimo · · Score: 1

      Is GTK for Win32 actually viable now? All the rumors I've heard up till now is that it doesn't really work quite right on Windows yet. ... Oh and yeh, I can't stand writing GUIs in C.

      Well anyway there's no one-size-fits-all toolkit. You've gotta pick what's right for your requirements. They all have pros and cons. FOX has a good mix of what I want: flexibility, ease of coding, cross-platform support, attractive GUI, OpenGL support, and freeness. It doesn't have quite the wide support of advanced features that wxWindows or Qt have, but I find it easier to work with than wxWindows, and it's definitely got fewer licensing issues than Qt.

    12. Re:non commercial QT? by baxissimo · · Score: 1

      How did you find it?

      The search box. :-) Search for "non-commercial".
      I think you're right, though, they have basically removed all the direct links to that page. I certainly couldn't find one anywhere. Maybe they don't even mean for it to be findable via search.

    13. Re:non commercial QT? by Anonymous Coward · · Score: 0

      Sure, I'll buy the source code for Qt/Windows for $1000.

    14. Re:non commercial QT? by Anonymous Coward · · Score: 0

      >What is this?
      It's qt 2.3

      QT 2.x is available in non commerical form for windows. 3.x is not.

    15. Re:non commercial QT? by Anonymous Coward · · Score: 0

      Except that it uses Cygwin, a different problem entirely. I'll complain here 'cuz I can: I don't like making the few win32 apps I have to code use cygwin. I like native if possible. QT3/Win32 non-comm non-cygwin will make me happy. When I have to release commercially, I'll buy the license and re-link.

    16. Re:non commercial QT? by Trejkaz · · Score: 1

      For the benefit of those of us who can't be bothered wading through Trolltech's site, what is the license on this new "free" version? GPL?

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    17. Re:non commercial QT? by arkanes · · Score: 1

      The Qt non-commercial addition does not come with source files. It includes header files and a runtime binary. You cannot re-create that binary from the GPLed sources. By no reasonable standard does the existence of source for the GPLed version equal source for the non-commercial Windows version.

    18. Re:non commercial QT? by ebassi · · Score: 1

      Is GTK for Win32 actually viable now?

      The stable releases (2.0.x/2.2.x) are pretty much usable under win32.

      Oh and yeh, I can't stand writing GUIs in C.

      You don't have to "write GUIs in C": just use one of the bindings (C++, Python, Perl, ...).

      --
      You can save space. Or you can save time. Don't ever count on saving both at once. -- First Law of Algorithmic Analisys
    19. Re:non commercial QT? by rhabacker · · Score: 1

      A non-cygwin based qt3-win32 alph release will be available in the next time.

      Ralf

  2. Qt != write once, run anywhere by vocaro · · Score: 5, Insightful
    Actually, Qt is "Write once, compile anywhere".

    Java class files are fundamentally different because you actually can run them anywhere without recompiling.

    1. Re:Qt != write once, run anywhere by FortKnox · · Score: 5, Insightful

      Before Sun monopolized the notion of 'write once, run everywhere,'

      This line was put up front for one reason. Kick dirt on java to attempt to get the C++ coders respect up front so they'll read my review.

      Notice how Java reviews don't start with "since C++ requires so much double checking and almost certain memory leaks..."

      Just another flame war awaiting to happen.

      --
      Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
    2. Re:Qt != write once, run anywhere by Simon+(S2) · · Score: 1

      Java class files are fundamentally different because you actually can run them anywhere without recompiling.

      actually java classes are recompiled on every platform, every time you run them.

      end of nitpick.

      --
      I just don't trust anything that bleeds for five days and doesn't die.
    3. Re:Qt != write once, run anywhere by MrBlue+VT · · Score: 4, Informative

      Actually, no they aren't. Java source code is compiled to byte code once. From then on that byte code is read by the Java Virtual Machine and executed. The JVM does do some JIT compiling, but it would be wrong to state that you have to recompile every time you run an application.

    4. Re:Qt != write once, run anywhere by wurp · · Score: 1

      Only if you have jit active (which, I'll admit, it is by default in modern JVMs).

    5. Re:Qt != write once, run anywhere by FortKnox · · Score: 0, Offtopic

      Aye, it was bad to nitpick in a place like this. What you say is correct with the only stipulation being jsps.

      Using most app server default settings (you can set them to precompile the pages when you startup), JSPs are compiled the first time any user hits the page (meaning the first time any person ever hits the page, its compiled, everytime after that, the appserver uses the compiled version unless the jsp code has changed since the last compile). But I'm sure this isn't what he meant when he said java files are compiled on each platform.

      --
      Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
    6. Re:Qt != write once, run anywhere by Anonymous Coward · · Score: 1, Informative

      actually java classes are recompiled on every platform, every time you run them.

      Not every time. At least with the Hotspot compiler. The n-th time a method is run it is identified as a target for optimization and the bytecode internally recompiled by the JVM. Until then the bytecode is interpreted.

      Your statement is true for the older JIT which is used for the .NET architecture.

      end of nitpick.

    7. Re:Qt != write once, run anywhere by Simon+(S2) · · Score: 1

      it would be wrong to state that you have to recompile every time you run an application.

      how do you think is the bytecode executed by the JVM? just automagically the cpu understands java bytecode? The JVM acts as an interpreter between the Java code and a clients operating system, and compiles the byte code (usually .class) files into something the OS, or the platform it runs on, understands.

      well... i think it depends on what you mean with "compile"...

      --
      I just don't trust anything that bleeds for five days and doesn't die.
    8. Re:Qt != write once, run anywhere by MrBlue+VT · · Score: 1

      Yes I guess it does depend on your definition of compile. But most of the time I've heard it termed "interpert", because you aren't really generating an output as you would when you compile code.

    9. Re:Qt != write once, run anywhere by kmonsen · · Score: 1
      It does not depend on the difference of what you mean with compile.

      Interpretted languages are interpretted at run-time, while compiled languages are compiled before they are run.

      Just In Time compiling is depending with what you call compile, but Java programs can be run in fully interpretted mode.

      What is important here is that a QT binary will not run on other platforms, and it might recompile if you are lucky. A pure Java program on the other hand will run on any platform you can find a certified JVM. This is a very big difference.

    10. Re:Qt != write once, run anywhere by Kenja · · Score: 0, Offtopic

      Not true in fact. JSPs tend to be compiled once on the server unless they have self generating data that needs to be recompiled. Most JPS servers have a bunch of cached class files that are the results of the JPS pages being run for the first time. In fact, the JSP site tends to run REALY slow until these class files are generated as compiling for each client on each page takes up a LOT of CPU time. The last large JPS project I worked on had an automated testing script that would go through and hit each page to generate the compiled code before we would release a new version. Granted I think there are some better methods to do this these days but JSP is somthing I've been unable to keep up with.

      --

      "Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
    11. Re:Qt != write once, run anywhere by Mr.+McGibby · · Score: 1

      Java class files are fundamentally different because you actually can run them anywhere

      This should say "you pray that you can run them anywhere"

      Just a correction.

      --
      Mad Software: Rantings on Developing So
    12. Re:Qt != write once, run anywhere by MillionthMonkey · · Score: 0, Offtopic

      Aye, it was bad to nitpick in a place like this.

      Indeed...

      JSPs are compiled the first time any user hits the page (meaning the first time any person ever hits the page, its compiled, everytime after that, the appserver uses the compiled version unless the jsp code has changed since the last compile). But I'm sure this isn't what he meant when he said java files are compiled on each platform.

      What you say is true for servlets. For JSP you're leaving out a step (or implying it when you say "compiled") unless JSP has changed since I last used it in 2000. The sequence is JSP -> .java file -> .class file -> hotspot internal recompile. The .java file is what is generated on the first page hit and you can find it in a directory maintained by the app server. (It defines a class extending HttpServlet.) A lot of times I had to figure out why a JSP wasn't behaving correctly by checking its .java source file to see what was in it.

      You can read it, but it's really unfit for human consumption.

    13. Re:Qt != write once, run anywhere by haystor · · Score: 1

      A pure java program runs on the JVM. Any other platforms?

      C++ requires a compilation for each platform. Java requires an installion of a whole other set of programs and libraries for each machine.

      --
      t
    14. Re:Qt != write once, run anywhere by zarr · · Score: 1
      "you pray that you can run them anywhere"

      So true, so tragically true...

      I can pretty much guarantee you that any given project of a certain size and complexity will not Just Run on a new platform.

      Ah, the delights of subtle differences... :)

      zarr

    15. Re:Qt != write once, run anywhere by kmonsen · · Score: 1
      You are changing the definition of a platform, and doing it on purpose. But let me try a different statement.

      A pure Java binary (class file) can be run without compilation on many different platforms (Linux, Solaris, Widows, Mac, etc), is this true for a compiled C++ program?

      This is not about which language is better, but the definition of Write Once, Run Anywhere. Java is clearly more suited to WORA than standard C++ since it compiles to a format different from the platforms standard format.

    16. Re:Qt != write once, run anywhere by ajs318 · · Score: 2, Informative

      You're both right and you're both wrong. Even machine level instructions are interpreted. The op-code bits are expanded by a logic array to control the arithmetic and logic unit and the latches at its inputs and outputs. So you could say that there is no such thing as a compiled programme, because it still gets interpreted at some level -- even if that's the level of those AND, OR and NOT gates you spent a whole year on in O-level computer studies.

      The Java Virtual Machine is essentially an interpreter, but what it interprets is designed to be read by a machine and so sacrifices human readability. It would be perfectly possible in theory to design a processor core which executed Java Bytecode natively, and if such a device existed then the JVM would be an emulator for it.

      It also depends on how statefully the interpretation is carried out. Some 8-bit BASIC interpreters were next to stateless, interpreting a programme on a line-by-line basis. This was a necessity when memory was limited and secondary storage was slow. Modern scripting languages such as Perl and Python -- and for that matter, the later Microsoft BASICs -- keep much more state information, almost performing a full compilation.

      --
      Je fume. Tu fumes. Nous fûmes!
    17. Re:Qt != write once, run anywhere by ClosedSource · · Score: 1

      Actually, for compiled languages it's "Write once, compile for the target platform if a compiler exists for it, run on the target platform"

      Java is "Write once, and if a JVM exists on a particlar platform, run"

      Note that the term "anywhere" is not appropriate for either case since there are many platforms that have neither a compiler nor a JVM.

    18. Re:Qt != write once, run anywhere by haystor · · Score: 1

      Then it should properly be "Compile once, run anywhere."

      But it is not. I would suspect that "write once run anywhere" deliberately muddies the water to make it appear that other languages *must* require rewriting before being run on another platform.

      Perhaps "write once, interpret anywhere" would be more appropriate since a JVM must be present.

      In either language, a program need only be written once. One language requires preparation for every target platform and the other language requires preparation of every target machine.

      I could compile once with just about any language and just make a requirement that each machine runs an emulator. Would that make it cross platform? I fail to see how that is different than requiring a JVM be present.

      --
      t
    19. Re:Qt != write once, run anywhere by Jason+Hood · · Score: 0

      ERRRR!

      Wrong answer, they are interpreted on every platform, not recompiled.

      --
      Are you intolerant of intolerant people?
    20. Re:Qt != write once, run anywhere by vocaro · · Score: 1

      Actually, for compiled languages it's "Write once, compile for the target platform if a compiler exists for it, run on the target platform"
      Java is "Write once, and if a JVM exists on a particlar platform, run"

      Well yeah, I thought that was obvious.

      Note that the term "anywhere" is not appropriate for either case since there are many platforms that have neither a compiler nor a JVM.

      Huh? I can't name a single platform for which no C++ compiler is available. Okay, there may be a few esoteric embedded operating systems that only have C compilers, but they aren't "many". For Java, it's the same story: VMs are available on all Windows and Macintosh systems, and virtually all Unix derivatives. Even the Palm OS has a VM. That's leaves less than probably 0.01% of all systems out there, and I certainly wouldn't call that "many".

    21. Re:Qt != write once, run anywhere by prostoalex · · Score: 2, Informative

      You're over-analyzing it. I taught Java for two years and have used it professionally (although currently it's more of a C world for me), and frankly have little reason for bashing it.

      I just needed some opening line to introduce the concept of Qt's cross-platform nature. If the flamewar was the point, I'd post something like this.

    22. Re:Qt != write once, run anywhere by ClosedSource · · Score: 1

      Embedded systems outnumber all other types of platforms both in their diversity and in total number of units and many of them suppport neither C++ nor Java.

      In any case, the word "anywhere" means "anywhere" it doesn't mean 99.99% of systems. This is important because of the marketing hype and poor reporting of Java often described as a computer language that allows programs to run on any computer. This is not true and never will be.

    23. Re:Qt != write once, run anywhere by Trejkaz · · Score: 1

      Yeah, I always love it when someone posts a link which is bitching about Java 1.1 when Java 1.5 is just around the corner.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    24. Re:Qt != write once, run anywhere by Trejkaz · · Score: 1

      Practically every new mobile phone has a KVM. And JVMs which are much, much smaller in size than Sun's (like JamVM) look like the KVM limitation might not need to be around for much longer.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    25. Re:Qt != write once, run anywhere by Trejkaz · · Score: 1

      Actually hotspot is a mix of the two. It's interpreted until something has been run 'enough' for the JVM to care about compiling it. If everything were only interpreted, then Java would be slow at runtime (which isn't the case), and if everything were only compiled, it would be slow at startup (which isn't so much the case in 1.4.2 but still a bit of an issue.)

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    26. Re:Qt != write once, run anywhere by Anonymous Coward · · Score: 0

      > Qt is "Write once, compile anywhere".

      You're right, but I'll go further... Qt is
      not even 'Write once, compile anywhere' because
      the "toolkit" does not offer a lot functionality
      that you would need in all but trivial applica-
      tions. If you really think Qt is 'write once,
      compile anywhere' then please take the Linux
      release of KDE and try and compile and run it
      on WinXP with no changes. Further more, Qt has
      some very big negatives one of which is that
      Qt makes use of non-standard C++ containers.
      In addition when using Qt you are most likely
      going to end up tying yourself to the Qt toolkit
      forever and ever because of heavy reliance on
      Qt'isms (e.g. QString). When people talk about
      portability they often overlook something more
      important than cross-platform portability and
      that is vendor neutral portability. The truth
      is the more Qt you use the *less* your code
      becomes portable, and that's the way trolltech
      *wants* it. They *want* to lock you in. Finally,
      a little rant. I find the idea of using a cross-
      platform GUI toolkit as the *native* X window
      system to be somewhere between laughable and
      disgusting.

    27. Re:Qt != write once, run anywhere by Slime-dogg · · Score: 2, Insightful

      More like poor coding techniques lead to double-checking and memory leaks. If you force yourself to be strict with your coding style, then you'll find that only on the rarest of instances would you run into memory leaks.

      Too many people are lazy coders, and this has led to a number of leaks, overruns, yada yada yada.

      --
      You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
    28. Re:Qt != write once, run anywhere by vocaro · · Score: 1

      Embedded systems outnumber all other types of platforms both in their diversity and in total number of units and many of them suppport neither C++ nor Java.

      True, but those embedded systems you are thinking of would have no use for Qt to begin with. For instance, if you cannot put a windowing interface on a device -- many embedded sytems don't have a display -- then you have no need for Qt. So I think it's a moot point.

      In any case, the word "anywhere" means "anywhere" it doesn't mean 99.99% of systems.

      Well, of course not. When we say "run anywhere", we mean "anywhere that can run C++" or "anywhere that can run a VM". That's a given, right? I was just trying to say that "Write once, run anywhere" means two very different things for Java vs. Qt. I didn't want to turn this into a discussion of Sun's marketing tactics, otherwise this thread would never finish.
    29. Re:Qt != write once, run anywhere by ClosedSource · · Score: 1

      "When we say "run anywhere", we mean "anywhere that can run C++" or "anywhere that can run a VM". That's a given, right?"

      So, we can just drop the word "anywhere" completely and just use the word "runs" and everyone will understand what we are taking about.

      "I was just trying to say that "Write once, run anywhere" means two very different things for Java vs. Qt."

      I agree with you. While the net result may be similiar they are substantial differences in how you get there. A JVM has to run on the target, while a compiler does not (obviously the output of the compilation does have to run on the target).

    30. Re:Qt != write once, run anywhere by Anonymous Coward · · Score: 0

      Note that it's titled "java sucks", and begins with the words "I think Java is the best language going today".

    31. Re:Qt != write once, run anywhere by warrax_666 · · Score: 1
      Modern scripting languages such as Perl and Python -- and for that matter, the later Microsoft BASICs -- keep much more state information, almost performing a full compilation.


      That's a bit of an overstatement, at least for Python (and probably Perl as well). Python is nowhere near to being compiled when the interpreter loads a Python program. It is simply parsed into its basic syntactical elements -- no compilation takes place. This is mainly because of Python's highly dynamic nature which actually makes it impossible to "compile" Python code into anything other than an executable containing a Python interpreter (which would have to be there anyway for the eval() function to work properly) and a copy of the program.
      --
      HAND.
  3. C++ by nycsubway · · Score: 3, Funny

    C/C++ syntax has something going for it; it's very easy to program once you know the syntax. It is also very portable across different platforms. I assume that like many libraries, the functions can be called from a language other than C++, but isn't it cool that so much in the open source community uses a more or less common base language..

    _________________________________

    1. Re:C++ by scorpioX · · Score: 2, Insightful

      I'll agree with you on C, but C++ is an wieldy beast compared to the simple elegance of C. If you want to see what C++ should have been, take a look at Objective-C. A true object-oriented language that doesn't break C compatibility in subtle ways. And if the reviewer had ever used NeXT/Apple/GNUStep OpenStep API's, he'd be singing a different tune about how "easy" it is to program GUI code in C++.

    2. Re:C++ by FortKnox · · Score: 2, Insightful

      C/C++ syntax has something going for it; it's very easy to program once you know the syntax

      Umm, I'd say that's a loaded question. Any language is easy to code in once you know the syntax, its the higher thinking that's usually the hurdle, which is why I question why you lumped C and C++ together in your statement. C++ doesn't require you to use objects, but its the reason it was made, right? Someone that knows C and learns some of the C++ syntax and symbols (like the '>>' and such) can program C using C++, but actually writing C++ with classes and objects is much more than throwing code down. Understanding the principles of OO isn't something you just learn through syntax.

      I guess we can argue "programming" a language to mean anything from writing a hello world, to designing a million line enterprise-sized suite of applications, so its probably a perspective thing.

      Anywho, I find your statements are too broad and actually seem karma hungry or trollish.

      --
      Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
    3. Re:C++ by ENOENT · · Score: 5, Funny

      Yes, C++ is easy to program once you know the syntax. Unfortunately, even Bjarne only knows about 60% of the syntax.

      --
      That's "Mr. Soulless Automaton" to you, Bub.
    4. Re:C++ by __past__ · · Score: 3, Informative
      I completely disagree. C++ syntax is horribly complicated, with many corner cases (one could say the same about its semantics). Creating a correct C++ parser is damn hard, probably only Perl is as hard to parse correctly.

      And if its portability would be so great, why did complete, standards-compliant compilers only get available recently? Why do many projects choose not to use exceptions or even templates to avoid portability problems?

      Oh, and no, you cannot easily call C++ from other languages, unless you take the time to create 'extern "C"' wrappers for all functions, either manually or with some tool like swig. Otherwise name mangling, which is not standardized across implementations will bite you. You cannot even generally link two libraries compiled with different C++ compilers together.

    5. Re:C++ by happyfrogcow · · Score: 4, Insightful

      Why do many projects choose not to use exceptions or even templates

      This is due to the way C++ is generally taught or learned on ones own. Everyone and their mother seems to teach C++ as a C. They might throw in some small sections on classes and encapsulation, and if your lucky virtual methods. But STL? Exceptions? Christ, I didn't even know C++ had exceptions until way after I had read 2 different books on C++ and taken a C++ course. At that point, still no knowledge of C++ exceptions. Then I eventually bought "The C++ Programming Language" by Bjarne and have been completely enlightened by his examples and insight into the language.

      You can't learn C++ by reading K&R.

      Your other points are valid I think, I just wanted to make this point.

    6. Re:C++ by +GoatSeCxGoat · · Score: 0

      maybe that is because you are a dim bulb. you insignificant piece of turd. Sorry for that outburst. i sincerely aplogize

    7. Re:C++ by arkanes · · Score: 1

      This has alot to do with the lack of compliant compilers, too - exception behavior and especially template support was sporadic and very platform and version dependent. The situation is much better now and you're seeing more "correct" C++ code being used, although I agree that it's still largely taught as "C with objects". Not that "C with object s" is neccesarily a bad way to program.

    8. Re:C++ by Anonymous Coward · · Score: 0

      Otherwise name mangling, which is not standardized across implementations will bite you. You cannot even generally link two libraries compiled with different C++ compilers together.

      You're out of date. The Cross Vendor C++ ABI standardised all of this stuff a few years ago, and was a major focus of the release of GCC 3.x To the best of my knowledge many commercial compilers now support the ABI too, so you can for example build a C++ library with Intel ICC & link code compiled with GCC 3.3 to it.

    9. Re:C++ by Anonymous Coward · · Score: 1, Informative

      There is 2 ways of implementing Exceptions. Structured (SEH) and Exception handling.

      "structured exception handling" and "structured exception" (or "C exception") refer exclusively to the Win32 structured exception handling mechanism provided by Windows. All other references to exception handling (or "C++ exception") refer to the C++ exception handling mechanism. :D Just to add further confusion.

    10. Re:C++ by vurian · · Score: 2, Informative

      That's why I found Accelerated C++ by Koenig and Moo such a good book. It teaches C++ as a coherent language, instead of C with knobs on. On the other hand, it also tries to teach programming an sich, and does that with examples for which Python is better suited. The first edition of Practical C++ by Oualline is a prime example of a book that teaches C++ as a superset of C -- I don't know if the second edtion is as bad. C++ in a Nutshell is perhaps a little too concerned with the pure syntax of C++, and not enough with the meaning of those syntactical constructs.

    11. Re:C++ by Bruce+Perens · · Score: 3, Insightful
      I used to think C syntax was easy to understand, until I learned about "Duff's Device".

      Bruce

    12. Re:C++ by Anonymous Coward · · Score: 0

      add to this the non-standard C exceptions that come as vendor extensions (like __try, etc) and the (standard) setjmp/longjmp tricks - now how's that for more confusion?

    13. Re:C++ by jon3k · · Score: 1

      Someone that knows C and learns some of the C++ syntax and symbols (like the '>>' and such)

      Since when are the shift operators (">>" and "") C++ specific?

    14. Re:C++ by FortKnox · · Score: 1

      actually, the first thing I thought of was cout >> "blah"; not shift operators. Was a bad example.

      --
      Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
    15. Re:C++ by Anonymous Coward · · Score: 0

      templates are the plague of C++. The syntax is absolutely horrible. That's the success of K&R: They knew where to draw the line of what is part of the language and what is not. Serisouly, Bjarne has lost it for 15 years now. Go read the FAQ at
      http://www.research.att.com/~bs/bs_faq.html

      Doh. If you want ease use Python. C is a low level language just above assembly. C++ started out well, but the professors turned it into an abnomination.

    16. Re:C++ by Carewolf · · Score: 2, Insightful

      No the reason you didnt learn of exceptions, is to protect you. C++ exceptions are crippled bastards only their mother Bjarne can appreciate.

      If people in generel knew more of C++ exceptions, the C-trolls would have much more ammunition. It is better simple not to talk about them.

      The same goes partly for STL

    17. Re:C++ by Anonymous Coward · · Score: 0

      This is due to the way C++ is generally taught [...]

      I taught a university course on programming languages where we only had a few weeks for C++. The goal was to teach it for its own merits, not as an extension to C. The book "Accelerated C++" by Andrew Koenig and Barbara Moo was excellent. It uses the standard library from the beginning so you can do practical coding immediately. In particular, you get experience using templates and classes, before you need to create your own. Here's a good review of it.

    18. Re:C++ by Anonymous Coward · · Score: 0

      Why is a library of data types part of the language???

      Did K&R insert an implementation of a linked-list in the standard of C and demanded that everbody who used C MUST use THEIR library of the linked list?

      This is just promotion of "some people's" library. Imagine bjarne demanded that QT was part of the standard of the language...
      Then wxWindows and GTK wouldn't stand a chance against the pedants.

    19. Re:C++ by scotch · · Score: 1

      It's still the shift operator, it just happens to be overloaded for streams. You have your arrows backwards, too. Should be 'cout << "blah";'

      --
      XML causes global warming.
    20. Re:C++ by kscguru · · Score: 1
      I'm using Objective-C right now. Yes it's a true object-oriented language... but it throws out the most useful feature of C/C++: type safety! It's like C, except with LISP for function calls.

      I can see the utility of an OO language for GUIs. Really. But Objective-C still has C's memory-management ugliness (made worse, I feel, by reference counting), lacks C++'s type safety, and breaks countless conventions of other OO languages (the dot operator? C++ and Java at least?). I will admit the API is a lot cleaner, especially in comparison to either Win32 or MFC.

      I think I will have to go get this Qt book, since it's probably the cleanest way to get a GUI up on the screen. My bookshelf slowly expands...

      --

      A witty [sig] proves nothing. --Voltaire

    21. Re:C++ by FortKnox · · Score: 1

      eh, I always got those wrong. I haven't messed with C++ in years. Sorry for the bad examples.

      --
      Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
    22. Re:C++ by myzz · · Score: 2, Interesting
      The sorry thing about C++ programming is, that almost nobody knows enough about it to make it useful. It is a very powerful and efficient language for smart programmers, who know the whole C++ language and have learned how this can be used. Also, a standard C++ should be learned, not something that was done by C++ compilers ten years ago... C++ ten years ago was quite pathetic and not the same thing as current C++.

      Some points:

      • OO-programming and C++ classes.

        Everybody thoughs that C++ should be an OO language. C++ is quite bad about OO (as imho is also Java... the main Java advantage is having an inbuilt garbage collector, so you don't need to create you're own reference counting template or something similar, as in C++). OO wants more dynamically typed language than C++ and its alikes are. Statically typed OO problem is too much casting into derived types (dynamic_cast in C++ for example).

        The fact is that C++ "classes" are very good for almost anything else but OO in the classic sense (which uses class hiearchies). They are a great way to create a custom data types (about as some smart structs). They can be used for creating something like continuations and for giving some temporary "static" variables to some function group (which are then the class members).

      • Resource allocation is initialization. This shall be burned into every C++ programmers brain...

        If you have something that requires allocating resources and freeing them, it is usually good idea to put it into an C++ class and use constructor/destructor for allocating/freeing the resource. This is very useful together with objects put into stack - the resources are then automatically freed, when you leave the block.

        In a good C++ program you find very few explicit delete usage - and most of these delete's should be in some destructors.

      • Resources shouldn't be "owned" by alone pointers in stack. This creates exception nightmare, where you must use try-catch to free resources when exception comes. When pointers are in wrappers, everything is nice and exceptions cleanup by themselves (since all objects in stack will be destructed, when exception flies through).

        As a sidenote, the resource allocation is initialization thing is the reason why finally is left out of C++ language - finally is not needed when used resources are freed by stack object destructors.

      • Error handling should be done using exceptions in most cases.

        For some reason many C++ programmers ignore exceptions and make their lives hard with this. Since the STL (and new) uses exceptions you cannot avoid them anyway. Ignoring standard exceptions just leads to a flawed program. Inventing your own error handling instead of using exceptions is just an unnecessary additional work to recreate a feature that is inbuilt into language and leads usually to error handling code bloat.

      • C++ compiler creates a working copy constructors and assignement operators for you, when all your class members are value types. And any class with working copy constructors and assignement operators is a good value type for this.

        This is a very useful, but quite a few C++ programmers seem to know about it. It basically means that you may assemble you're data types with very few trouble. The fact that pointers are not a good value types in this context can be often over come using reference counting wrappers for them (but it is usually a good idea to threat these shared pointers as read-only, unless you implement copy-on-write in you're pointer wrapper).

      • Templates are one of the most useful C++ features, giving an ability to reuse code for different data types. STL is a fine example of template usage and libraries like Boost give an idea about what can be done with templates. It is often useful to create some template classes/functions for handling similar operations on different data types (and avoid things like void* and casting in the code).

      Sorry for bad spelling, I'm not a native english speaker.

    23. Re:C++ by f0rt0r · · Score: 1

      Hmm, even SAMS C++ programming covers exceptions, but I know what you are talking about. I have a few game programming with C++ books and almost everything is in C. Go figure.

      --
      I can't afford a sig!
    24. Re:C++ by ENOENT · · Score: 4, Funny

      I used to think that Perl's syntax was easy to understand, until I actually saw some Perl code.

      --
      That's "Mr. Soulless Automaton" to you, Bub.
    25. Re:C++ by r00zky · · Score: 1

      mmmmmm beer

      --
      I'm a chainsmokin' alcoholic sociopath, so-ci-o-path
    26. Re:C++ by b17bmbr · · Score: 1

      i'm not a c guru, nor even an obj-c guru. i have developed in java/perl/php for several years, and got into obj-c with jaguar/panther. but, memory management is a half-way proposition between c and java. to allocate in obj-c, all you do is this:

      NSObject obj=[[NSObject alloc] init];

      that's it. the compiler/runtime handles the necessary size, etc. and although you need to dealloc the object later, the runtime will kill the objects when terminated. though the program can still gobble up memory. and truthfully, the dot operator thing is not really improtant. it takes about a day to break the habit. the positives of obj-c far outweigh the negatives. seriously. apple's dev tools are nice, and i haven't played with VS.NET, but i'd bet compared to VS6, you can knock out apps a whole helluva lot faster in cocoa/obj-c than mfc/c++. i didn't say vb because that's what realbasic is for.

      --
      My problem? I was perfectly gruntled, until some numbnuts came by and dissed me.
    27. Re:C++ by mad.frog · · Score: 1

      Wow... I have the strongly disagree on both points here. C is definitely simple, but not elegant. Of course, C++ is neither, but I find it immensely more productive and reliable for real-world coding.

      Objective-C is, IMHO, an a poor compromise of a language, which extended C syntax to add object-orientation, but in a way syntactically bizarre compared to other C usage. Not to mention the fact that it hasn't even kept up pace with the C standard; last time I checked, using C99 code like

      for (int i = 0; i FOO; ++i) { ... }

      wouldn't compile (at least, using Apple's version of gcc), since it wouldn't accept the inside-the-parens var declaration...

    28. Re:C++ by mad.frog · · Score: 1

      > you cannot easily call C++ from other languages

      Agreed here. I find it truly sad that this wasn't a high priority of the standards committees and/or compiter writers from way back. It seems mind-boggling that some sort of Universal Wrapper Definition still doesn't exist for C++....

    29. Re:C++ by Unregistered · · Score: 1

      C++ has exceptions? I never knew that. Well, i'm back to there not being anything that I like better about Java then C++.

    30. Re:C++ by Anonymous Coward · · Score: 0

      > Why do many projects choose not to use
      > exceptions or even templates to avoid
      > portability problems?

      Probably because they've never bothered to
      learn about how to use them. C++ *is* a non-
      trivial language. It has a much bigger learning
      curve than 'C' but it also is much more "power-
      ful" than 'C'. C++ also allows you to write
      code which is more readable and understandable,
      epecially when coupled with the STL. The 'string'
      type alone makes your code much cleaner.

    31. Re:C++ by PissingInTheWind · · Score: 1

      "Duff's Device" isn't that bad, I actually find it somewhat beautiful. But I agree it's a nice puzzle the first time you see it.

      --

      A message from the system administrator: 'I've upped my priority. Now up yours.'
    32. Re:C++ by Anonymous Coward · · Score: 0

      If you actually tried to use C++ exceptions, you might well change your mind. I'm not the only one that finds Java exceptions vastly more consistent and useful, and I don't even particularly like Java!

    33. Re:C++ by mitch0 · · Score: 1
      Would you please explain? Why are c++ exceptions so bad, and what part of STL is just as bad?


      I admit, the template syntax is painful at times, but it works, and I do believe it'll get better. Take a look at boost.org, there they do a lot of neat stuff, and when they hit some barrier, those barriers will be dealt with in the next c++ standard. At least that's the point, as far as I know.


      I haven't used exceptions really in C++ (I've been doing java for some time now, and before that exceptions in c++ were not really supported), but I'm going to do some c++ development again for fun, and I'd really like to know what's wrong with exceptions. Thanks


      cheers,

      mitch

      --
      // "If human beings don't keep exercising their lips,
      // their brains start working." -- Ford Prefect
    34. Re:C++ by IamTheRealMike · · Score: 1
      This is due to the way C++ is generally taught or learned on ones own.

      The original question was rhetorical - the reason many large C++ projects like Mozilla don't use these features is because they aren't sufficiently portable between compilers: writing a good C++ compiler is so hard that almost nobody does it right. While the latest compilers for the major platforms (MSVC++7 and gcc) get it mostly right many others do not.

      It has nothing to do with the way C++ is taught, sorry, and everything to do with the language itself.

      Having said that of course, gcc is available everywhere so I don't have too much sympathy....

    35. Re:C++ by ajrs · · Score: 1

      so, in what computer language can you express "Duff's Device" so its easy to understand? In what other language can you express it at all?

    36. Re:C++ by jon3k · · Score: 1

      Again, the shift operators aren't specific to C++. They're basic bitwise operators, like &, |, and ^.

      I wouldn't DREAM of calling myself a C programmer (I'm still battling with advanced pointers, linked lists, trees, etc) and I'm well aware of the shift operators.

      Me thinks you haven't messed with C(/C++) EVER, let alone in years.

    37. Re:C++ by FortKnox · · Score: 1

      Again, the shift operators aren't specific to C++.

      Actually, my post read:
      actually, the first thing I thought of was cout >> "blah"; not shift operators. Was a bad example.

      Meaning that when I put >> in the example, I was thinking of the cout example, which immediately doesn't bring to mind bit shifting. I wasn't denying that it was a bitshift operator. I've bitshifted before, I just didn't think of it while writing the original post.

      Me thinks you haven't messed with C(/C++) EVER, let alone in years.

      I wrote a nice long, nasty reply to this, cause you just insulted me for some misunderstanding. In college, I used C++ exclusively. I used C a little on a few co-op jobs, but I'd never call myself a "C Coder". In fact, I'm so attached to object oriented design and development, I don't know if I could go back to something like C. I assure you that I have a Computer Engineering degree, and even used bitshifting on several complex assignments (like forcing alphabetic chars into unsigned longs for a midterm assignment in C++). In fact, I'll even help you out with advanced pointers, linked lists, and trees. I'm just more likely to code those datastructures in C++ instead of C.

      --
      Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
  4. Random mailings? by devphil · · Score: 1


    I got this book shipped to my door a few days ago.

    I never ordered it. Had never heard of it. Not really interested in GUI programming.

    Did the publishers just compile a list of people who know and talk about C++, and send them (us) free copies? Why? Do they hope we'll suddenly become interested enough to read a few hundred pages, because, hey, free book?

    --
    You cannot apply a technological solution to a sociological problem. (Edwards' Law)
    1. Re:Random mailings? by Anonymous Coward · · Score: 0

      I hope there wasn't any white powder in the package.

    2. Re:Random mailings? by Anonymous Coward · · Score: 0

      I hope there wasn't any white powder in the package.

      Hey, if they want me to write them a good review, they are going to have to include a little cocaine.

    3. Re:Random mailings? by Just+Some+Guy · · Score: 1
      Did the publishers just compile a list of people who know and talk about C++, and send them (us) free copies? Why?

      That's exactly correct - enjoy your free book! The publisher is hoping that you'll have the knowledge to be capable of writing legitimate review (i.e., not one of those OSNews "The background color is ugly!" jobs), and the gratitude to make it positive. It's standard operating procedure.

      --
      Dewey, what part of this looks like authorities should be involved?
    4. Re:Random mailings? by Anonymous Coward · · Score: 0

      Would you take $20 for it?

      Christopher Galtenberg
      nu_numina@hotmail.com

    5. Re:Random mailings? by adrianbaugh · · Score: 1

      Nah, there's some guy called deuphil who's beginning to get really angry aboutthe length of time his book is taking to arrive :-)

      --
      "'I pass the test,' she said. 'I will diminish, and go into the West, and remain Galadriel.'"
      - JRR Tolkien.
    6. Re:Random mailings? by Capt.+Beyond · · Score: 1

      You were shipped that book in error. Please ship it to me a.s.a.p.

      --
      -- "Perceptions create reality. By changing your perceptions you change your reality."
  5. Personally I like wxWindows by LordKazan · · Score: 5, Interesting

    I personally like the wxWindows library. It's fully object oiented and handles all default behaviors for you. It has a very easy to use message handling system and the documentation is excellent (but should include a screenshot of each control for quicker reference). I once wrote apps is pure win32 API.. *puke* [this was before I really got interested in linux] I now refuse to use anything other than wxWindows.

    Advantages of wxWindows:
    Fully Cross Platform
    Easy to learn API
    Object Oriented model is well suited to GUI construction - 1 class = 1 screen object

    You really should check it out - www.wxwindows.org

    --
    If you cannot keep politics out of your moderation remove yourself from the Mod Lottery.. NOW!
    1. Re:Personally I like wxWindows by 10Ghz · · Score: 3, Insightful
      Advantages of wxWindows:
      Fully Cross Platform
      Easy to learn API
      Object Oriented model is well suited to GUI construction


      Doesn't Qt have those same advantages?
      --
      Lesbian Nazi Hookers Abducted by UFOs and Forced Into Weight Loss Programs - -all next week on Town Talk.
    2. Re:Personally I like wxWindows by DAldredge · · Score: 4, Insightful

      wxWindows doesn't cost money if you use it in commerical apps.

    3. Re:Personally I like wxWindows by Anonymous Coward · · Score: 0

      I've been using wx for years now, and I've never found it lacking anything at all. Given that it exceeds all of my expectations, and that Qt costs me, I'll stick with wx. Kudos to the original poster who pointed out this good alternative.

    4. Re:Personally I like wxWindows by LordKazan · · Score: 2, Informative

      [for those who don't see it DAldredge mentioned what i forgot]
      like DAldredge said - wxWindows doesn't cost you money, ever. And your comment about "maybe you get what you pay for" is absurd.

      SciTech Display doctor was written using wxWindows - here is a screen shot: http://www.wxwindows.org/screen50.htm

      Even AOh3ll uses wxWindows in their apps

      --
      If you cannot keep politics out of your moderation remove yourself from the Mod Lottery.. NOW!
    5. Re:Personally I like wxWindows by Bruce+Perens · · Score: 4, Interesting
      I think we are going to have a wxWindows book by Julian Smart.

      Bruce

    6. Re:Personally I like wxWindows by arevos · · Score: 1

      wxWindows isn't as nice in my opinion, but it does have the advantage of running on windows without the need to get, or use, Visual C++.

    7. Re:Personally I like wxWindows by LordKazan · · Score: 1

      That would be awesome bruce. I would actually buy such a book. I rarely buy coding books anymore because i have the essentials - some good C++ references, including one that i can use to teach total newbies how to be good coders out of, and the man pages and cplusplus.com. Along with the individual libraries documentation (like wxWindows) If Julian makes a awesome set of docs for wxWindows then I may actually have another book to buy :D.

      As always bruce, thanks for your input.

      --
      If you cannot keep politics out of your moderation remove yourself from the Mod Lottery.. NOW!
    8. Re:Personally I like wxWindows by Anonymous Coward · · Score: 0

      Neither does Qt. Oh wait, were you confusing commercial with proprietary? The GPL is not non-commercial!

    9. Re:Personally I like wxWindows by tcopeland · · Score: 1

      Yup, and there are wrappers for it in a variety of languages:

      WxRuby
      WxPython

      Good stuff.

    10. Re:Personally I like wxWindows by Fourier · · Score: 1

      Don't forget wxPython, the mature and actively maintained Python binding. It makes GUI programming such a piece of cake.

    11. Re:Personally I like wxWindows by Jeremi · · Score: 1
      wxWindows isn't as nice in my opinion, but it does have the advantage of running on windows without the need to get, or use, Visual C++.


      Qt doesn't require Visual C++ either -- it also supports Borland's free C++ compiler, which my company has been using with good results for 2 years now.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    12. Re:Personally I like wxWindows by Anonymous Coward · · Score: 0

      Neither does QT if you use the GPL'd version.

      http://kde-cygwin.sourceforge.net/qt3-win32/

    13. Re:Personally I like wxWindows by Anonymous Coward · · Score: 0

      So.

      Why does everything have to be free? I have
      a feeling that the people who work on Qt have bills to pay too.

    14. Re:Personally I like wxWindows by Anonymous Coward · · Score: 2, Informative
      One major difference is that wxWindows creates native controls, not controls that just look like native controls.

      Turns out this can be good or bad, depending on your point of view. Personally, I think it's a good thing.

    15. Re:Personally I like wxWindows by red+floyd · · Score: 1

      Please, PLEASE, PLEASE!!!!!

      Pretty Please? Can we have that book?

      --
      The only reason we have the rights we have is that people just like us died to gain those rights. -- Cheerio Boy
    16. Re:Personally I like wxWindows by Anonymous Coward · · Score: 0

      Bingo.

      For our commercial, Free Software project (needs to run on Linux, Windows, MacOS), we evaluated:
      - GTK (problem: not C++)
      - GTKmm (problem: not yet ready for serious use on Windows and MacOS)
      - Qt (problem: we would need to pay because we are selling support for our app)
      - wxWindows (perfect!)

      wxWindows has 10 years of development behind it, and is completely and absolutely free.

    17. Re:Personally I like wxWindows by Falrick · · Score: 4, Interesting

      You're right, it doesn't cost any money to use in comercial apps, but after just finishing writing a comercial app using it, I feel that I can justifiably say, "You get what you pay for".

      I ported a Qt application to wxWindows because we couldn't afford to buy any more Qt licenses for more developers. Not much had been written in Qt, so it didn't seem like it would be a big deal. But man can I tell you that moving from Qt, where things just worked, to wxWindows was a pain.

      Things as simple as changing the mouse cursor didn't always work (yes, I submitted a bug report along with a fix). wxWindows enforces a particular widget hierarchy which also implies a line of communication (you always communicate up the widget stack through events, and down the widget stack through methods).

      The documentation was not always correct. And so far as being cross platform, a large number of widgets have comments along with them such as, "On Windows, feature X and Y are supported. Using GTK, only Feature X is supported.".

      Extending widgets is not as simple as it should be. I needed a toggle button with an image, so I derived a class from the toggle button class and added a handler for the paint event only to find that no paint event is generated or handled for the toggle button! How the hell it paints itself is beyond me, but placing the same paint handling code into a frame derived class worked fine. This kind of inconsistency drives a developer up a wall!

      Other anoyances include wxWindows changing the colors of my mouse pointers (if I wanted the foreground to be black, I would have made it black!) and the limitation of two color mouse pointers. I had full color mouse pointers in Qt so there should be some way of doing it in wxWindows.

      That being said, I did like some of the features of wxWindows. The event handler stack is a neat implementation and I ended up using it heavily. It was easy to add my own event types, though this is another case where some of the documentation is just flat out wrong.

      --
      something clever
    18. Re:Personally I like wxWindows by jag164 · · Score: 1
      Forgot to add:
      Still buggy.
      More difficult to get up and running on different platforms than, say java or Qt
      Python bindings are bad (not %100 implemented, little if any documentation that says so)
      Decent, but not a clean API

      To each his own, but after working with Qt and Java/Swing, I found wxWindows a very hackish UI toolkit. Not to say it doesn't do the job, but I wouldn't recommend it.

    19. Re:Personally I like wxWindows by Catskul · · Score: 1

      Wx doesnt have a (working) GUI GUI builder. When laying out an interface, writing it in code is just stupid. Therefore I use Qt because I have Qt builder which while not perfect, is very usable.

      --

      Im not here now... Im out KILLING pepperoni
    20. Re:Personally I like wxWindows by DAldredge · · Score: 1

      QT differs with you on that. They say you have to use buy a license if you use QT to make money.

      Are they lying?

    21. Re:Personally I like wxWindows by VisualStim · · Score: 2, Informative

      Take a look at wxGlade. It's a GUI GUI builder for wxWindows written in Python. It can write out Python, C++ or XRC (XML-like resource code) code.

    22. Re:Personally I like wxWindows by VisualStim · · Score: 1

      I have bills to pay too, thus my project is commercial. If a "free" tool can meet the needs of the project, it means I can pay *more* of my bills. :)

    23. Re:Personally I like wxWindows by Bruce+Perens · · Score: 4, Informative
      I checked with my executive editor. The book will publish this year.

      Thanks

      Bruce

    24. Re:Personally I like wxWindows by VisualStim · · Score: 1

      Not quite. Trolltech does not offer a "Free Edition" for the Windows platform. You must pay for a commercial license to use Qt for Windows development.

    25. Re:Personally I like wxWindows by anomalous+cohort · · Score: 1

      Yea, I got excited about wxWindows until I ran some of the samples on my knoppix box. Wow, the widgets UI was really dirty and buggy.

      wxWindows looks great on the MS-Windows side but really rough on the Linux side. Too bad.

    26. Re:Personally I like wxWindows by furballphat · · Score: 1

      Please tell me which part of GPL prohibts you from selling support. I imagine companies like Redhat must be quite worried if this is true.

    27. Re:Personally I like wxWindows by f0rt0r · · Score: 1

      wxWindows
      - I spent 6 months trying to get it to work on Windows, mailing list and online documents were no help. I had QT lib's installed and wrote my first program in 3 hours on BOTH Linux and Windows.
      - Uses the same convoluted event system that MFC does, QT uses the clean SIGNAL/SLOT model to handle events.
      - Did I mention convoluted?

      --
      I can't afford a sig!
    28. Re:Personally I like wxWindows by Quirk · · Score: 1
      re: your sig
      "My skin feels like eggs"

      curiosity begs the question if your skin feels like eggs then wouldn't eggs feel like your skin, and feeling like and being an extention of the feeling of your skin how could you know what eggs feel like? Sorry but I just had to ask.

      --
      "Academicians are more likely to share each other's toothbrush than each other's nomenclature."
      Cohen
    29. Re:Personally I like wxWindows by Anonymous Coward · · Score: 0

      wxWindows is so intuitive it doesn't even needs a book to be explained, but it allways helps :D

    30. Re:Personally I like wxWindows by Trejkaz · · Score: 1

      If you use the GPL version, you can make money, but you will have to release your code since you will be bound by the GPL. Or, you could accept their commercial license instead, pay them money, and not have to release your code.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    31. Re:Personally I like wxWindows by Trejkaz · · Score: 1

      Now we just need wxQt...

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    32. Re:Personally I like wxWindows by arkanes · · Score: 2, Informative
      wxWindows uses Gtk on linux, unless you were running the "Universal" mode. If it looks like crap for you it's because Gtk looks like crap for you.

      The major point of wxWindows is that it uses native, not emulated widgets (unlike all other cross platform toolkits that I'm aware of).

    33. Re:Personally I like wxWindows by DAldredge · · Score: 1

      But that isn't what the QT site says. I know what the GPL says, but the QT site says something else.

    34. Re:Personally I like wxWindows by infiniti99 · · Score: 1

      Got a URL? If it really does say that on their website, then there must be some miscommunication with the website developers.

      The Free edition is GPL, no strings attached. You can read the included license files.

      However, they do have some trickery going on with the Commercial editions. The license for these state that you cannot use them for working on code previously developed with the Free edition. I think the intent here is to prevent a company from developing a large project with the Free edition, and then buying one commercial license to build the final closed-source product.

    35. Re:Personally I like wxWindows by arkanes · · Score: 1
      In fairness, almost everyone I've known has had no trouble whatsoever getting wxWindows to work on windows assuming they followed the step by step instructions. Setting up your own project file can be daunting the first time, but if really had lots of problems that weren't solved on the mailing list then odds are you either were annoying enough that nobody wanted to help you, you were making a common mistake spelled out in the docs.

      The event system is a matter of preference - I should point out that while it's similiar in use to MFCs, it is by no means identical. I vastly prefer it over signals/slots.

    36. Re:Personally I like wxWindows by DAldredge · · Score: 1

      http://www.trolltech.com/products/qt/licensing.htm l

      Use the Qt Commercial License to:
      Build commercial software.
      Build software that is not sold, but that advances the business goals of a commercial enterprise.

    37. Re:Personally I like wxWindows by infiniti99 · · Score: 1

      That sounds about right to me. Obviously, the actual Commercial license text has a lot more to it than two lines, including what I described in my previous post. In any case, this URL doesn't say that you can't sell software developed by the Free edition.

      I think you were looking for this page, which states: "The Free Edition licenses do not allow the development or distribution of commercial software." This sounds confusing, but I think it is because the entire Trolltech website seems to confuse Commercial with Closed-source. What I believe they mean is that you can't use the Free edition for Closed-source software, which makes sense and is consistent with the actual license of the Free edition.

    38. Re:Personally I like wxWindows by Anonymous Coward · · Score: 0

      Straight off of trolltech's website:
      "Qt applications run natively on all supported platforms." "There are no emulation layers. No virtual machines. Just fast, elegant, native code."

    39. Re:Personally I like wxWindows by AstroDrabb · · Score: 1

      Maybe you were using an older version of wxWindows based on GTK+1.X? IMO, wxWindows using GTK+2.x looks very nice. You do know that GTK+ suports themes right? I think many of the gtk2 themes look very nice. You can make your widgets look like MS Windows, or Mac OS, or orange pumpkins if that suits your taste.

      --
      If Tyranny and Oppression come to this land,
      it will be in the guise of fighting a foreign enemy. -James Madison
    40. Re:Personally I like wxWindows by 10Ghz · · Score: 1

      You didn't notice the smiley in my post? But then again, the fact remains that there are lots and lots of people who feel Qt is worth the money.

      --
      Lesbian Nazi Hookers Abducted by UFOs and Forced Into Weight Loss Programs - -all next week on Town Talk.
    41. Re:Personally I like wxWindows by statusbar · · Score: 1

      When are they going to support MINGW32 on windows? If they support gcc on windows then I can do ALL of my compiling on a linux box.

      --jeff++

      --
      ipv6 is my vpn
    42. Re:Personally I like wxWindows by Anonymous Coward · · Score: 0

      I agree with all of the parent's comments. I was about to post something similar.

      I've used and evaluated lots of GUI toolkits and I can say without question that wxWindows sucks. Read through a large wxWindows applications some time. There are so many special cases that it's not really a cross-platform toolkit. You could just write the application using the native toolkits directly and get about the same code except with less bugs and more performance.

      wxWindows blows.

    43. Re:Personally I like wxWindows by anomalous+cohort · · Score: 1

      Doesn't GIMP use GTK? GIMP looks great on that machine.

      When I say the UI is dirty, I don't mean that I find the decorations to be unappealing. I mean that I see zigzag lines that are clearly the result of bugs in the software. You type in a text box and it clearly looks like someone is trying to cross the letters out with an etch-a-sketch.

    44. Re:Personally I like wxWindows by arkanes · · Score: 1

      It's possible that you were using the Universal build of wxWindows, which draws its own widgets and doesn't get as much attention as the other ports. If you weren't, then almost all the controls you see (including the text control) were provided by Gtk, so if they look icky it's because Gtk looks icky. It's also possible that you were using a Gtk 1 build, and your other Gtk apps are using Gtk2. wxWindows does very little custom drawing, so any zigzags you were seeing are unlikely to be a bug in it.

    45. Re:Personally I like wxWindows by Jeremi · · Score: 1

      I'm not really sure... maybe I'll ask some of my co-workers in Vernon and see if they know ;^)

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    46. Re:Personally I like wxWindows by statusbar · · Score: 1

      Nahh, don't bother, they are all canadians there. ;-)

      --jeff++

      --
      ipv6 is my vpn
    47. Re:Personally I like wxWindows by anomalous+cohort · · Score: 1

      Hmmm, that is interesting. I downloaded and installed wxGTK-2.4.2.tar.gz but KPackage says that libgtk1.2 is what is installed.

  6. KAutoConfig by IceFox · · Score: 4, Interesting
    Just a note for those Qt devs who are doing cross platform work. I have abstracted out KAutoConfig from KDE and made it into its own LGPL library recently and can be downloaded here to use in your free and commercial applications. (Stop wasting your time re-inventing the wheel!)

    [Speal about what it is/does]

    Do you want to add a full fledged configure dialog to your Qt application by only writing one, twenty line function? If so than the KAutoConfig library is what you want. KAutoConfig is several classes that enables a developer to easily create a configure dialog for their applications. It automatically syncs GUI widgets values with values in the configuration file. It does this by looking for keys and widgets that have the same name. It obtains the default values from the initial values of the widgets. KAutoConfigDialog also manages all of the buttons in a normal configure dialog.

    -Benjamin Meyer

    --
    Do you changes clothes while making the "chee-chee-cha-cha-choh" transformation sound?
    1. Re:KAutoConfig by Anonymous Coward · · Score: 0

      Good job. Sounds like a real time saver.

      Oh, BTW, that is Spiel pronounced (Shpeel) which is German (and Yiddish) for game.

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

      It's dead Jim. It got removed from KDE for a reason -- the code is shitty and there are better tools available.

      For those that don't read kde-core-devel here's the thread where almost everyone but the author agreed that it should be removed.

      Pimping it on here won't make it come back to life...

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

      Well this is a troll. Yes the class KAutoConfig was removed for the kdelibs, but the code in KAutoConfig is still there in KConfigXT. KConfigXT does everything that KAutoConfig does (thus the code still being there), but also does some more stuff related to the KDE Kiosk stuff. KAutoConfig by itself is still quite usefull for all Qt developers that arn't using KDE, thus the seperate library.

    4. Re:KAutoConfig by gurensan · · Score: 1

      Do you changes clothes while making the "chee-chee-cha-cha-choh" transformation sound?

      No, but I will now!

      --
      You are all fartheads.
    5. Re:KAutoConfig by Anonymous Coward · · Score: 0

      Nope, KConfigXT and KAutoConfig were written separately if you look through the core-devel archives (or at the code). In fact, KConfigXT was started before KAutoConfig rather than being based on it.

  7. Qt. by Cave+Dweller · · Score: 5, Interesting

    Qt is probably the best C++ GUI toolkit out there. In my experience, developing an application is extremely easy and straightforward, due to the fact that the people at TT used the simple (yet effective) model of slots and signals. Writing a new event handler is as simple as overriding a method and then connecting it to your widget -- simple as that.

    Not to mention the great I18N possibilities, the great XML-based Qt Designer application, etc, etc.

    All in all, there are very few drawbacks to Qt, other than the commercial price -- but hey, if you're an open source developer, you get it for free. Otherwise, your employer will get his money's worth back -- simply due to the fact that Qt is such an excellent product.

    (No, I don't work for TT -- I just enjoy their products very much)

    1. Re:Qt. by HungWeiLo · · Score: 1

      However, isn't it true that only version 2 is free for open source usage? As I understand, version 3 has some pretty nice and important features.

      I really do enjoy its simplicity. Although I've always thought that only men would come up with the "slots and signals" model. :-)

      --
      There are a huge number of yeast infections in this county. Probably because we're downriver from the bread factory.
    2. Re:Qt. by krumms · · Score: 1

      Qt is probably the best C++ GUI toolkit out there. In my experience, developing an application is extremely easy and straightforward, due to the fact that the people at TT used the simple (yet effective) model of slots and signals. Writing a new event handler is as simple as overriding a method and then connecting it to your widget -- simple as that.

      Try gtkmm if you like signals and slots. No preprocessor required with gtkmm, either - IIRC, Qt relies on moc or something like that to preprocess C++ source files for signals & slots??

    3. Re:Qt. by An+Anonymous+Hero · · Score: 1
      extremely easy and straightforward, due to the fact that the people at TT used the simple (yet effective) model of slots and signals

      I'm not familiar with Qt. Could anyone sketch to what extent this model is like or unlike Cocoa's "outlets" and "connections"?

    4. Re:Qt. by TioHoltzman · · Score: 1
      but hey, if you're an open source developer

      This is not entirely true. If you're a developer on the X11 platform you get it "free" via a dual license under the GPL. For those of us on other platforms this is not the case (AFAIK). Plus if you do develop code with Qt using the GPL version, as I understand it, there are issues should you then choose to make it a commercial application. "The Free Edition licenses do not allow the development or distribution of commercial software." That said, Qt is a really nice framework. However if you're curious, I'd humbly reccomend you take a look at the Visual Component Framework, a new C++ framework that is being actively worked on by your truly.

    5. Re:Qt. by TioHoltzman · · Score: 1

      Doh, That should be Visual Component Framework

    6. Re:Qt. by Anonymous Coward · · Score: 0
      I'm not familiar with Qt. Could anyone sketch to what extent this model is like or unlike Cocoa's "outlets" and "connections"?

      For one thing, the voltages are completely different. If you tried to cram one of Qt's signals into one of Cocoa's outlets, you would most likely end up frying your computer. Don't try it.

    7. Re:Qt. by LMCBoy · · Score: 1

      However, isn't it true that only version 2 is free for open source usage?

      No, that's the opposite of true. Where did you hear that?

      You can download Qt 3.3 GPL version for unix here:
      http://www.trolltech.com/download/qt/x11.ht ml

      --
      Liberal (adj.): Free from bigotry; open to progress; tolerant of others.
    8. Re:Qt. by Anonymous Coward · · Score: 0

      No, the bet C++ GUI toolkit is OpenStep/Cocoa using Objective C++.

    9. Re:Qt. by Brian+Blessed · · Score: 1

      if you do develop code with Qt using the GPL version, as I understand it, there are issues should you then choose to make it a commercial application.

      This is nonsense. I think you're confusing the GPL'ed X11 Qt with the non-comercial version of Qt for MS-Windows.

      GPL'ed software cannot have a limitation such as being non-comercial imposed upon it.

      - Brian

    10. Re:Qt. by Brian+Blessed · · Score: 1
      Writing a new event handler is as simple as overriding a method and then connecting it to your widget -- simple as that.

      This is also simple using the Swing API (in Java). You can just make an anonymous inner class by overriding a standard adapter class provided by the API. For example (from Sun's Java Tutorial):
      someObject.addMouseListener(new MouseAdapter() {
      public void mouseClicked(MouseEvent e) {
      ...//Event listener implementation goes here...
      }
      });

      - Brian
    11. Re:Qt. by Anonymous Coward · · Score: 0

      Yes, but in Swing its more difficult because you have to connect the source with the listener somehow.

      This is really easily done in QT with Signals and Slots. Wish Java (not only Swing) had something as simple as that.

    12. Re:Qt. by Jeremi · · Score: 2, Informative
      Qt relies on moc or something like that to preprocess C++ source files for signals & slots??


      This is true, but it's not a problem in practice. Qt's qmake program generates a nice makefile for each platform that handles all the details for you, and you never really notice the moc files are there.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    13. Re:Qt. by Anonymous Coward · · Score: 0

      I love gtkmm's libsigc++, but the rest of gtkmm makes me go hmmmm.. I perfer wxWindows and Qt to gtkmm by quite a lot. They simply have better designs as a whole (especially Qt).

      I do more Java programming than GUI C++ programming these days though, so I don't get to use any of these toolkits much anymore.

    14. Re:Qt. by zarr · · Score: 1

      I think the grandparent was reffering to developing an application with the Free version, then buying a license for the closed source version and releasing the program as closed source. You could then have 1000 developers working on an application, but only buying one license. TrollTech obviously don't want that to happen. If they could legally stop you from doing that is another question... The GPL certainly don't let you have these kinds of restrictions, but the license for the closed source version migth...

    15. Re:Qt. by DenOfEarth · · Score: 2, Informative

      That is all well and good, and in theory, it works just fine (well, in practice too, I guess), but the reason that I like to use Qt is that there is a seperate syntax to defining slots and signals. It makes it much easier to read if you skim down your class prototype and the word 'slot' or the word 'signal' appear by themselves. To me that is very clear, and though it requires the use of a precpocessor step, who gives a darn. learn to use a makefile.

      The signals and slots as you've shown look no different from any other class function, and that requires an extra bit of reading to get them right.

      Again, i guess it's all personal preference really.

    16. Re:Qt. by JLyle · · Score: 1
      I'm not familiar with Qt. Could anyone sketch to what extent [Qt's signals and slots model] is like or unlike Cocoa's "outlets" and "connections"?
      Probably best to direct you to the relevant Qt documentation on Signals and Slots.
    17. Re:Qt. by HungWeiLo · · Score: 1

      Oh now I remember. I was trying to acquire the win32 version. There isn't a free version 2 available for that.

      --
      There are a huge number of yeast infections in this county. Probably because we're downriver from the bread factory.
    18. Re:Qt. by HungWeiLo · · Score: 1

      Version 3, I mean.

      --
      There are a huge number of yeast infections in this county. Probably because we're downriver from the bread factory.
    19. Re:Qt. by Anonymous Coward · · Score: 0

      Yeah, totally endorsed by 3 people on this planet who actually use it.

    20. Re:Qt. by Roberto · · Score: 1

      Read the article. Then buy the book. Then you get a non-comm win32 license.

    21. Re:Qt. by Anonymous Coward · · Score: 0

      No, Qt does not have a better design than gtkmm. If you believe that you do not understand C++. Do not pass go. Do not collect $200. Stick with Java.
      Qt is massively more feature-complete, but its design is not excellent.

    22. Re:Qt. by ivec · · Score: 1
      Qt is probably the best C++ GUI toolkit out there.
      Except that it is not C++. Last I checked, there was this unfortunate special preprocessor ("meta object compiler"?) that has to translate some files first.

      This is just unfortunate, because a signals and slots can be supported with only a slightly different syntax using C++ templates.

      Another sin (shared with wxWindows) is the lack of leveraging C++ standard libraries (std::string, standard collections and algorithms).

      Too bad... better could be made, on the GUI front, of this complex but powerful language.

    23. Re:Qt. by f0rt0r · · Score: 2, Interesting

      I wish I had mod points. When I first looked at cross-platform development, I resisted QT because it was commercial ( and cost $$$ ), so I tried out Java. I hit too many road blocks with Java so I tried C++ with wxWindows. I couldn't find any decent documentation, and everything I did find was very convoluted. Support was websites and mailing lists, neither of which answered even a single question I had.

      Finally I said "What the heck, let me try QT", and I was awed by how simple it was to get it to work. It even intergrated with MS Visual C++ which is my preferred IDE for Windows, with Linux I had to doa bit more work setting the paths, but I found lots of help in the mailing list and the QtForum.org site. All I can say, is for the headaches it has saved me, it is worth the licensing fees. Plus the included documentation is awesome, easily matching that of Java, plus there are a few books out for it, I am currently using SAMS "QT Programming in 24 hours" off and on during develipment.

      En sum, QT is easy to install, easy to get up and running, and has excellent documentation.

      --
      I can't afford a sig!
    24. Re:Qt. by IamTheRealMike · · Score: 1
      Otherwise, your employer will get his money's worth back -- simply due to the fact that Qt is such an excellent product.

      What if you are your own employer?

  8. But is it true by t0ny · · Score: 0, Offtopic
    I know the promise of Java was write once, run anywhere, but is this really the case in practice? From what I hear, so much depends not only on your platform, but also what version of Java you are using on the client computer.

    Im sure plenty of people here know Java; any insights (especially from people who know more than one programming language)?

    --

    Manipulate the moderator system! Mod someone as "overrated" today.

    1. Re:But is it true by Anonymous Coward · · Score: 0

      The versioning thing is true, but Java is pretty much write once, run anywhere now. As long as you get a sufficiently high version, most JVM's from most manufacturers will run your code. In particular the most popular JVM's (from Sun and IBM) are available on lots and lots of platforms, and work equally well anywhere.

      Of course it isn't always true. A little birdie told me it was a bug in Sun's J2ME VM that took out Spirit... It could be bad for Java if NASA publicly dumps them over that.

    2. Re:But is it true by enjo13 · · Score: 1

      It's true as long as your application stays within the domain it was intended to run in. There are version issues : For example using classes introduced in 1.4 obviously breaks previous JRE's. More insidious is when the behavior of objects changes between versions, although it is almost (ALMOST!) due to a developer misusing and object and depending on non standard behavior from it.

      However, in my experience the promise of write once/run anywhere holds pretty true. Until you start getting on different types of computer devices. The differences between the various smart phone platforms, for example, means that write once/run anywhere in the microedition world is a complete dream. The code is still incredibly easily ported from one phone to another, but the gotchas and differences in form factor, input method, etc.. are really hard to overcome without platform dependent tweaks and the like.

      On the desktop side, with packages like SWT Java runs very reliably across platforms (and fast!). Just look at Eclipse (http://www.eclipse.org) on the various platforms it runs on. Same code, great results on every platform I've tried it on.

      --
      Turn s60 photos into awesome videos with mScrapbook for all S60 3rd edition phones!
    3. Re:But is it true by bigjocker · · Score: 1
      I know the promise of Java was write once, run anywhere, but is this really the case in practice? From what I hear, so much depends not only on your platform, but also what version of Java you are using on the client computer.

      Well, Java _is_ write once run anywhere. The only cases where your application will fail is when you make assumptions like
      File f = new File("C:\\test.txt");
      But that's going to be a problem in any language you choose.
      --
      Life isn't like a box of chocolates. It's more like a jar of jalapenos. What you do today, might burn your ass tomorrow.
    4. Re:But is it true by Anonymous Coward · · Score: 0

      Yes, but with qualifications.

      Applet programming isn't as bad as it used to be, but it's still a pain. Some classes behave differently depending on whether you're in an applet context or an application context. Try de/serializing an object bigger than 64k, using a java app, and then using a java applet. I guarantee, you'll have loads of fun! And then there's the security sandbox model, which certainly doesn't help very much when it comes to throwing spurious exceptions. I remember a rev of JDK1.4 broke the XML parser in an applet with a security exception. If it's a toy, yeah, you can write once, run everywhere in an applet. Many many people have proved this true over the years. A professional industrial grade applet? That's a contradiction in terms.

      If you stick to an application context, your odds are good you'll be able to write once, but there too, can be odd interactions between the JVM and the underlying OS that will drive you nuts. There was a problem with WinXP and timezones and the JVM, where WinXP said the timezone was this, and the JVM wouldn't pick up the right tz value. Is it big bad ol' MSFT's fault? Who cares, when the people who are signing your checks just want things to run? Oh, and try getting tech support from Sun - it's like shouting at a wall. They don't care.

      If you use swing, the old layout problems go away, but puh-leeze - swing is sloooooow. Every once in a while it will just sit there for 5 seconds or so as it gc's into outer space. Maybe that's OK for the True Believers(tm) but is unacceptable for an app you hope to eventually sell. SWT solves a good chunk of swing's latency issues, but even it can run dog slow at times. And of course, you're straying from the pure java fold when you use SWT. Don't tell me you haven't gotten annoyed at JBuilder when you click on something and everything freezes as the disk churns.

      Java seems to have found a niche in server programming. There's no GUI cheesiness to deal with, and server programming consists of moving buffers around in memory and making networking calls. Lots of libraries have been written to solve most of the common problems, and you can hire a smart guy to design and sketch out the system, and turn it over to idiots you've pulled off the street (or hired in India) to do the actual coding. And if the code doesn't look great, it doesn't matter because it'll run anyway. That's the beauty of java. Mediocrity rules, and mediocre salaries will as well. Talent doesn't really matter anymore in this space.

      There still is the problem of JVM address space growing over time, and memory leaks haven't gone away. Just look at your Eclipse memory size after a day's worth of coding, and tell me there's no memory leaks in java. There was a good internal memo from Sun on this subject as well - some complaints about some of the java apps in solaris growing just a little too quickly. I'll say this - I've never had VC++ swap out on me after a day's worth of coding.

      There once was another language that was used to do these kinds of server-side/batch-processing type work. It was called COBOL, I believe.

      Java could've been a great platform/language if Sun hadn't decided to hang onto it as tightly as they did. Yes, Sun, you own java, but outside of server-side programming, no one really cares.

  9. Resource by J+Nny · · Score: 1

    Seems like it'd be a great resource for those wanting to cut their teeth on qt programming (myself). Of course that raises the question of how long the trail version of the compiler is valid for before either having to dish out some money or having the program deny you access instead of just reminding you "Hey, pay for me". Anyone have any information on the compiler at all?

    1. Re:Resource by prostoalex · · Score: 1

      Borland C++ 5.5 (Non-Commercial) shipped with the book is free (as in beer) and fully functional. However, you cannot ship a commercial app with it, must use for educational purposes only. The trial version is Borland 6.0.

    2. Re:Resource by scorp1us · · Score: 1

      Quit yur bitchin' and get Cygwin - gcc/ming is avialible and works well.

      In this day and age there is no commercial software that isn't in some part mostly covered by an opensource one. And that is even truer to a greater degree with development tools.

      FUBU.

      --
      Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
    3. Re:Resource by Saint+Stephen · · Score: 1

      Do you know with the .NET SDK you get the non-optimizing version of the Visual C++ compiler? Just no IDE. And you can download the Win32 sdk for free. So you can compile Win32 apps on Windows for free.

    4. Re:Resource by f0rt0r · · Score: 1

      Yes, but is it cross-platform?

      --
      I can't afford a sig!
    5. Re:Resource by Saint+Stephen · · Score: 1

      Well, shit, no -- but I wasn't making that claim. Of course you can write portable code, or you can use abstraction libs -- such as Mozilla uses.
      We all know how hard *that* is.

      But that's not the point -- the point is you can compile Windows apps for free, using Microsoft's tools, legally. That's interesting in and of itself.

  10. Re:SCOde? by 10Ghz · · Score: 3, Informative

    SCO and Canopy combined own a bit over 5% of TT. Majority of the company is owned by the employees of TT. SCO/Canopy can in no shape or form control TT. And TT can't buy the shares back if SCO/Canopy is unwilling to sell.

    So quit your whining.

    --
    Lesbian Nazi Hookers Abducted by UFOs and Forced Into Weight Loss Programs - -all next week on Town Talk.
  11. write once, runanywhere is more than a GUI toolkit by Anonymous Coward · · Score: 0

    Qt IMHO does not solve the more fundamental problems
    of WORA. You need abstractions to basically the whole underlying OS, which is something the Java
    class library provides.

    And, as someone else pointed out already:
    Qt is write once, compile anywhere.
    Java class files can even be transmitted from
    one OS to another in the middle of a remote call and are still able to run.

  12. Licensing Fears by Anonymous Coward · · Score: 1, Interesting


    This is not to be intended as a rant. The thing that scares me about Qt is taking the time to learn it and then one day they decide not to offer a GPL version anymore. At least with GTK+ I know that it is 100% Open Source. I can write apps and even sell them without paying a royalty other than donating to support the cause.

    1. Re:Licensing Fears by jared_hanson · · Score: 1

      How is this interesting? Let's assume that Trolltech did decide to get rid of the GPL version. You still have access to the code from the previous version, so the open source community would just take that and improve/standardize on it. And, since the code is GPLd, all contributions to it from the community would be GPLd and the whole thing would be GPL forever.

      In any case, it is probably a moot point because TT would never do that. If they did, a fork would be started immediately by the OSS community, and TT would be resigned to a commercial GUI toolkit vendor with little added value, since their big selling point now is being a "recognized" UNIX toolkit vendor.

      --
      -- Fighting mediocrity one bad post at a time.
    2. Re:Licensing Fears by BenjyD · · Score: 1

      There is a GPL/QPL version available now. You can redistribute any software licenced under those licences, so they can't just stop you using it. If Qt development stops, the latest version will be released under a BSD style licence by the KDE free Qt foundation. So your fears are unfounded.

    3. Re:Licensing Fears by a_karbon_devel_005 · · Score: 0

      if you read the QPL licence from TrollTech, you will stop worrying about this. There will ALWAYS be an Open Source version of Qt... even if TT goes bankrupt!

      ( btw this is a typical GTK argument. )

    4. Re:Licensing Fears by Horny+Smurf · · Score: 0
      Ok. Worst case scenario: they decide they will no longer release under the GPL.


      So what? the current version and all previous releases of Qt are GPL. You can still use them. You can still look at, modify, and redistribute the source if you want to.


      But I bet you don't use Linux because Linus might die in a plane crash, and complain that the BSD license is less free than the GPL.

    5. Re:Licensing Fears by r_j_prahad · · Score: 1

      The thing that scares me about Qt is taking the time to learn it and then one day they decide not to offer a GPL version anymore.

      The thing that scares me about GTK is taking the time to learn it and then one day SCO wins a lawsuit and then there isn't a GNU anymore. Life is full of uncertainties, and playing "what-if" all the time takes a lot of the fun out of life. Don't sweat the small shit, and remember - it's all small shit. Enjoy GTK, it's a great choice! They both are.

    6. Re:Licensing Fears by Anonymous Coward · · Score: 0

      > Ok. Worst case scenario: they decide they will no longer release under the GPL. So what? the current version and all previous releases of Qt are GPL.

      Nope.. it'd automatically be re-released under the BSD license. See the KDE/Qt Foundation announcement made over 5 years ago.

    7. Re:Licensing Fears by EvanED · · Score: 1

      But it'd still be available as GPL, so the situation would not be any worse off.

    8. Re:Licensing Fears by adrianbaugh · · Score: 1

      The point is, they can't revoke the GPL for all the versions that are already distributed under the GPL. So the worst case is, the KDE team say "screw you, Trolltech, we're forking Qt" and continue to develop the last GPLed version as KQt, or whatever, and Trolltech go their own way with Qt but lose a huge chunk of their userbase.
      As for the moderation: this isn't +1, Interesting but -1, Redundant: we've done this debate to death over the past 5 years.

      --
      "'I pass the test,' she said. 'I will diminish, and go into the West, and remain Galadriel.'"
      - JRR Tolkien.
    9. Re: Licensing Fears by er_col · · Score: 1

      Because KDE is based on Qt, if TT stops offering Qt under GPL, KDE will simply take the last free Qt version and keep on developing it from that point. So that is not much of an issue.

    10. Re:Licensing Fears by Anonymous Coward · · Score: 0

      This is not to be intended as a rant. The thing that scares ME about YOU are... YOU ARE AN IDIOT!

    11. Re:Licensing Fears by esaloch · · Score: 1

      I wouldn't worry about that. Oh wait, just read the above 5-7 posts and get the exact same answer in every one.

  13. The two major things that turned me off ... by Anonymous Coward · · Score: 1, Interesting
    ...last time I looked at Qt were.

    the meta-object compiler

    non-standard classes, e.g. string

    The bad news is that the lack of standardization plays right into Redmond's game. "Keep them injuns fragmented, and we'll never get pushed into the ocean".
    It hurts Open Source in general, and C++ in particular.
    Qt is clearly a fantastic toolkit, if the success of KDE is any measure.
    Now, if TrollTech had hair one, they would tidy up their free version (in terms of code and licensing) and submit it to Boost. Probably partitioned into a 'lite' version for cross-platform purposes, and a 'pro' version to keep the business model afloat.
    Juat my $0.02

    1. Re:The two major things that turned me off ... by TioHoltzman · · Score: 1

      If you're looking for a C++ framework that does use the STL, standard strings, modern C++, etc, and has none of the licensing restrictions (BSD license), check out the Visual Component Framework.

    2. Re:The two major things that turned me off ... by mean+pun · · Score: 2, Insightful
      [I was turned off by] non-standard classes, e.g. string

      Normally, I'd agree, but somehow QString always makes the things I want to do easy, whereas string makes the same thing much more painful. The same goes for Qt container classes versus STL container classes.

      There is a reason for this: the Qt designers have refined these classes over the years, and were willing to abandon old aproaches that didn't work. And they have taste. The STL, on the other hand, is in some places poorly designed, and has been refined very little over the years.

      Compatibility with standards is A Good Thing, but so is having a clean design.

    3. Re:The two major things that turned me off ... by smittyoneeach · · Score: 1

      I think your criticism of the STL is on target, but Boost is about fixing that without tampering with the language, in a cross-platform way.

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    4. Re:The two major things that turned me off ... by Anonymous Coward · · Score: 0

      Crap.

      Standards are needed if there are multiple implementations. Like "C compilers".

      But do you see a standard for "perl" or "python"?
      No.
      Why?
      Because they are free and the implementation IS the standard.

      Same for QT. There's only one QT. Talking about standards too much, is a waste of precious resources. Just see what's going on in the C++ newsgroup the last 7 years.....

    5. Re:The two major things that turned me off ... by Roberto · · Score: 1

      There *is* a standard for Python: CPython.

      When other python implementations (like Jython) diverge from it, it should be documented.

      No idea about Perl, though.

    6. Re:The two major things that turned me off ... by booch · · Score: 1

      The meta-object compiler (moc) used to turn me off as well. However, since you just add that as an additional step in the Makefile, it really isn't that big of a deal. There are still a few issues with the non-standard syntax (syntax-highlighting, lint, refactoring tools, etc.) but they aren't all that terrible.

      The bigger issue to me is language choice. GTK has bindings for almost every commonly used language. Qt doesn't support much besides C++. I prefer the extra flexibility of GTK for that reason.

      I do note that Open Source projects using KDE/Qt seem to get to a usable stage much quicker than any other toolkit. My guess is that that means that the Qt framework makes writing programs faster. Now, if only it had a libglade-type RAD system to separate GUI design from implementation, it'd kick ass. And no, Qt Designer doesn't cut it, since you have to lay out your widgets more statically, and then recompile.

      --
      Software sucks. Open Source sucks less.
    7. Re:The two major things that turned me off ... by SupplyChainCoder · · Score: 2, Insightful
      I like the fact that Qt is not so "up to date" with the C++ as Boost.

      When you have to write cross platform applications using the compilers on HP-UX, aCC, SUN & VC then it will be years before all the template usage within Boost will work.

      I wish that the C++ standard was defined in the form of a series of unit tests. That way one could just tell a compiler vendor to fix their compiler when if fails a test.

      These tests should also contain code sections that should not compile according to the standard.

    8. Re:The two major things that turned me off ... by vegetasaiyajin · · Score: 1

      The bigger issue to me is language choice. GTK has bindings for almost every commonly used language. Qt doesn't support much besides C++. I prefer the extra flexibility of GTK for that reason.

      Qt has bindings for several languages, including Java, Perl, Python, C, Ruby and C#.

      I once heard the C binding is not very useful for using it from C, but it is intended to be used as a foundation for bindings to other languages. Does somebody know if this is true? Has somebody tried to use Qt C binding?

      I once read an example Java program that used Qt/Java and it looked good.

      here are bindings for C, Perl and Python.
      here are bindings for Java.
      here are bindings for C#
      here are bindings for Ruby.

      --

      My heart is pure, but make no mistake, it's pure evil
    9. Re:The two major things that turned me off ... by booch · · Score: 1

      Interesting -- they used C to create a thunk layer into C++ code instead of the other way around. Are there any studies of how well that works?

      --
      Software sucks. Open Source sucks less.
  14. Qt / GTK by The+Night+Watchman · · Score: 2, Interesting

    I'm a programmer, but not a GUI developer, so my knowledge of such things is limited. I've used Qt applications, and I've used GTK applications. Personally, I like GTK2, but that's mainly on an aesthetic level, rather than a functional or development level.

    I ask anyone who's developed in either/both of GTK/Qt, and even those with Win32 experience. What advantages does Qt have over the other choices?

    ---

    --
    "Every jumbled pile of person has a thinking part that wonders what the part that isn't thinking isn't thinking of"-TMBG
    1. Re:Qt / GTK by Kethinov · · Score: 1

      You can develop Kool apps for KDE with it...

      GTK > *

      Okay I'm done.

      --
      You're right, I wouldn't steal a car. But if it were possible, I sure as hell would download one!
    2. Re:Qt / GTK by Anonymous Coward · · Score: 0

      From what I remember of GTK, it is actually similar in spirit to Qt. (That is, signals, slots, connections, etc.). The difference is that since the object-oriented model is simulated, you had to cast object pointers to the correct class manually (although it's not normally a problem). The most annoying thing is creating your own class, since you MUST remember to include the ancestor class in your struct. The file chooser API leaves much to be desired as well, of course.

      As far as the Win32 API goes, a fairer comparison would be to compare Xlib to the Win32 API. The Win32 API itself is this ugly, bug-ridden (it once took me over 8 hours to work around some function which wasn't working as advertised) heap of dung. It is the reason that Visual Basic became as popular as it did.

      Qt, on the other hand, is like swimming in a nice warm, clear pool. It makes many otherwise hard things easy, including utility classes such as a regular expression grepper, automatic Unicode support, etc. It's not just a GUI API, the whole deal is much more than that.

      I haven't tried wxWindows, but I can tell you that FLTK is horrible to program in.

      This is offtopic, but WHY do all the trolls go on about Qt's licensing conditions? Qt for XFree86 is GPL'ed. Not MPL'ed or LGPL'ed, but the absolute most free you could get, if by free you mean always having the source code.

      If the Trolls were to release a version that wasn't GPL, we could fork from their previous version, although Trolltech may still be contractually forbidden from releasing a non-free X11 Qt (they signed an agreement with KDE so that there would always be a free Qt).

    3. Re:Qt / GTK by StormReaver · · Score: 3, Informative

      "I ask anyone who's developed in either/both of GTK/Qt, and even those with Win32 experience. What advantages does Qt have over the other choices?"

      I haven't programmed directly in the Win32 API beyond making a few calls from VB (back when I was forced to use that steaming pile...), but the general gist is that it is comparable to Xlib (which I have used a lot in the last year or so). Xlib, and therefore Win32 API, are quite painful to use extensively. Qt is light years easier and friendlier to use than either of the raw APIs mentioned above.

      I had started GUI programming under Linux with GTK+. I used it (and it's C++ counterpart called GTK--, which was the whole reason I learned C++) as much as I could for a couple years before discovering Qt. I have been a Qt programmer since late 1998/early 1999 (or whenever version 1.44 was mainstream).

      Qt, with its support applications (Qt Designer being the cream of the crop); its incredible documentation; and it's thoroughly well-designed API, was a dramatic step forward from GTK+/GTK--. It is, all by itself, a compelling reason to learn C++ if you don't already know it.

    4. Re:Qt / GTK by TioHoltzman · · Score: 1
      a fairer comparison would be to compare Xlib to the Win32 API

      Not really. Have programmed extensively in both, and having had the misfortune of fighting with xlib just a few months ago, I can tell for painful experience, that while the Win32 API is a bit weird, and documented poorly, it is heaven compared to the steaming pile of crap that is XLib (please not that this is *not* a complaint about the X protocol). The reason it's heaven is because it gives you a huge amount of functionality already built in, whereas with XLib you *must* either right much of your own code from scratch, or use a toolkit (which then largely defeats the point of making XLib calls). Things like menus, buttons, copy/paste, drag/drop, timers, blocking versus non-blocking message sending, etc are *not* implemented in XLib, and you must roll your own.

      That said, I do agree that the Win32 API is a mess to learn, and the documentation can be pretty lame. Thankfully there have been a number of sites in recent years that have tutorials that cover just about every possible issue/problem with it, and make it much easier to work in, or at least find solutions for.

    5. Re:Qt / GTK by Kidbro · · Score: 1

      It is, all by itself, a compelling reason to learn C++ if you don't already know it.

      And even if you for some reason want to avoid C++, there's a good chance that you'll be able to use it. I spend my days coding a QT application in Python using PyQT.
      I have, on occasion, had to read a couple of lines of C++ code (in the rare case when the QT documentation lacks some detail), but never needed to produce a single line of C++ myself.

    6. Re:Qt / GTK by IamTheRealMike · · Score: 1
      I haven't programmed directly in the Win32 API beyond making a few calls from VB (back when I was forced to use that steaming pile...), but the general gist is that it is comparable to Xlib

      Well, not really. Xlib is more comparable to the GDI and a bit of USER - a very small part of Win32 in general. Yes, using it is a pain in the arse. That's why Borland make a killing selling the VCL/Delphi etc.

      Qt, with its support applications (Qt Designer being the cream of the crop); its incredible documentation; and it's thoroughly well-designed API, was a dramatic step forward from GTK+/GTK--. It is, all by itself, a compelling reason to learn C++ if you don't already know it.

      It's worth noting that GTKmm (it hasn't been called GTK-- for years) is significantly different to the old GTK--, and apparently much improved. People I know who've worked with both say it's pretty much a tossup between them at the moment, with GTKmm being more modern (in the c++ sense) but Qt having better commercial support and documentation. In terms of capabilities and API they are roughly equivalent assuming you don't get anal about StudlyCaps vs underline_style or whatever.

  15. Before Java? by OYAHHH · · Score: 2, Informative

    Given Trolltech doesn't even have a website on archive.org prior to the year 2000 I find it a tad bit hard to believe that Sun was later in it's definition of write-once-run-anywhere.

    Plus, if we're gonna play those games then I was using Motif on variety of platforms in the early/mid nineties with C without a need for re-write.

    So I hardly think QT is a defining standard for write-one-run-anywhere GUI development.

    --
    Caution: Contents under pressure
    1. Re:Before Java? by SpyPlane · · Score: 1

      I think you misread the post and clearly left out the word "monopolized". No one ever mentioned that Java was invented after QT. Whether it was or was not is not mentioned.

      "Before Sun monopolized the notion of 'write once, run everywhere"

      Clearly, Java wasn't nearly as popular in 2000 as it is now, and it certainly didn't enjoy the virtual monopoly it does now.

      --
      "We need a fourth law of Robotics: Stop Fingering My Wife"
    2. Re:Before Java? by happyfrogcow · · Score: 1

      I find it a tad bit hard to believe that Sun was later in it's definition of write-once-run-anywhere.

      but it was their "Monopoly" on said practice he was describing. which is an arbitrary judgement call, since they don't really have a monopoly on it in practice, but maybe a trademark on the phrase.

    3. Re:Before Java? by Lifewolf · · Score: 1
      So I hardly think QT is a defining standard for write-one-run-anywhere GUI development.

      Yeah, Sun stole that thunder from Smalltalk, not QT. Get it right.

      --
      "Be Happy or Die." -- AoN
    4. Re:Before Java? by Anonymous Coward · · Score: 0

      > prior to the year 2000 I find it a tad bit hard to believe that Sun was later in it's definition of write-once-run-anywhere.

      Before 2000, Trolltech used the "troll.no" domain..

      See http://web.archive.org/web/*/troll.no

      Before 1997, they had yet another domain, but I forget what it was.

    5. Re:Before Java? by vurian · · Score: 3, Informative

      In 1996 Linux Journal published its first article on developing with Qt: http://www.linuxjournal.com/article.php?sid=0201. By that time, Qt had already been in development for four years, and Troll Tech was 2 1/2 years old.

  16. Warning for "Qt Programming" by eddy · · Score: 3, Informative

    I had the misfortune to read a book on Qt by Patrick Ward called Qt Programming. I'm sorry, but it's got to be one of the worst books on this topic that I've ever seen.

    Stay far, far away from it.

    --
    Belief is the currency of delusion.
    1. Re:Warning for "Qt Programming" by Anonymous Coward · · Score: 0

      Worked for me. I'm a scientist, not a programmer. I needed to write some very quick GUI tools to look at my data. Got the book, built the tools, still using them. QT's pretty easy to learn, but having the book helped.

    2. Re:Warning for "Qt Programming" by Anonymous Coward · · Score: 0

      Perhaps you can be more specific in why you did not find the book helpful. Bad writing? Wrong skill level? Poor typesetting? Rehash of online docs?

  17. How does it compare to Zinc by Geccie · · Score: 1

    I've done substantive development using Wind River's Zinc application framework. Although not viable for personal commercial endeavors, I did port it to linux and found it to work quite well. It was just fluidly easy. I've become quite adept at windows programming also.
    Does anyone have any comparitive info on WxWindows VS MFC or Zinc?
    Will WxWindows work well within the Visual C++ (6.0) IDE?
    Is the end result of WxWindows worth the effort of learning the implementation?
    Thanks - Geccie

    1. Re:How does it compare to Zinc by LordKazan · · Score: 1

      I've done substantive development using Wind River's Zinc application framework.
      Sorry, I've never even heard of Zinc before.

      It was just fluidly easy.
      The same can be said for wxWindows

      Does anyone have any comparitive info on WxWindows VS MFC or Zinc?
      MFC is a child's toy, especially next to wxWindows.

      Will WxWindows work well within the Visual C++ (6.0) IDE?
      It's wxMSW (the wxWindows implementation for wxWindows) is native to VC++ 6.0 and I use VC++ 6.0 Enterprise

      Is the end result of WxWindows worth the effort of learning the implementation?
      Absofragginglutely :D write once compile on Windows, *Nix, OSX, *BSD, .....

      --
      If you cannot keep politics out of your moderation remove yourself from the Mod Lottery.. NOW!
    2. Re:How does it compare to Zinc by edxwelch · · Score: 1

      The most important difference:
      MFC is a discontinued product (as regards new features) and wxWindows is not.
      In fact the general GUI classes of MFC have hardly been improved at all since version 4.2. while wxWindows has been slowly improving over the years.
      As a result a lot of the classes in wxWindows are now more extensive and easier to use than MFC.

  18. Language-Neutral GUI by Tablizer · · Score: 3, Interesting

    Why are so many GUI systems still closely coupled with specific languages? Why not divorce the GUI engine from languages? I don't know of any library that has successfuly done that. Although Tk comes close, it still requires a specific interpreter be installed.

    1. Re:Language-Neutral GUI by Glock27 · · Score: 3, Insightful
      Why are so many GUI systems still closely coupled with specific languages? Why not divorce the GUI engine from languages? I don't know of any library that has successfuly done that. Although Tk comes close, it still requires a specific interpreter be installed.

      I can think of some that do pretty well: GTK+ (usable from many different languages) and the Aqua widget set (usable from Objective-C, Java and C++ at least - probably more). For that matter, the Windows GUI is accessible from many languages.

      All of them were written in C, which as a simple language, makes interfacing practical/possible. Simplicity has it's virtues. ;-)

      --
      Galileo: "The Earth revolves around the Sun!"
      Score: -1 100% Flamebait
    2. Re:Language-Neutral GUI by soullessbastard · · Score: 2, Informative

      and the Aqua widget set (usable from Objective-C, Java and C++ at least

      While the Aqua widget set is accessible from a number of languages in the sense that the buttons look the same, the interfaces across the different languages definitely do not have the same level of parity. An example from Panther is metal buttons which are only accessible from Cocoa/Objective-C. Earlier versions of OS X even had more major interface elements unavailable to Carbon, such as sheets and drawers.

      The underlying widget set of OS X has access from a very wide set of languages, but it's not yet fully language neutral in the sense that new widgets are automatically available in every language. Even though it's been getting better, the choice of APIs still places limits on which subset of the Aqua user interface elements can be used.

      ed

    3. Re:Language-Neutral GUI by dominator · · Score: 0

      Tk is a horrible example of a GUI toolkit tied to a language. Even if you wanted to write using Perl::TK or TK in C, you needed a TCL interpreter installed.

      QT and GTK+ have a fabulous assortment of high-quality language bindings. You aren't tied to using C or C++, respectively. I'm familiar with the Python, C++ and C# GTK+ bindings, and can say that they are superb.

      http://www.gtk.org/bindings.html

    4. Re:Language-Neutral GUI by kisielk · · Score: 2, Informative

      Qt has excellent bindings for Python and Perl (and no doubt others, just I've never used them), and arguably, it's much easier to program from Python than it is from C++.

    5. Re:Language-Neutral GUI by be-fan · · Score: 1

      Qt isn't terribly language-specific. There are excellent bindings to other languages, especially Python. Its written in C++, but pretty much any language that can handle the C calling convention can call Qt.

      --
      A deep unwavering belief is a sure sign you're missing something...
    6. Re:Language-Neutral GUI by rmohr02 · · Score: 1
      wxWindows was originally for C++, but there are versions of it for other languages:I'd say that covers most of the languages I'd program in.
  19. Re:write once, runanywhere is more than a GUI tool by Waffle+Iron · · Score: 2, Informative
    You need abstractions to basically the whole underlying OS, which is something the Java class library provides.

    However, the generic OS interfaces provided by the Java class library don't cover much more ground than what the POSIX-ish API subset provided by Windows covers. So you can already write relatively portable code in C++ that will run on both *nix and Windows.

    At any rate, if you're willing to drink the Qt kool-aid, Qt itself provides a bunch of portable generic utility classes to address this same issue.

  20. Re:I don't know about this book by Anonymous Coward · · Score: 2, Funny

    where is the Networking chapter?

    Oh, I don't know there's a slight chance that Chapter 13. Networking might be remotely related to the topic you ask for?

  21. I would say Java is less of a "monopoly" than Qt by iamacat · · Score: 2, Interesting

    With Java, there is a free as in beer VM for most platforms and as far as I understand, you can port Sun's code to your platform for free. You can also develop a clean-room VM and call it something other than Java.

    With Qt, it's either an expensive license (my company requires a senior VP approval for any software over $150) or your program is GPLed and Linux-only. I guess a clean room port would be Ok though?

    I chose Java UI + JNI over embedded Qt before for just these reasons. For C++ programming, I just hope OpenStep really takes off.

  22. This book is under an Open Source license by Bruce+Perens · · Score: 4, Informative
    The text of book is under an Open Source license, as with all books in my series. A few months after publication, both source and unencrypted PDF will be uploaded.

    It's not the policy of my series to publish proprietary software on the accompanying CD. But there is some Borland stuff and a copy of Windows Qt on the CD. This is due to a mis-communication with my publisher. I found out about it very late in the process (as I was reading a galley proof), and decided to allow the deviation from policy this time rather than cause a tremendous hassle for Troll Tech. The book had already been advertised, and orders had been booked from stores, etc.

    Thanks

    Bruce

    1. Re:This book is under an Open Source license by Qbertino · · Score: 1

      The text of book is under an Open Source license, as with all books in my series. A few months after publication, both source and unencrypted PDF will be uploaded.

      Cool. Thanks.

      --
      We suffer more in our imagination than in reality. - Seneca
    2. Re:This book is under an Open Source license by baxissimo · · Score: 1

      So is Non-commercial Windows Qt 3.2 going to be available for free download eventually, too (like the old one is)?

    3. Re:This book is under an Open Source license by Bruce+Perens · · Score: 1

      Nobody has told me. Please ask Troll Tech.

    4. Re:This book is under an Open Source license by Capt.+Beyond · · Score: 1

      Not that I have heard about.
      Buy the book.

      --
      -- "Perceptions create reality. By changing your perceptions you change your reality."
    5. Re:This book is under an Open Source license by neonstz · · Score: 1

      The book is on its way from Amazon right now, but I just have to ask. Do I have to use Borland C++ to use the Qt/Win-library or will it work on other windows compilers?

      (The main reason I bought this book is because of the free Qt 3 for Windows. I already have Qt3 Enterprise installed (I'm using it at work) but the license probably doesn't cover my own programs I write at home (I won't distribute them without a proper license))

    6. Re:This book is under an Open Source license by rmohr02 · · Score: 1

      I would assume MinGW and Visual Studio would both work fine.

    7. Re:This book is under an Open Source license by rmohr02 · · Score: 1

      Is there a central page listing the books in your series?

      I did find perens.com/Books, but it doesn't look to have been updated recently. Also, I found the links to the actual books somewhat cryptic--the link text should be the title of the book, not a strange URL like "http://search.barnesandnoble.com/booksearch/isbnI nquiry.asp?isbn=0130354732".

    8. Re:This book is under an Open Source license by arkanes · · Score: 1

      With the previous QT nc, only MCVC++ (6.0) and Borland free compiler were supported. Actually, I'm not even sure about the Borland one. Qt/Win32 (the commercial version) supports a whole slew of compilers, so I wouldn't make too many assumptions about what compilers are supported.

    9. Re:This book is under an Open Source license by infiniti99 · · Score: 1

      It's not the policy of my series to publish proprietary software on the accompanying CD. But there is some Borland stuff and a copy of Windows Qt on the CD. This is due to a mis-communication with my publisher.

      This is interesting, because I know that a lot of the book's popularity is due to the fact that it has Qt/Windows 3.2 bundled with it. This is _huge_ for the many developers that want to port modern free Qt programs to Windows. We've been waiting nearly 3 years for this day.

    10. Re:This book is under an Open Source license by Bruce+Perens · · Score: 1
    11. Re:This book is under an Open Source license by Bruce+Perens · · Score: 2, Insightful
      I don't doubt you.

      Make sure you have the right to port that program. No problem if you're the copyright holder. Note that there is a copyright issue regarding porting GPLed KDE programs to commercial Qt on Windows. At the least, you should get written permission from all copyright holders.

      Thanks

      Bruce

    12. Re:This book is under an Open Source license by neonstz · · Score: 1

      I guess i should answer my own question here. The CD comes with non-commercial windows versions for Borland 5.5, Borland 6 and MSVC (6 and 7).

    13. Re:This book is under an Open Source license by mp3phish · · Score: 1

      What would be the best way to ensure I have the right to re-license a project of mine which others contribute to? Must I request that all contributers assign the copyright of their patch to me? Or is there a way that they can give me partial ownership of that segment of code, so that way both of us have full rights to the code? thanks...

      --
      Your ignorance is infinitely greater than you realize.
  23. Re:write once, runanywhere is more than a GUI tool by TioHoltzman · · Score: 1
    NO C or C++, or for that matter *any* compiled language is a write once, run anywhere proposition. Java can claim this *only* because it is interpreted and runs within another program (the Java VM), and this program is most certainly no WORA!

    And even though Java is WORA (sort of), it usefulness for end user UI apps is next to worthless. No Java based UI application of any complexity that I have used has been anything other than outlandishly sluggish. This ranges from the Java IDEs, to CASE tools, to various other editors, especially if they are based on Swing or AWT. IBM's SWT library is better (this is what Eclipse is written in), but even Eclipse is *still* sluggish when running with a mildly complex project.

  24. Re:I don't know about this book by asueekim · · Score: 0

    Ah sorry, didnt see that, I hope it is indepth. My perl book isnt :/.

    --
    Encrypted IRC: SSH to port 20 on cat2.ath.cx and choose server 2
  25. Re:Four things I don't care about! by mcpkaaos · · Score: 5, Funny

    1) C++ (Because I can do everything in C)

    That carries about as much weight as saying, "I don't care about women because I can do everything with my hand."

    --
    It goes from God, to Jerry, to me.
  26. Erm... by Chibi+Merrow · · Score: 1

    Well you know, if you really don't want the book, there's plenty of us poor college student programmers who'd be happy to take it off your hands...

    --
    Maxim: People cannot follow directions.
    Increases in truth directly with the length of time spent explaining them
  27. Re:Java's motto by JohnnyCannuk · · Score: 1

    Yeah, because you never have to debug C or C++ programs...they're always perfect the first time around....

    BTW, That's sarcasm

    --
    Never by hatred has hatred been appeased, only by kindness - the Buddha
  28. Re:Four things I don't care about! by Anonymous Coward · · Score: 0

    "I don't care about women because I can do everything with my hand."

    Damn right!
    I can even talk with my hand while not wasting my time with a stupid woman.

  29. Re:I would say Java is less of a "monopoly" than Q by humankind · · Score: 1

    With all due respect, I believe that C/C++ is more portable across more platforms than Java will ever be, not to mention it's more solid and efficient. This is further evidenced by more and more cross-platform libraries such as Qt. I recognize that a lot of new progammers jumped on the Java bandwagon because it was "the new thing" or was taught in college as a focal point of the compsi degree, but the truth is there aren't as many opportunities and possibilities with Java as C. Chances are as you're reading this, much of the software running on your machine was written in C/C++, and this language has always been relatively easy to port to other platforms -- it might not be the most elegant or user-friendly development environment, but it's still the way to go for serious applications.

  30. Programming with Qt - O'Reilly by adamofgreyskull · · Score: 2, Interesting

    Does anyone know how this compares with Programming with Qt from O'Reilly? That was the reccommended text for a Soft module I did last term/semester (whatever the uni chooses to call them this week). I thought it covered pretty much everything I needed..and even touched on the aforementioned XML/DOM/SAX stuff.

  31. Off topic or On Target ??? by Anonymous Coward · · Score: 0

    Karma Krazed K-Zealots bombing the opposition.

    Well? Answer the question, what are Canopy
    Reps doing on the board of directors of Trolltech?
    Don't mod. Just answer the question.

    Til then, I'm using WxWindows.

    1. Re:Off topic or On Target ??? by arevos · · Score: 1
      From KDE Myths:
      "According to http://www.trolltech.com/newsroom/investors.html the Canopy Group only has 5.7% shares of Trolltech while 64.7% are in posession of Trolltech employees with an additional 5% controlled by the Trolltech founders. One can hardly say that the Canopy Group owns or controls Trolltech"

      Canopy bought stock in Trolltech. Such things happen all the time. Canopy clearly had no control over the company at all, nor any real influence.

      That answered your question enough?
    2. Re:Off topic or On Target ??? by Anonymous Coward · · Score: 0

      Canopy clearly had no control over the company at all, nor any real influence.

      Not true. It's not obvious at all. What's
      painfully obvious is that Trolltech is silent
      on this issue?

      "Canopy has no control" The guy that runs Canopy
      sits on the board of directors of Trolltech !!!
      That sounds like control to me.

      No, my question is not answered: read carefully ...

      1) Why doesn't Trolltech just come clean on
      exactly what theire relationship is with
      Trolltech?

      2) Why don't the stockholders kick Canopy
      Representatives off the board?

      3) Why doesn't Trolltech produce a real statement
      signed by the CEO that denounces SCO and Canopy
      and lines upbehind open source for Linux.

      4) Trolltech should state whether they owe money
      to SCO or Canopy.

      5) Trolltech should state what whether
      SCO or Canopy has rights or warrants to buy
      Trollech at a later date.

      6) Explain who controls "The Trolltech Foundation".

      7) Do any of the "employees that own a
      majority of Trolltech" have agreements are
      in the employment of SCO or Trolltech.

      Hey man, it's easy. Trolltech could clear
      up a lot of doubt by comping clean on these
      issues. They can do some more pro-active
      deeds to demonstrate that they are with Linux
      and against Canopy/SCO. As it stands now,
      they are dodging the issue.

    3. Re:Off topic or On Target ??? by binary+paladin · · Score: 1

      All righty, well here you go... *passes over a tinfoil hat*

      I hope that helps keep the Orbital SCO rays from taking over your thoughts and turning you against the OSS world.

      Who gives a shit about Canopy and Qt? Why don't you answer a question of mine:

      Given that we have a GPL version of Qt, what can take it away or prevent a fork?

      I don't care if *Microsoft* owns 95% of Trolltech because that license is a shield. This is why the GPL is a Good Thing(TM). If Trolltech is bought there will be a fork and... heh... I wonder which one is going to stay on top.

    4. Re:Off topic or On Target ??? by Anonymous Coward · · Score: 0

      Who gives a shit about Canopy and Qt?

      I do. I'm not committing to Qt because
      Canopy owns part of SCO and sits on the TT
      board. My money is not going to Canopy via
      TT.

      Given that we have a GPL version of Qt, what can take it away or prevent a fork?.

      With Canopy, who knows? Canopy is attacking
      the GPL in general and Linux in particular.
      I'm afraid it hard to grant you your "given"
      in this case. Based on Trolltech/SCO/Canopy's
      vision of the the GPL ... oops, sorry,
      SCO/Canopy's vision ... of the GPL, the GPL is
      invalid. SCO calls the GPL "unconstitutional".
      I agree that it *should* protect the GPL
      distribution of Qt, but who knows? Ralph Yarro
      may exercise his options on Trolltech, take
      control of the Trolltech and pull the same
      stunt he's pulling with SCO and Linux.
      You have a good question. I'm afraid the answer
      is not what you want it to be, though.

      Let me clarify : Trolltech could straighten
      out this whole matter and sheild themselves
      by coming clean on what their relationship
      with Canopy/SCO/Ralph Yarro/Darl Mcbride/etc.

      Remaining silent is imprudent under the circumstances.

    5. Re:Off topic or On Target ??? by arevos · · Score: 1

      "Canopy has no control" The guy that runs Canopy
      sits on the board of directors of Trolltech !!!
      That sounds like control to me.


      Since you don't understand how the board of directors works, let me explain. One share equals one vote. Canopy has 5.7% of the votes. Trolltech employees have 64.7% of the votes. They control the company. No-one else matters because they control the majority of the votes. Canopy can't tell them to do anything, because they're outvoted.

      This is how people retain control of PLCs. As long as the original owners retain 51% of the shares, it doesn't matter who owns the rest. Trolltech has nothing to say upon this matter because Canopy has absolutely no say in the running of Trolltech.

    6. Re:Off topic or On Target ??? by Anonymous Coward · · Score: 0

      > Given that we have a GPL version of Qt, what can take it away or prevent a fork?

      Every time I see that lie repeated, it just convinces me to stay far away from Trolltech and Qt.

      And it is a lie, because it is only a _half_ truth, designed to make us forget the other half -- the half where the real danger is to be found.

      It's true that there is a GPL version of Qt, but it only protects users of GPL'd applications, like KDE.

      The other half of the story is that users of _commercial_ Qt-based applications are _not_ protected. They are dependent on Trolltech, just like a user of any Windows application is dependent on Microsoft.

      Commercial Qt-based applications include Borland's Kylix, SuSE's Yast, Hancom Office, Opera, various TheKompany products, ATI's setup utility, and so on. Anyone who uses those products is dependent on the proprietary Qt platform. And unless they are prepared to stop using those applications, they have no protection against whatever Trolltech might decide to do with Qt in the future.

  32. Litany Against Syntax by devphil · · Score: 2, Funny


    As LISP coders will tell you, if you're having to think about the "sin tax", it's not user-friendly. Move past that. Think about the semantics. Or as the Bene Gesserit would say,

    Syntax is the mind-killer. It is the little death that leads to total obfuscation. I will face the syntax. I will permit it to pass over and through the parser, and when the compiler is done I will turn my debugger's eye to see its path. Where the syntax has gone there will be nothing. Only the executable shall remain.
    --
    You cannot apply a technological solution to a sociological problem. (Edwards' Law)
  33. Re:Four things I don't care about! by arevos · · Score: 1

    1) C++ (Because I can do everything in C)
    You can do everything in assembly too. :)

    2) Qt
    Then why read this article at all? I don't go to say, cheese-rolling.com and talk about how I'm not interested in rolling cheeses.

  34. Not C++ by Anonymous Coward · · Score: 0

    QT isn't C++. It is incompatible with the standard.

    1. Re:Not C++ by arevos · · Score: 2, Informative

      It's incompatable with the STL. But not standard C++.

    2. Re:Not C++ by Anonymous Coward · · Score: 0

      Nope, it works great with the STL. I know that because I use both STL and Qt in the same application...

    3. Re:Not C++ by StormReaver · · Score: 1

      "It's incompatable with the STL. But not standard C++."

      I use the STL with Qt on both Linux and Windows, compiled with Borland's free command line compiler. Stay away from Visual C++ and you'll get excellent code compatibility between gcc and Borland's compiler (the "long long" datatype being noticeable absent from Borland), and you'll be able to use the STL.

    4. Re:Not C++ by arevos · · Score: 1

      I thought the Qt string class was incompatable with STL string class.

    5. Re:Not C++ by Anonymous Coward · · Score: 0

      There is no "STL string class", "string" is part of the standard library but nothing says you have to use it. The STL is only a part of the C++ Standard Library.

    6. Re:Not C++ by arevos · · Score: 1

      That was kinda my point to begin with. I haven't looked at Qt in a while, so I could be wrong, but Qt uses the QString class, I think.

      Anyway, is it possible to pass a string to a Qt class and have is implicitly changed to a QString? If not, then Qt's incompatable with the STL, by my definition. It's compatable with standard C++, but, as I say, that was my point all along.

    7. Re:Not C++ by Trejkaz · · Score: 1

      Is it not possible to convert either type of string to/from a "real" String? That is, an array of characters terminated by a null? :-p

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    8. Re:Not C++ by StormReaver · · Score: 1

      "Anyway, is it possible to pass a string to a Qt class and have is implicitly changed to a QString?"

      You can pass a character array to a Qt class that expects a QString, and the conversion from (char *) to (QString) will occur automatically.

    9. Re:Not C++ by warrax_666 · · Score: 1

      Not without potentially losing information. Convertion to/from null-terminated strings is lossy, because the original string may contain null characters in the middle of the string. I haven't checked, but they probably have a "copy-into-regular-array-of-chars-of-specified-siz e" function which is lossless.

      --
      HAND.
    10. Re:Not C++ by arevos · · Score: 1

      Yes, yes, but that's not the same. STL strings cannot be passed into Qt functions without some form of converstion. Therefore, in my view, Qt is not compatable with the STL. It is, however, compatable with the C++ language.

  35. Free windows version?? by edxwelch · · Score: 1

    I was looking into using QT as a framework for a non-commercial project. I saw on their website that the only free Windows version available was so old that it wasn't really useful to me (too few features). Just now I checked their website I see no free Windows version at all.

    1. Re:Free windows version?? by JLyle · · Score: 2, Informative
      Just now I checked their website I see no free Windows version at all.

      Correct, it's no longer available. To quote the Qt Free Edition FAQ, "Trolltech supports free software development on platforms where contributing to Free Software/Open Source development is part of the platform strategy. At the time being it does not seem natural for us to release a free edition for Qt/Windows."
    2. Re:Free windows version?? by baxissimo · · Score: 1

      The old 2.3 non-com version for windows is still on Trolltech.com. Just search for "non-commercial" in the little search box at the top of the page,
      And you'll get this link as the top hit.

      That is "non-commercial", though, and not "free". Which means according to Trolltech you can't use it for "any activities for which you are compensated," and that covers academic research too.

    3. Re:Free windows version?? by Brandybuck · · Score: 1

      Take a look here. Though they no longer support it, or provide easy links to it, it is still available.

      --
      Don't blame me, I didn't vote for either of them!
    4. Re:Free windows version?? by edxwelch · · Score: 1

      that's version 2.3
      According to the review, the book includes a free 3.2 for Windows. I wonder does that mean you get a special license when you buy the book?

    5. Re:Free windows version?? by Brandybuck · · Score: 1

      Since I just ordered the book, I guess I'll find out in 8 to 10 days! I hope it's not the 30 day evaluation edition.

      --
      Don't blame me, I didn't vote for either of them!
  36. Re:SCOde? by Anonymous Coward · · Score: 0


    the question remains, skip ahead

    +5 Informative doesn't cut it.

    Answer the question : What is Trolltech's relationship with SCO and Canopy. Why does
    Ralph Yarro, Darl McBride's boss sit on the
    board of directors of Trolltech? Does
    Trolltech owe SCO/Canopy money? Does SCO
    have the right to buy Trolltech later?
    Does the money they take from SCO/Canopy give
    SCO/Canopy certain rights? Like the right
    to a seat on the board of directors?

    Tart responses that get scored +5 just don't
    cut it. Sorry.

    Trolltech needs to come clean.

    Modding down people who question this
    isn't going to make the question go away.

    Speak, Trolltech. Please.

  37. Pronunciation of Qt. by euxneks · · Score: 2, Funny

    Is it "cute" or "cutey" or what?

    --
    in girum imus nocte et consumimur igni
    1. Re:Pronunciation of Qt. by Capt.+Beyond · · Score: 1

      Its pronounced however you want it to be.
      Personally, I tend to pronounce the letters 'Q. T.". Most developers I know pronounce it 'cute'.

      --
      -- "Perceptions create reality. By changing your perceptions you change your reality."
    2. Re:Pronunciation of Qt. by Anonymous Coward · · Score: 0

      Use "cutey". Then, when you are with a chick and call her "cutey" by mistake (after all, you are Slashdot regular, aren't you?) and she responds with horror, you can say you were talking about the widgets...

    3. Re:Pronunciation of Qt. by Anonymous Coward · · Score: 0

      It wouldn't even be a lie, since I would be talking about her widgets.

  38. But by MAXOMENOS · · Score: 1

    The main problem with Swing is that the resulting code is S L O W and bloated. I definitely notice the difference between Swing and SWT even on my P4 2GHz box with a half-gig of RAM.

  39. Another Wx fan here. Low restrictions. by guidryp · · Score: 2, Interesting

    Ok I only downloaded it 2 days ago. But it looks really good to me and doesn't have Qt restricitons. After buy both Borland C++ builder and VisC++ I now plan to use only Wx.

    Quote from the FAQ:
    " ...basically you can distribute proprietary binaries without distributing any source code, and neither will wxWindows conflict with GPL code you may be using or developing with it. The conditions for using wxWindows 2 are the same whether you are a personal, academic or commercial developer."

  40. wx, please. by ivern76 · · Score: 0, Troll

    No reason to keep promoting a non-free project like Qt. http://www.wxwindows.org/ provides a free cross-platform, multi-language library...give it a try!

    1. Re:wx, please. by a_karbon_devel_005 · · Score: 1

      except that the docs suck and Qt is much better, yeah, great. Qt is FREE as in beer and speech if you are writing OSS projects, so that's what counts. If you want free stuff for your commercial ventures, you ought to give credit where it's due.

    2. Re:wx, please. by ivern76 · · Score: 1

      Nope, nothing to do with commercial ventures. What's the point of having a cross-platform library that is free on some platforms and non-free on others? (Try finding an up to date Qt for Windows).

      If Qt was free, you'd see all that free Qt-based software running on Windows. Since it's not, all it is is a convenient free GUI library for X programmers...forget the cross-platform idea.

      WxWindows, on the other hand, is free on all platforms it supports...and supports Python as well as C++. The docs might not be as good as Qt's, but they're good enough.

    3. Re:wx, please. by Jason+Hood · · Score: 0

      WxWindows is slow and cumbersome. It also makes apps look like they were written for win95. Ill stick with Qt as it is fast, very customizable, and has more support for other languages. WxWindows definitely has its place, but its popularity and future is limited.

      --
      Are you intolerant of intolerant people?
    4. Re:wx, please. by Anonymous Coward · · Score: 0

      WxWindows, while workable, is nowhere near the same sort of quality of finish as Qt is.

      Still, I will wait for their port to PocketPC - I will take anything over Win32 and MFC.

    5. Re:wx, please. by kingkade · · Score: 1

      That was well put.

      It seems to be a perfect solution: Qt so you can learn how to use it for yourself and personal or free projects w/o paying license fees and when you bring your experience to the commercial area, either through your own commercial project or a job, you can keep your code open and pay nothing or keep your code close to protect yourself but pay a license fee.

      And now Trolltech has another developer who knows how to use it's APIs and even contribute bugs back since their code's always open.

    6. Re:wx, please. by JCholewa · · Score: 1

      > If Qt was free, you'd see all that free Qt-based
      > software running on Windows. Since it's not, all
      > it is is a convenient free GUI library for X
      > programmers...forget the cross-platform idea.

      There actually is a GPL'd
      native Qt for Win32. Trolltech didn't release one, but the community eventually got around to it. They're still working on it, but the feature set is mostly complete, although it does need performance improvements.

      By the way, don't confuse this with the version of Qt made for Cygwin. This Qt does not need to be on Cygwin's X implementation.

      --
      -JC
      coder
      http://www.jc-news.com/parse.cgi?coding/main

    7. Re:wx, please. by gurensan · · Score: 1

      Your link points to the cygwin version.

      --
      You are all fartheads.
  41. More like bastardized C++ by ajboyle · · Score: 2, Insightful

    Speaking of portability, QT is a bit problematic, as they use non-standard C++ extensions to accomplish their purposes. (Something that the GTK C++ extensions purposely avoided.) Similar to what Microsoft has done with C++.

    C++ has been my language of choice for the past 10 or so years, but it's sad to see the bastardization happening all over by these toolkits.

    1. Re:More like bastardized C++ by Anonymous Coward · · Score: 0

      They use the non-standard stuff, because the majority of C++ compilers in real environments can't cope with the STL and other standard developments, so they have to be wrapped around.

      And if you have to write a revised class to get it to work on a bad compiler, you may as well have great extensions, like QT QString class, with strong internationalisation support, implicit casting and other stuff involved. This is why QT applications are so portable, and why, for example, KDE can be easily ported to other systems, such as Solaris and OSX.

    2. Re:More like bastardized C++ by SlayerDave · · Score: 1

      I believe the poster was talking about mechanisms like the slots mechanism, which requires you to run the MOC preprocessor before you actually have valid C++. Among other annoyances with this system, emacs won't indent your code properly. Although Qt is generally a pretty nice and easy to use library, the signal/slot mechanism is obnoxious and definitely nonstandard.

    3. Re:More like bastardized C++ by Brandybuck · · Score: 0

      they use non-standard C++ extensions to accomplish their purposes

      You have been misinformed. Qt uses completely standard C++, with only minimal use of templates to keep the less-compliant compilers happy.

      BEFORE you fire off a retort about signals and slots not being standard, I suggest you learn a little bit about them. The "signal", "slot" and "emit" tokens are MACROS! Last time I checked, macros were part of the C++ standard. You can indeed compile any Qt program with any standard C++ compiler. If these were new unstandard keywords, then you would not be able to do so.

      However, you would not be able to link these object models. That's what MOC is for. It generates the missing code needed to link. For example, the statement "emit mouseover()" compiles to a call to the mouseover() function. MOC generates the implementation for this function.

      The Qt signal/slot paradigm is accomplished by three simple macros and a code generator. That's it. If you don't like MOC (which by the way, is a fully standard C++ program), you are free to write your own raw signal/slot code by hand.

      --
      Don't blame me, I didn't vote for either of them!
    4. Re:More like bastardized C++ by spitzak · · Score: 1

      Qt requires a preprocesser to turn human-readable code into those signal/slot macros. So to use the GNU definition of "the form normally used to write code" the language used to program Qt is not C++.

      As far as I know, Microsoft's mangling of the C++ language was not done to support MFC. MFC works around the lack of many things in the earlier versions of VC++, but it does so using legal C++ code.

    5. Re:More like bastardized C++ by arkanes · · Score: 0, Troll

      While you may be (pedantically) correct, the fact is that a standard C++ compiler cannot create a working executable from Qt sourcecode without a non-standard tool. This is hardly standard use of C++.

    6. Re:More like bastardized C++ by Brandybuck · · Score: 1

      GTK+ (as an analogous example) uses preprocessing macros. Even the lowly #include statement is not a part of the C language. Maybe the language used to write GTK+ is not C!

      --
      Don't blame me, I didn't vote for either of them!
    7. Re:More like bastardized C++ by Brandybuck · · Score: 1

      Maybe I can't create an executable from Qt sourcecode without MOC, but if you stop to think about if for a couple of seconds, you'll realize I can't create the executable without the libqt.so library either! Since MOC comes with every copy of Qt, it's no big deal.

      You can't create a GTK+ application without the non-standard tool called GTK+. Why should Qt be held to a different standard?

      --
      Don't blame me, I didn't vote for either of them!
    8. Re:More like bastardized C++ by mill · · Score: 1

      Perlcc translates Perl code into C code. Voila! All of a sudden Perl code is actually C code.

  42. Perl? Python? by arevos · · Score: 1

    Perl and Python are WORA as well. They're often faster to develop in than Java, and have toolkits such as Qt and wxWindows. Personally, if I wanted a WORA application, I'd use Python/wxWindows to do it. It would be slower to run, but for most applications that doesn't so much matter.

    If you want speed, then compile your software. Qt's GUI library is better than any for Java. No, really. I can't comprehend of anyone who has used both systems of prefering Java. Likewise, Python is a better language than Java is. I'd say this is all my opinion and whatnot, but, well, I can't believe that anyone that has used both Java and Python extensively could possibly think the former was better for client application development.

    The only time you'd need Java for a desktop application, is if you need speed desperately, and you really, really don't want to have to compile it to get that speed.

    1. Re:Perl? Python? by Trejkaz · · Score: 1

      I always find it funny that Python fans will shout how much better their language is than Java, seemingly trying to drown out the voice of Ruby fans who already have a language better (or at least, more object-oriented) than Python. :-)

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    2. Re:Perl? Python? by arevos · · Score: 1

      I'm not really a "fan", per se, of Python. I'm in favour of using the language which is best for the job. Ruby may be better than Python at some things. Lisp may be better than Python and Ruby at others. So what? I'm just claiming Python is obviously better than Java, as a language. I fail to see your point.

  43. Someone buy Trolltech and LGPL it...PLEASE! by mrm677 · · Score: 3, Insightful

    QT is awesome. Its license isn't. Before you dismiss this as another ill-informed troll message, consider this:

    I am involved with a university research project. We started developing our app using QT, but had to quickly abandon it due to the GPL issue. Due to complications with funding and grants, we can't currently open-source our project. And we will not be obtaining QT Developer's licenses for the following reasons:

    1. The bureaucratic mess. A proposal would have to be written, alternatives examined, and so forth. This could take too long. This crap is the way many universities work...most software is given to us or obtained very cheaply with academic licenses.

    2. Cost. $1550 goes a long ways in funding graduate students. Our research director would rather hire more students with the money saved. Even Microsoft Visual Studio, which includes far more than GUI widgets, is only a couple hundred bucks for the academic edition.

    I think this is one example of why this is hurting the Linux movement. GTK is LGPL...QT should be the same. I know that TrollTech needs to pay their developers, but I sure wish someone like IBM would buy them out and LGPL QT. For something intregal to a platform, such as GUI toolkits, having to spend $1500 for a license to develop a close-source application just isn't good. Also consider small-time shareware developers. I know that shareware isn't popular in Linux, but its a way for a developer to get payed for creating that unique, niche application

    Of course my arguments are based on my opinion that KDE/QT is superior to Gnome/GTK, and that if it weren't for the license issue, it would be the dominant platform today.

    1. Re:Someone buy Trolltech and LGPL it...PLEASE! by JLyle · · Score: 1
      Before you dismiss this as another ill-informed troll message, consider this
      No pun intended ;)
    2. Re:Someone buy Trolltech and LGPL it...PLEASE! by Anonymous Coward · · Score: 3, Informative

      With all due respect, you need to clarify your grant/funding issues.

      If you are producing something which is non-commercial, then there should be no issue with the GPL. You aren't selling it, so you don't need to distribute source. Moreover, you are working with a university, which absorbs public funds and has an obligation to contribute to public knowledge and development.

      If the issue is that a private company is using you as a cheap research arm, producing a product for them, then they should easily be able to fork out for a license. You should remember that as a university researcher, you also have a responsiblity to society, even in these circumstances, to attempt to return value back to the public domain.

      Finally, a rudimentary search of the Trolltech web site will show you that there is an educational licensing scheme specifically aimed at universities, which you could take advantage of, for teaching etc.

      Quite simply:
      1) If you want to research, Trolltech will help you out; they'll bend over backwards to help.
      2) If you want to make money, pay them a license and be done with it.

    3. Re:Someone buy Trolltech and LGPL it...PLEASE! by Anonymous Coward · · Score: 1, Informative

      You do know that there is a academic license for Qt as well, don't you?

      And just for bringing that shareware "problem" you should be considered a troll.
      If it where only for the licensing costs, we would see shareware developed for other, gratis, toolkits.

    4. Re:Someone buy Trolltech and LGPL it...PLEASE! by Capt.+Beyond · · Score: 4, Insightful

      The only reason why you would want to use the LGPL, is that you want to keep your code proprietary and to yourself.

      Qt is superior to gtk because it is created by professional developers, not college students.

      Perhaps if you did some research into Trolltech's licenses you would figure out that Trolltech has Edu licenses as well.

      It's LGPL that is hurting Linux, as Linux is about free software, LGPL is only about proprietary software. Do you really want Linux to have more non free, closed source, proprietary software??

      --
      -- "Perceptions create reality. By changing your perceptions you change your reality."
    5. Re:Someone buy Trolltech and LGPL it...PLEASE! by Anonymous Coward · · Score: 0

      isn't GTK LGPL'ed?

    6. Re:Someone buy Trolltech and LGPL it...PLEASE! by binary+paladin · · Score: 1

      I can always expect any discussion concerning GTK or QT to bring out some of the biggest morons on the block.

      Trolltech made Qt and they can license it however they want. There, that was easy. They have no obligation to you or to me to allow you or me to make commercial software that's closed source for free. I am so sick and tired of the LGPL whining. I'm not terribly interested in people who want to take from the Open Source community and give nothing back and the way QT is set up is simply, if you don't want to give back, pay up.

      If stealing code is your thing, GTK is sitting there waiting to be used shamelessly. If you want to close your source up, pay up. Otherwise, open up. If you're requirement is LGPL, don't use something that isn't LGPL'd. It's really very simple.

    7. Re:Someone buy Trolltech and LGPL it...PLEASE! by yerM)M · · Score: 2, Interesting
      This really seems like you trying to get something for nothing. Just so we are on the same page, I also develop for an academic institution. There are plenty of good widget systems that are free to use, wxWindows comes to mind for instance. It just boils down to the fact that you don't want to release your source code.

      Trolltech has a free as in freedom liscense, take it or leave it. I have a lot of respect for them for doing this. Their source code is released and open to the public. They seem to have made a compelling product since you would like to use it. This is the dream for most programmers :)

      You mention shareware as a way for developers getting payed but in the same breath don't want to pay TrollTech for their work.

      Okay, this is a bit harsh, I think, based on your post. What do you think should be a per-seat price for TrollTech? Here is a potential alternative: BlackAdder, which is an integrated Qt + Python gui designer and runtime, runs at $400 a seat or $300 a seat for a developer networks. Python + Qt royalty free = $400 = yummy.

      By the way, having no real relevance to your post, as someone who works in academia and insists that every government funded program that I work on releases open source software, I'm assuming your proposals would involve seeking government grants which, by the way, I pay for in taxes. Why isn't grant funded source code GPL'd in the first place since I'm paying taxes for it?

    8. Re:Someone buy Trolltech and LGPL it...PLEASE! by Brandybuck · · Score: 1

      I now know why you're in academia instead of business. Why should I spend tens of millions of dollars for Trolltech, only to instantly eliminate their its sole source of revenue?

      Compare how much revenue LGPL GTK+ has earned in the last year...

      --
      Don't blame me, I didn't vote for either of them!
    9. Re:Someone buy Trolltech and LGPL it...PLEASE! by Capt.+Beyond · · Score: 1

      Yes it is. Which is why Gtk should not be used in free linux systems. My point being, the only reason why the LGPL exists, is to provide businesses a way to create closed source software, linking/compiling against free software.

      --
      -- "Perceptions create reality. By changing your perceptions you change your reality."
    10. Re:Someone buy Trolltech and LGPL it...PLEASE! by Anonymous Coward · · Score: 0

      Excellent argument, please point me to a GPL version of qt/win32 ...

    11. Re:Someone buy Trolltech and LGPL it...PLEASE! by rmohr02 · · Score: 1
      The only reason why you would want to use the LGPL, is that you want to keep your code proprietary and to yourself.
      Or he wants to release his code under a less restrictive open source license.
      Qt is superior to gtk because it is created by professional developers, not college students.
      I have no direct experience with either of these toolkits, but I can draw many comparisons between software that's developed by professionals and software developed by college students wherein the college students made the better product.
    12. Re:Someone buy Trolltech and LGPL it...PLEASE! by Anonymous Coward · · Score: 0

      Do you really want Linux to have more non free, closed source, proprietary software??

      I certainly do. I don't want to keep that stupid Windows partition just in order to play a few games and use Photoshop.

    13. Re:Someone buy Trolltech and LGPL it...PLEASE! by cheeser · · Score: 1

      If gtk was developed by college students they should be kicked out. I've always suspected narcoleptic epileptics were to blame...

      --

      --
      http://cheeser.blog-city.com

    14. Re:Someone buy Trolltech and LGPL it...PLEASE! by infiniti99 · · Score: 1

      I have no direct experience with either of these toolkits, but I can draw many comparisons between software that's developed by professionals and software developed by college students wherein the college students made the better product.

      I totally agree with you, as I'm a college student and I think I put out some pretty good software ;-), but I think in this case the professionals have the better product. As noted in the parent post: if Gtk were technically better than Qt, we'd all be using Gtk and no one would be complainining about the GPL.

      To quote the review, it seems that people prefer Qt because they 'like' it. They like the system, the API, the docs, or what have you. Developers that prefer Gtk seem to choose it based either that it is native C ("I don't need no skinking C++!"), or that the license is LGPL. Personally, I don't consider the language argument to be very strong. I used to be a C guy myself, but because of Qt I use C++.

    15. Re:Someone buy Trolltech and LGPL it...PLEASE! by spitzak · · Score: 1
      Or he wants to release his code under a less restrictive open source license.

      Actually this is a good question. It seems you can do this already! The code just calls Qt. If you release just your code the reciever of the code can compile it and link with their copy of Qt. If the receiver happens to have a developers license, then they can sell it as closed-source (assumming you released the code as public domain).

      Of course this gets into the realm of sending a non-GPL "patch" to a GPL source and saying you are not violating the GPL. But the reason that is not allowed is because the patch is not the "common form that is used to develop the code". But a program that just calls Qt without changing it can easily be considered to be the "common form used by developers", especially if you assumme all receivers already have Qt installed. Is this then not a derived work?

    16. Re:Someone buy Trolltech and LGPL it...PLEASE! by mrm677 · · Score: 1

      It's LGPL that is hurting Linux, as Linux is about free software, LGPL is only about proprietary software. Do you really want Linux to have more non free, closed source, proprietary software??

      Yes, I do want more non-free, closed source, proprietary software available on Linux. Photoshop, Microsoft Office, FrameMaker, and Call of Duty are some examples.

    17. Re:Someone buy Trolltech and LGPL it...PLEASE! by mandolin · · Score: 1
      The only reason why you would want to use the LGPL, is that you want to keep your code proprietary and to yourself.

      That's overstating it. You might prefer a GPL-incompatible, but Free, license (check the FSF's site, there's plenty of them). This is somewhat mitigated with Qt since it is dual-licensed under the QPL.

      Qt is superior to gtk because it is created by professional developers, not college students.

      "Microsoft is superior to Linux because it is created by professional developers, not college students"

      Perhaps if you did some research into Trolltech's licenses you would figure out that Trolltech has Edu licenses as well.

      Very good point! Academic institutions should check this out.

      LGPL is only about proprietary software

      Then I guess BSD and XFree are even *more* about proprietary software. Come on...

    18. Re:Someone buy Trolltech and LGPL it...PLEASE! by bfree · · Score: 1
      Do you really want Linux to have more non free, closed source, proprietary software??

      Yes, if it is using Free components! Let me take a simple example which demonstrates why I would still like to see the LGPL being used for libraries and similar building blocks. Imagine Adobe is considering bringing Photoshop to Linux, would you rather they wrote their own (jpeg/toolkit/compression) libaries, picked up a BSD/Public domain one, patched an LGPL one and distributed their improvements or just said to hell with Linux, we won't release?

      I see the long term victory of Free Software being derived from a continuous chain where users who need software to perform specific tasks, find that each year less and less of the software they require is commercial and more is Free. As pieces are created totally Freely, they lessen the itching of developers to work on that area, and set them looking for new challenges. Any piece of software (such as QT) which requires commercial licensing is always a potential target. Any piece of software which is essentially a basic software building block should be used consistently, and just because someone is trying to write a commercial program shouldn't mean they have to re-invent lots of wheels and provide their users with a less satisfactory solution. Free software is about the users freedom, and if everyone (commercial and Free developers) works on the same code for the basic building blocks, then the user is in a better position (the core of their system is more solid/developed). If only Free software authors can use Free software libraries etc, then Free software has to create everything before it is a valid platform. The easier it is for commercial developers to bring their work across, the easier it is for the user to have a complete solution, the larger the "market" for people to write Free alternatives to remaining commercial programs and the more people are working on Free software as a whole as they can assemble the system they need to get their work done.

      --

      Never underestimate the dark side of the Source

    19. Re:Someone buy Trolltech and LGPL it...PLEASE! by Empty+Threats · · Score: 1

      "Do you really want Linux to have more non free, closed source, proprietary software??"



      Yes. Any kind of software available for the platform is good software.

      Also, Open-source does not necessarily imply "free". There was a time when most software was open-source and none of it was free.
    20. Re:Someone buy Trolltech and LGPL it...PLEASE! by vectra14 · · Score: 2, Informative

      I also work on a university research project (robocup.mae.cornell.edu). We had no problem getting an educational license from Qt. Just apply for an edu license and they'll give you links to the appropriate binaries. (though it may take a bit of time - week to 2 weeks)

      the only difference from the GPL/commercial versions is you don't get the full source. otherwise, exactly all the features of the latest version.

      good luck
      -sergei

  44. GNOME is trying... by Ars-Fartsica · · Score: 1

    GNOME probably is further ahead in bindings for practically any major language and they are working hard to make it even easier to implement bindings to arbitrary languages.

    1. Re:GNOME is trying... by Anonymous Coward · · Score: 0

      GNOME probably is further ahead in bindings for practically any major language and they are working hard to make it even easier to implement bindings to arbitrary languages.

      Is there a Windows version? I think an HTTP-friendly GUI system would be popular in intranets. DOM+JS sucks for business forms.

  45. Re:TrollTech by Anonymous Coward · · Score: 0

    Is it good, or is it whack? What is it all about?

    Is it good or is it whack?

  46. Meh by JMZero · · Score: 1

    Windows Forms in .NET aren't coupled with any particular language. I'm guessing that wasn't the answer you were looking for, though.

    --
    Let's not stir that bag of worms...
  47. Re:write once, runanywhere is more than a GUI tool by zarr · · Score: 1

    Does a project with > 300 source files, using about 20 external libraries qualify as "mildly complex". Thats what i'm working on now and Eclipse is smoooth! This isn't state of the art hardware either, a dual p3 800mhz.

  48. Qt is GPL'd you dolts! by Anonymous Coward · · Score: 1

    Qt has been released under a twin QPL/GPL license since 2.3. The people at TT made a version of Qt3 that's GPL'd for linux, and a QPL'd version for windows.

    Just because the TT people didn't release GPL'd windows version doesn't mean you can't port the linux one over, and in fact, it's being done right now.

    Jeez, they give us a great free library and everybody bitches. If you don't like TT's QPL'd Win32 Qt3, help port the GPL'd one over then.

    TT's QPL version of Qt for windows will always be better/faster. Thats why you pay money. There will always be a GPL'd version though, and they can't take that back from us.

    Now they can make a Qt4 that's not GPL'd at all, but then we'll have two standards. Which standard do you think will survive, the open one or the closed one?

  49. Some others by Theatetus · · Score: 1

    Don't forget SDL (mostly for games, but still, it has bindings for just about every language with a compiler). And btw tk doesn't require "a specific interpreter" to be installed; the library has bindings for all sorts of languages.

    Plus you can call the various Windows graphics toolkits from a host of languages, particularly once you consider .NET

    --
    All's true that is mistrusted
  50. And while you're at it... by JLyle · · Score: 1

    ... don't forget about FOX, which is written in C++ but has bindings for other programming languages as well.

  51. Re:Four things I don't care about! by Anonymous Coward · · Score: 0

    I don't go to say, cheese-rolling.com and talk about how I'm not interested in rolling cheeses. Arevos, you bastard! And here i was all ready to see some good 'ole cheese rolling, just to get a big fat "no such host" in my browser. Don't tease us like that!!!

  52. Simple language by InodoroPereyra · · Score: 3, Insightful
    From the review:

    The language of the book is simply to follow

    This is so important. Some of the ... well, probably most of the C++ documentation is so complex that scares people off. Granted, the language is complex. But you can always present documentation in a friendly manner, with examples, and leave subtle points for a separate, advanced discussion. But I have the feeling that some C++ experts want to be part of an elite of a few enlightened people who know it. Too bad because it is a great language.

    In this regard, Qt is a beautiful C++ toolkit, easy to use, really friendly, nicely integrated and documented. Not to mention the great RAD tools like QtDesigner ...

    1. Re:Simple language by bytesplit · · Score: 0

      This very issue also exists in the Linux community. Debianists are perhaps the WORST when it comes to asking for assistance from them. They're experts at tearing you down. Visit #debian for proof.

      --
      real geeks hate soap operas.
  53. Re:write once, runanywhere is more than a GUI tool by Jason+Hood · · Score: 0

    Yeah same here I have 3000 source files, run Intellij's Idea (Java Based IDE) on a 1Ghz/512MB athlon and it responds seemingly as fast as a native app. I also run Jboss, Oracle and listen to music in the background.

    --
    Are you intolerant of intolerant people?
  54. Re:write once, runanywhere is more than a GUI tool by mark_lybarger · · Score: 1

    but even Eclipse is *still* sluggish when running with a mildly complex project.

    yeah, i hate that eclipse requires hardware from this century. modern software, modern hardware. what's that all about? SWT doesn't look or feel the same on linux (crap GTK) as it does on windows, but thats about the best they can do for now. Actually, if TT would go under and IBM could take a BSDish version of QT to use with this SWT, then it would be the same across platforms.

  55. Qt4? by SlayerDave · · Score: 2, Interesting

    There was a Slashdot post a few months ago about Qt4 which stated that Qt4 was scheduled to be released in early 2004. Does the publication of this book indicate that the Qt4 release date has been pushed back? I hope not, because some of the proposed changes in Qt4 seem interesting, especially the introduction of model/view architecture for the table, list, and tree view widgets.

    1. Re:Qt4? by Capt.+Beyond · · Score: 2, Interesting

      I dont think there ever has been a date scheduled for Qt 4 release. Any information you may have gotten about Qt 4, was not official.
      Stay tuned...

      --
      -- "Perceptions create reality. By changing your perceptions you change your reality."
    2. Re:Qt4? by Anonymous Coward · · Score: 0

      some of the proposed changes in Qt4 seem interesting, especially the introduction of model/view architecture for the table, list, and tree view widgets.

      I certainly hope so. The design of the QTable class in particular is quite bad. Each cell takes up ~ 40 bytes of memory - which makes it a pig for large tables. Why TrollTech did not use an abstract base class (with no data members!!) with pure virtual functions for the QTableItem class - we'll never know. The alternative to paint your own cells is far too much work and is not elegant.

  56. Re:Four things I don't care about! by Un+pobre+guey · · Score: 1
    "1) C++ (Because I can do everything in C), 2) Qt, 3) A book about both, and 4) The opinion of someone who writes GUI in C++ with Qt and reads a book about it," grunted the malodorous little troll as he skillfully picked his nose with his left hand and masturbated with his right.

  57. Shut yer yap by Anonymous Coward · · Score: 0

    you whiney biatch.

    How't that for a thorough explanation?

  58. Finally, Trolltech speaks ... by Anonymous Coward · · Score: 0

    "Pay no attention to the man behind the curtain.
    The great Oz has spoken! Go home !!!"

    1. Re:Finally, Trolltech speaks ... by Anonymous Coward · · Score: 0

      The sky is falling! The sky is falling! Dorothy in the Wizard of Oz was more of a man than you'll ever be. I already told you - don't be such a whiney biatch.

    2. Re:Finally, Trolltech speaks ... by Anonymous Coward · · Score: 0
  59. Re:I would say Java is less of a "monopoly" than Q by lspd · · Score: 1

    I believe that C/C++ is more portable across more platforms than Java will ever be, not to mention it's more solid and efficient.

    That's not what the parent poster was claiming. He was comparing QT with Java. Does QT run on OS2 or Mac OS9?

  60. Redistribution Issues? by The+Closet+Optimist · · Score: 1

    I want to ask a very cloud-level question here between the WxWindows and QT toolsets. My thanks in advance for anyone that can attempt to answer this.

    I my understanding is correct, a robust application developed with WxWindows would essentially just consist of the actual executable, because the controls used by the application (such as a tree view, list view, etc.) are native to each operating system. That is, in Windows, for example, the binary libraries that supply these controls are simply being wrapped in the WxWindows layer, meaning that WxWindows isn't supplying it's own library components that would have to be distributed with each application.

    Qt, based on my very slim understanding, supplies its own binary libraries that would have to be redistributed with the application? Is that correct? Would a QT application compiled for Windows require the redistribution of the entire/partial QT libraries with the application?

    Thanks to anyone who can answer this...

    --
    "It isn't necessary to completely suppress the news; it is sufficient to delay the news until it no longer matters." - N
    1. Re:Redistribution Issues? by guidryp · · Score: 1

      From my brief examination of wxWindows, I am under the impression it may be a bit closer to native than Qt, but still some functionality in WX is coded and not merely wrappers. There is a wxlib that is a binary.

      The big difference is that with wx you can distribute your app either statically linked (one executable) or dynamically linked (separate dll) without paying any fees, even in commercial applications.

      Qt will charge you for this...

    2. Re:Redistribution Issues? by arkanes · · Score: 1
      wxWindows does use native widgets. However, theres alot more to wx (and to Qt, for that matter) than just a set of widgets - there's event handling, application frameworks, all sorts of convenience classes, etc, etc, etc.

      Theres also a great deal of wrapping done to present a consistent UI over inconsistent platform-specific APIs and widgets. Therefore, there is indeed a wx library which you must link to. You can, however, statically link to it which allows you to ship a single executable rather than an EXE + binary. I'm not sure if Qt allows this or not (the non-commercial version does not).

      There are also, of course, the licensing differences.

    3. Re:Redistribution Issues? by The+Closet+Optimist · · Score: 1

      Thanks for your help (and the parent poster's as well.) My question was posed because I wanted to have some ballpark idea of re-distribution from a download size standpoint. Specifically, would the user have to download a program, but also 100MB library to get the program to run?

      From what I gather, the WxWindows download scenario would most likely be a smaller one, since it seems to be more wrapper-based. I think I read somewhere that AOL's Communicator program was written with WxWindows (but the core of Wx was modified for AOL's needs.) Not sure if that was true or not but it seems to stick in my head as being so.

      Anyway, thanks for your help. I appreciate it.

      --
      "It isn't necessary to completely suppress the news; it is sufficient to delay the news until it no longer matters." - N
    4. Re:Redistribution Issues? by arkanes · · Score: 1

      Linking statically to wx adds about 400k, using wxMSW and MSVC++. You get a little more as you use more classes, but it grows at a fairly slow pace. The CVS version of wx splits the library into several sub-libraries, which lets you get that even smaller if, say, you don't need network libraries or the HTML control. AOL Communicator was indeed built with wxWindows, and while they did patch wx I don't believe it was any major structural changes.

  61. Java vs Qt licensing -- Mod the Parent Up by Anonymous Coward · · Score: 0

    The parent poster is absolutely correct.

    The main advantage of Java over Qt is in the licensing. Sun does _not_ have a monopoly on Java (except on the name/trademark), whereas Trolltech _does_ have a monopoly on Qt.

    If I am a commercial developer, and I want to program in Java, I don't have to go to Sun. The licensing of Java is such that anyone can write and distribute a Java VM. The only thing Sun retains the rights over is the Java name.

    Thus, I can write my application in Java, and ignore Sun. I can instead use a JVM from IBM, Borland, HP, BEA, Novell, and so on. There are also Open Source Java implementations. In other words, I can use Java, and not pay any money to Sun, nor have any IP obligations to Sun.

    But if I am a commercial developer, and I develop with Qt, then I must go to the one and only supplier of commercially-licensed Qt, which is Trolltech. My situation is much the same as it would be with Microsoft's Visual Studio. Because there is only one supplier of commercially-licensed Qt, I am stuck with that supplier. If Trolltech chooses to raise their prices in the future, then I will have to pay the higher price, or stop using Qt. If Trolltech decides that they will only support Xandros, for example, then I will be forced to either use Xandros, or stop using Qt.

    Personally, I think that commercial developers who tie themselves to Qt are almost as foolish as the ones who tie themselves to Visual Studio. Has the Windows experience taught them nothing?

    I would much rather use Java. It is widely supported, mature, and inexpensive (or even free) to use. Plus, according to job listings, Java is now tied with C/C++ as the most popular language used in business.

  62. Chicken and egg.... by Kjella · · Score: 1

    Of course my arguments are based on my opinion that KDE/QT is superior to Gnome/GTK, and that if it weren't for the license issue, it would be the dominant platform today.

    I agree QT is superior to GTK, but ask yourself - if the licence is different wouldn't then QT be quite different too? Quite probably it wouldn't have the qualities to be a "dominant platform".

    Like it or not, the revenue created from those licences are what has made QT what it is today. In fact, you might ask who's piggybacking who - is the OSS community piggybacking Trolltech, or is Trolltech piggybacking the OSS community?

    The truth is somewhere in between, but I don't have a problem with that. The result is that we have a great toolkit licenced under the GPL licence, and under constant improvement as far as I can tell.

    And quite frankly, if what you do a) needs to be redistributed and b) can't follow the GPL, then I don't have a problem with you paying. Research or not. If it's public research, well then make it public (GPL). If it's not, cough up the $$$.

    Kjella

    --
    Live today, because you never know what tomorrow brings
  63. C++ SUCKS by Anonymous Coward · · Score: 0
  64. Help me out ... by Anonymous Coward · · Score: 0

    Canopy has absolutely no say in the running of Trolltech

    You people keep proving my point: Trolltech
    needs to come clean on exactly what their
    relationship is with Canopy, Ralph Yarro
    and SCO.

    The scary part is this : Canopy and SCO may
    have warrants on Trolltech ( that is the ability
    to buy Trolltech at a later date).

    That is how outsiders can take control of a
    company.

    Trolltech could clean it all up by spelling out
    exactly what their relationship is with Canopy.
    They could also say "We fully support free
    and open Linux and we feel that Canopy and SCO,
    who are part owners of us, are wrong. We
    hereby part ways with Canopy and urge all
    stockholders to vote with management to replace
    Ralph Yarro with someone else".

    It's so simple to that it is *scary* that
    they haven't done it aleady.

    1. Re:Help me out ... by arevos · · Score: 1

      You people keep proving my point: Trolltech
      needs to come clean on exactly what their
      relationship is with Canopy, Ralph Yarro
      and SCO.


      Huh? What does it matter? Canopy can't tell Trolltech to do anything the employees don't want. So the Canopy owning stock issue is moot; it all depends on what the Trolltech employees want to do. You might as well ask Trolltech to come clean on exactly what their relationship is with William Shatner. He can exert as much influence on Trolltech policy as Canopy can; i.e. none.

      The scary part is this : Canopy and SCO may
      have warrants on Trolltech ( that is the ability
      to buy Trolltech at a later date).

      That is how outsiders can take control of a
      company.


      Uhuh. And who, exactly, would care? I mean firstly, it's highly unlikely to be bought by Canopy, and astronomically unlikely to be bought by SCO. But even if it were bought? So what?

      Qt is GPL.

      If the Qt library goes in a direction that the Open Source community doesn't like, it can be forked. Simple as that.

      Whilst it's commendable you care so much about Trolltech, the Qt library is fully GPL. So if, heaven forbid, the Trolltech ship goes down, it won't take Qt with it. That all said, I personally think Trolltech's doing a great job so far.

    2. Re:Help me out ... by Anonymous Coward · · Score: 0

      Huh? What does it matter?

      I'll spell it out ...
      C-A-N-O-P-Y-D-O-E-S-N-O-T-R-E-C-O-G-N-I-Z-E-T -H-E- G-.-P-.-L-.

      who, exactly, would care?
      Developers who don't want to pay a royalty to
      Canopy/SCO.


      Qt library is fully GPL.


      Acutally, QT is dual licensed.

      Don't pull a fast one one us!!!

      Nice try, though!

    3. Re:Help me out ... by Un+pobre+guey · · Score: 1
      I'll spell it out ...
      C-A-N-O-P-Y-D-O-E-S-N-O-T-R-E-C-O-G-N-I-Z-E-T-H-E- G-.-P-.-L-.

      By Jove, Holmes! You've got it! Thyey can pick and choose what licenses to abide by and which to ignore! By denying the existence of copyright law, they can do whatever they please! Brilliant, Holmes, Brilliant!

    4. Re:Help me out ... by Anonymous Coward · · Score: 0

      Look, Sherlock ...Trolltech could vote Ralph off the board
      and announce that they support Linus'
      position and not Ralph's. That'd clear
      up a lot of doubts.

      As soon as one of you guys can link to
      something that clears it up, I will shut up.
      I promise. That "KDE myths" link and that
      "SCO only owns a fraction of Trolltech" link
      don't do it for me. Sorry.

    5. Re:Help me out ... by arevos · · Score: 1

      C-A-N-O-P-Y-D-O-E-S-N-O-T-R-E-C-O-G-N-I-Z-E-T-H-E- G-.-P-.-L-.

      Well then that's tough. The GPL is based on Copyright law. They can "not recognise it" all the way into court and out the other side. It doesn't do them any good. Just because you don't "recognise" a law, doesn't mean it doesn't apply to you.

      Trolltech has said, in nice, clear, watertight legal writing, that anyone can do anything they like with the Qt library, as long as they pass on the modifications to the source. If Canopy, who have no control over Trolltech anyway, say that's invalid, then tough. There's nothing they can do about it.

      Anyone who claims that the GPL is unenforceable or against the constitution is just delusional. I submit the example of SCO.

      Acutally, QT is dual licensed.

      That doesn't make it any less fully GPLed, you idiot. All GPLed software is "dual licensed" anyway, as the author(s) retain their own copyright over it, even after it's been GPLed.

  65. Is there? by Kjella · · Score: 1

    I can't seem to find it on the download site. Is that just some "special edition" with the book, neither commerical nor publicly available?

    Kjella

    --
    Live today, because you never know what tomorrow brings
  66. Re:write once, runanywhere is more than a GUI tool by Anonymous Coward · · Score: 0

    Last time I looked at the Java API it contained
    VASTLY more thatn the POSIX-API.
    Just go check for yourself and be amazed.

  67. Re:write once, runanywhere is more than a GUI tool by Waffle+Iron · · Score: 1
    Last time I looked at the Java API it contained VASTLY more thatn the POSIX-API.

    Sure it contains a lot of stuff, but the issue at hand was OS abstraction APIs. That's only a small fraction of the libraries.

  68. Re:I would say Java is less of a "monopoly" than Q by Anonymous Coward · · Score: 0

    You do not have to GPL your code with Qt.

  69. Re:not Linux-only by Anonymous Coward · · Score: 0

    You can always port the GPL Qt to another platform, such as Windows. (No harder than porting Sun's code to your platform for free.)

  70. templates, exceptions, and compliance by wilsynet · · Score: 1

    And if its portability would be so great, why did complete, standards-compliant compilers only get available recently? Why do many projects choose not to use exceptions or even templates to avoid portability problems?

    Language standards evolve and it takes time for compilers to become compliant. Even ANSI C has seen some changes over the past few years -- and I guarantee to you that compilers didn't implement the new changes instantly. They don't evolve C++ to piss you off, they evolve C++ so that the language can serve you better. Forgive them if some of the new language features are hard to implement... hey, no one ever said building a compiler was easy.

    ISO C++ does have a larger grammar than ANSI C, but the features the syntax introduced by C++ aren't gratuitous. Read The Design and Evolution of C++ by Stroustrup and you'll understand the whys and musts of C++.

    As for why aren't templates and exceptions used in all projects... Well, there are good fundamental reasons why projects might choose to not use templates or exceptions or both, and they have little to do with portability.

    For example, while templates are fast and type safe, they also might explode the size of your code. So if small is what you need, you may find that using void * containers is cheaper than using templates.

    As for exceptions, it's understood that exceptions are slower than more traditional methods of checking status return codes. Some projects may need a better guarantee of performance than what exceptions might introduce to their runtime.

    C++ is all about making features affordable and at the same time giving you choices. If the language looks ugly, it's only because some non-trivial amount of ANSI C compatibility has always been highly desireable. C++ remains a practical choice for developing highly scalable, highly reliable software.

    1. Re:templates, exceptions, and compliance by __past__ · · Score: 1
      I understand how C++ became what it now is (although I think that some more cooperation between the C and C++ standards bodies would be a good idea to actually keep C++ a mostly-subset of C). I am aware that C-compatibility was, and is, a design goal. I am not, however, convinced that this goal, and the others that shaped C++, were the right ones to choose.

      Objective C is C-compatible as well, and while it is far from my dream language, it is a far more consistent language than C++ is. It does not have all the features of C++ however - it is just C combined with OO. It doesn't support generic programming, for example. But is it a worse language because of that? If you want genericity, why build upon a language that bases its broken type system on assumptions fundamentally opposed to it?

      Many languages support everything C++ can do, and better. Generic programming is no magic; the C++ way of doing OOP is rather limited; RTTI is a joke even in the context of other 80ies languages; its exception handling features are not only conceptually limited in comparison to its competitors, they don't even work well in practice; and the idea that it is "close to the metal" is only due to its inconvenience (as long as you happen to use a CPU designed after the VAX - in case anyone didn't notice, pointers are an abstraction that doesn't have much to do with how actual computers work; they are just a particularly useless abstraction).

      Oh, and when talking about templates or exceptions, I didn't mean the neccesity of defining a manageable subset of C++ for any given project to prevent utter madness, or because you care about executable size (templates) or the C++ runtime environment (everything else) - there are indeed projects who state that they do not use STL, RTTI, exceptions and stuff because they simply do not work portably. IIRC Xerces-C is a rather verbose one of them.

      If a language looks ugly, it's generally because it is. It was a cheap upgrade path from plain C, and in some environments that are pretty C++-centric, like Win32, there is no way around it. It is also possible to write working software using C++, of course, even in a large scale if you like fighting your tools, but I don't think that it is the best choice for many projects it is used for.

    2. Re:templates, exceptions, and compliance by Anonymous Coward · · Score: 0
      As for exceptions, it's understood that exceptions are slower than more traditional methods of checking status return codes. Some projects may need a better guarantee of performance than what exceptions might introduce to their runtime.
      This contradicts what is written in the D&E.
  71. What about Tcl/Tk ? by mezis · · Score: 1

    wxWindows is, granted, easy to learn and has a OO model for widgets.
    It's definitely not cross-platform, though. I'd say roughly 50% of its features work correctly (and similarly!) on both platforms -- I mean, GTK+ and Win32.
    The Mac port is a horrible bunch of undocumented, buggy, incomplete crap. It even manages to be ugly (well, Qt also is ugly under MacOS).

    Why don't people use Tk ? It's cross-platform too, and like Java, Tcl runs everywhere without recompiling. It doesn't even need to be compiled once!
    Is it just because it's older (therefore less hip) than Qt and wxWindows ?

    1. Re:What about Tcl/Tk ? by Anonymous Coward · · Score: 0

      Not only is the mac port buggy, but when you report a bug they are very quick to tell you "works for me", and then close it... THATS the reason why its sooo buggy and crappy!

    2. Re:What about Tcl/Tk ? by Anonymous Coward · · Score: 0

      Why don't people use Tk ? It's cross-platform too, and like Java, Tcl runs everywhere without recompiling.

      You don't need to use TCL to use Tk.

      With that said, TCL is a horrid little language and Tk isn't really a very flexible GUI toolkit. That's why no one uses either.

  72. Re:write once, runanywhere is more than a GUI tool by Trejkaz · · Score: 1

    I'd love to see an ELF binary transmit from Linux to Windows in the middle of a remote call and then run on Windows...

    --
    Karma: It's all a bunch of tree-huggin' hippy crap!
  73. Re:Four things I don't care about! by Anonymous Coward · · Score: 0

    "That carries about as much weight as saying, "I don't care about women because I can do everything with my hand.""

    Hey, my hand doesn't bitch at me about commitment and whatnot. It doesn't care if the place gets a tad untidy. And it doesn't think that being on the computer at 4 am is some sort of seriously abnormal behaviour. I have never felt an impulse to chop it off or suggest that we need to spend some time apart.

  74. Sun and Java are superior. by Anonymous Coward · · Score: 0

    Java is far superior in almost every way.

    Documentation--Java is amazingly superior. Go look at the manuals and references in Qt Designer, or on the TrollTech website. Examples suck, in the reference even the trivial classes have dozens of rarely used methods, and none of it is alphabetically indexed. Compare that to the Java 1.4.2 SDK--wonderful docs, examples and tutorials.

    Classes--Java (or STL) wins hands down. Qt is bastardized C++. There are duplicate classes for most of the STL, and they are named "QtWhatever". Tiresome and repetitive. They should back off and wrap only the GUI and use STL args to the GUI wrappers.

    GUI builder--Qt Designer tends to crash whilst moving children from container to container. The integration between Qt and KDevelop is nasty, and requires some research to get it all working. The naming conventions between properties and the methods used to access them suck! There is almost no correlation...you have to scan the reference for ages to find anything...unlike in java...take a look at netbeans.org to see something that works.

    Kdevelop--this, and Qt are supposed to be pretty cool. And, from a hacking point of view, they are. Except the debugger often doesn't work and you have to fall back on DDD to actually find out where the problems are happening. Kdevelop often ignores breakpoints or locates the wrong part of the code when there is a problem. DDD seems to be correct, from what I've seen.

    So although I use both Java and KDE/Qt, and I have to continue using both, I think TrollTech and the KDE people are riding a wave of popularity that is in their heads. It needs a lot of work to be viable.

    Sun and Java? Will it remain free? I don't know. The licensing is much, much better for people who are paid to program and want to write some throw away code, or a quicky project. The TrollTech licensing could leave you with big problems from the instant you launch Qt Designer (and are paid to use it, even as an ISV) even if just for a minute.

    Think about how much that sucks. I'm an ISV, and I have no intention of buying a TrollTech license, I just don't make enough to afford $1550 a year. The one time I tried to get a customer to pony up for it, they laughed at the price. They want C++, they like KDE and Qt, but they think the licensing and price are absurd and I agree. Am still trying to get them to use Java. These are just small internal apps, nothing for sale, nothing anyone outside our industry would care to use.

    SCO at one time was a friend of Linux, they were a big community supporter, etc...but the CEO or ownership or whatnot changed. Then they became they antichrist.

    If TrollTech does the same thing, think about the legal consequences. It's nightmarish...people installing it have no idea they are responsible to either pay or release their code under the GPL. No warning whatsoever.

    And reading the Qt license it says "commercial use" a lot. A lawyer would have fun with that term I think. When a secretary launches OpenOffice on a machine with the Qt libraries installed, is that commerical use? She's developing docs, getting paid to do it. This is not as wild a claim as SCO is making, in my opinion...and IBM and Oracle are switching to Linux...you figure it out.

    Even just writing a throw away test project, for a couple of weeks, could leave your company open to lawsuits from TrollTech. That's the way they wrote the license, and it's what lawyers do to make money.

    At least with Sun, Microsoft and Borland, things are a lot clearer, no wondering who will someday own the company, etc.--or start looking for people to sue.

    1. Re:Sun and Java are superior. by Capt.+Beyond · · Score: 1

      If a customer is worried anout paying $1550/year for a license, point out how minimal that is compared to what they pay developers per year. In most commercial outlets, Trolltech's license prices are a trivial part of the total cost of development.

      Qt's function naming provide an easy way to
      remember them.

      Trolltech is mostly owned by it's employees. It's not going anywhere anytime soon. Can you say the same for Sun? Is it mostly owned by its employees? Is Microsoft? or IBM? Who ownes those companies?

      I am sure Trolltech's attorneys are competent, and ok'd or wrote the licenses correctly.

      --
      -- "Perceptions create reality. By changing your perceptions you change your reality."
  75. Re:I would say Java is less of a "monopoly" than Q by bytesplit · · Score: 0

    Anybody that still thinks "free as in beer" cliche is worthy of use needs to answer this question: Do you know ANYTHING?

    --
    real geeks hate soap operas.
  76. Re:Four things I don't care about! by mcpkaaos · · Score: 1

    I have never felt an impulse to chop it off or suggest that we need to spend some time apart.

    It's especially tough when your hand is the one asking for time apart.

    --
    It goes from God, to Jerry, to me.
  77. It's C++'s fault by Anonymous Coward · · Score: 0

    Lisp, Perl and Python have closures. Java has anonymous classes. C# has delegates. C++ doesn't have any compact, elegant, nonproblematic way to represent callbacks.

    That makes C++ seriously handicapped for any event-based programming. C++ could remedy the situation by adopting delegates from C#.

  78. Colleges DONT teach C++ GUIs by Anonymous Coward · · Score: 0

    I'm suffering from an evil in computer programming: GUI-less instruction from colleges. When they teach you programming in computer science, it is only theoretical material of little value in the job market (most CS majors never do programming because they can't do GUIs)

    Little time goes into teaching you beyond OO in your intro classes. You end up capable of coding, but writing lots of buggy code on your own and without any robust IDE or even syntax coloring. I was thought CLI C++ instead of even the simplest GUI's because there is no FREE standard that colleges follow. Moreover, we had Unix systems and our code only ran on SGI's Glut / Mesa, which is falling into obsolesence year after year, and hard to port to Windows, which is where most real-world code will run.

    I am currently trying to learn GUIs with Borland and certain common Windows IDE's because Linux and Unix seem to rescind the need in for GUI experience in the job market right now --only SHELL scripting is needed. Check out craigslist.com and look on employment for DBA's and Programming... Ironically, if we can't learn GUI's in college, when on earth can we get started? The uselessness of command-line college projects is what makes so many of my colleages hate Programming even though it's nearly the only non-academic application of the entire career ( helpdesk DOESNT count... it's IT, not CS.) Imagine if we could all implement those little projects we have in our heads without learning the hard WIN32 API or all of your non-standard GUI toolkits. THAT, my friends, is why {GW|Q}BASIC will never die in my heart. Too bad it got turned into a weird, DLL-using language.

  79. License text for Non-Commercial Qt 3.2 for Windows by prostoalex · · Score: 1
    Since many people are asking about the terms and conditions of non-commercial Qt 3.2 for Windows, here's the full text of TrollTech license, so that you know what you get when you buy the book.

    Qt Book Edition Non-Commercial License Agreement North andSouth AmericaAgreement version 1.1

    IMPORTANT-READ CAREFULLY:

    1. This Trolltech End-User License Agreement ("Agreement") is a legal agreement between you (either an individual or a legal entity) ("Licensee") and Trolltech Inc ("Trolltech"), and pertains to the Trolltech software product(s) accompanying this Agreement, which include(s) computer software and may include "online" or electronic documentation, associated media, and printed materials, including the source code, example programs and the documentation ("Licensed Software").

    2. The Licensed Software is protected by copyright laws and international copyright treaties, as well as by other intellectual property laws and treaties. The Licensed Software is licensed, not sold.

    3. By installing, copying, or otherwise using the Licensed Software, Licensee agrees to be bound by the terms of this Agreement. If Licensee does not agree to the terms of this Agreement, Licensee should not install, copy, or otherwise use the Licensed Software.

    4. Upon Licensee's acceptance of the terms and conditions of this Agreement, Trolltech grants Licensee the right to use the Licensed Software in the manner provided below.

    5. Trolltech grants to Licensee as an individual a personal, nonexclusive, non-transferable license to make and use copies of the Licensed Software. Licensee may install copies of the Licensed Software on an unlimited number of computers provided that Licensee is the only individual using the Licensed Software.

    6. Licensee may not modify or distribute the Licensed Software. Licensee may not loan, rent, lease, or license the Licensed Software or any copy of it. Licensee may not alter or remove any details of ownership, copyright, trademark or other property right connected with the Licensed Software.

    7. Licensee may use the Licensed Software to compile, link and run software legally developed by Licensee or others. If any software, e.g a scripting wrapper, gives Licensee direct or indirect access to functionality of the Licensed Software, usage of the software is considered to be usage of the Licensed Software and is thus bound by this Agreement.

    GENERAL TERMS THAT APPLY TO APPLICATIONS AND REDISTRIBUTABLES

    8. Licensee is as an individual granted a personal, non-exclusive, non-transferable license, in a non-commercial setting, to develop application programs, reusable components and other software items that link with or in any other way require certain parts of the Licensed Software ("Redistributables") as specified in Appendix 1 ("Applications"). A non-commercial setting means that the Licensed Software may not be used in the course of Licensee's employment or whilst engaged in activities that will be compensated.

    9. (i) Applications must add primary and substantial functionality to the Licensed Software; (ii) Applications may not pass on functionality which in any way makes it possible for others to create software with the Licensed Software; (iii) Applications may not compete with the Licensed Software; and (iv) Licensee may not use Trolltech's or any of its suppliers' names, logos, or trademarks to market the Application(s), except to state that the Application was developed using the Licensed Software.

    10. Distribution of the Applications are subject to the following requirements: (i) The Application(s) must be distributed for free and/or be freely downloadable; (ii)The Application(s) must be licensed under a license which is compliant with the Open Source Definition version 1.9 as published by the Open Source Initiative (please refer to http://www.opensource.org/docs/definition.php); and (iii) Licensee must explicitly license all recipients of the Applications to use and re-distribute original and modified versions of the Applications in

  80. Which Windows compiler does it support? by Anonymous Coward · · Score: 0

    VC++ 6.0 or VC++ .Net?

    1. Re:Which Windows compiler does it support? by prostoalex · · Score: 1

      It's in the review - both 6.0 and .NET are supported, and two Borland compilers.

  81. Re:Licensing Fears - unfounded by dbIII · · Score: 1
    The thing that scares me about Qt is taking the time to learn it and then one day they decide not to offer a GPL version anymore.
    In which case everyone works from the last produced GPL version.
  82. Re:SCOde? by 10Ghz · · Score: 1
    What is Trolltech's relationship with SCO and Canopy.


    Caldera and/or Canopy invested some money to TT years ago. There was no indication back then that they were about to turn evil.

    Why does Ralph Yarro, Darl McBride's boss sit on the board of directors of Trolltech?


    Because they are one of TT shareholders (although minority shareholders).

    Does Trolltech owe SCO/Canopy money?


    Not to my knowledge. What makes you think they owe them money?

    Does SCO have the right to buy Trolltech later?


    Again: what makes you think that? Why would SCO have the right to buy TT, and not Borland for example? You are not making any sense.

    Does the money they take from SCO/Canopy give SCO/Canopy certain rights? Like the right to a seat on the board of directors?


    They don't take any money from SCO/Canopy. SCO/Canopy/Caldera invested in TT years ago, that was when they got money from them. What did SCO get in return? A bit over 5% of TT shares. And those shares give them the seat at the board of directors. But that does NOT in any shape or form mean that they are controlled by SCO! Hell, about 94% of TT is NOT owned by SCO/Canopy, but yet, according to your logic, TT is somehow magically controlled by a company that owns a bit over 5% of the company. TT employees (who own over half of the company) are not in fact control. Also, companies like Orkla and Borland are just puppets of SCO!

    Have you adjusted your tin-foil hat recently? It seems that it's not working!
    --
    Lesbian Nazi Hookers Abducted by UFOs and Forced Into Weight Loss Programs - -all next week on Town Talk.
  83. Apples and Oranges by Anonymous Coward · · Score: 0

    Well, that's because Java class files are interpreted and not compiled. And no, bytecode is not compiled either, it's still interpreted.

  84. Re:Four things I don't care about! by arevos · · Score: 1

    Sorry :(
    Here

  85. I wasn't claiming that Ruby was best for the job. by Trejkaz · · Score: 1

    In fact, I was just claiming that Ruby is obviously better than Python, as a language. I fail to see your point. :-)

    --
    Karma: It's all a bunch of tree-huggin' hippy crap!
  86. OT:Employees by maroberts · · Score: 1

    Technically, I would presume William Gates is an employee of Microsoft in his executive role.

    --

    Donte Alistair Anderson Roberts - hi son!
    Karma: Chameleon

  87. Re:I wasn't claiming that Ruby was best for the jo by arevos · · Score: 1

    Without having used Ruby, I couldn't comment :P

    I have used Java. I have used Python. Python's clearly the better language out of those two. You seem to have dragged Ruby into it; for what reason, I have no idea. I take it you're a Ruby fan?

  88. Re:I wasn't claiming that Ruby was best for the jo by Trejkaz · · Score: 1

    Not really. I was just pointing out something about Python fans who seem to think it's the only "truly" OO scripting language on the planet. ;-) Of course Python wasn't mentioned in the article either so we're both off-topic, aren't we? :-)

    --
    Karma: It's all a bunch of tree-huggin' hippy crap!
  89. Re:write once, runanywhere is more than a GUI tool by Trejkaz · · Score: 1

    Actually you can style GTK to look like Qt. One way is just to get matching styles for each one natively (examples are Bluecurve and Keramik/Geramik), or there is a project working on a GTK style which draws using the current Qt style. So on Linux, SWT will look fine.

    However...

    By default, on Windows, SWT looks like arse. There's a manifest file you can drop into Windows\System32 to fix this, but if Eclipse shipped in a smarter fashion this wouldn't actually be required. :-)

    --
    Karma: It's all a bunch of tree-huggin' hippy crap!
  90. Re:I wasn't claiming that Ruby was best for the jo by arevos · · Score: 1

    Oh, who cares at this point? :) - The first language that comes to my mind when someone says "truly OO scripting language", isn't Python, or Ruby, but Smalltalk ;)

    Ruby I haven't looked at much. Does it have a compiler and access to a good GUI toolkit, like Qt or wxWindows?

  91. Re:write once, runanywhere is more than a GUI tool by mark_lybarger · · Score: 1

    interesting, i'll have to do some searching on this manifest file for windows and see how it changes eclipse appearance.

    from my usage, eclipse looks fine on windows, but like total crap on linux (gtk2). maybe it's the style i have setup for gtk2, but the widgets being used are too big and waste too much space outside of the actual code and stuff i'm interested in viewing.

  92. Re:I wasn't claiming that Ruby was best for the jo by Trejkaz · · Score: 1

    There is definitely wxRuby. I'm not sure about Qt but I did hear something about a binding being developed.

    --
    Karma: It's all a bunch of tree-huggin' hippy crap!
  93. Re:I wasn't claiming that Ruby was best for the jo by arevos · · Score: 1

    Looking at it, Ruby's uses an interpretter. There's nothing like Py2exe that I can find that would generate executables. Ruby would be fine for server-side stuff, but not for client apps.

  94. Re:I wasn't claiming that Ruby was best for the jo by Trejkaz · · Score: 1

    Plenty of people use interpreted Python for client-side apps. I guess that's because performance isn't as important on the client. If it were, you might see a lot more Java on the client-side. ;-)

    --
    Karma: It's all a bunch of tree-huggin' hippy crap!
  95. Re:I wasn't claiming that Ruby was best for the jo by arevos · · Score: 1

    Yep, but if I were designing client software to be used on an average Windows user's machine, I'd probably want it to be a compiled executable, that would run right out of the box.

  96. Re:SCOde? by Haeleth · · Score: 1

    I'm really not interested in any company, technology, or development group that's within a couple hops away from SCO.

    Ever heard of "six degrees of separation"? Yup, that means Linus Torvalds is within a half dozen hops away from Saddam Hussein and Osama Bin Laden. I sure hope you don't use Linux.