Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

Cross-Platform Development For Windows and OS X

Posted by kdawson on Mon Nov 20, 2006 02:59 PM
from the two-birds dept.
An anonymous reader writes to let us know about an article in RegDeveloper detailing the use of Qt, Trolltech's cross-platform C++ toolkit, for development across Windows and Mac OS X. From the article: "QT not only goes across desktops but onto embedded devices as well. So any app you write with Qt will port to an embedded device with a frame buffer running Trolltech's embedded version of QT, called QtopiaCore."
+ -
story
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • wxWindows (Score:5, Funny)

    by also-rr (980579) on Monday November 20 2006, @03:02PM (#16919676) Homepage
    I have been doing cross platform development with wxWindows and I have to say it makes it easy. So far I have an application which crashes with exactly the same fault* on Windows, OSX *and* Linux! You just can't buy productivity like that with commercial development frameworks. *Error 5: Developer is an idiot who hasn't programmed much since the BBC Master was cutting edge technology.
    • That should have been...

      I have been doing cross platform development with wxWindows and I have to say it makes it easy. So far I have an application which crashes with exactly the same fault* on Windows, OSX and Linux! You just can't buy productivity like that with commercial development frameworks.

      *Error 5: Developer is an idiot who hasn't programmed much since the BBC Master was cutting edge technology.

      Nothing like proving a point the hard way eh... can't even do crippled HTML right first time.

      • HTML, meet also-rr. also-rr, meet HTML. HTML, apparently also-rr hasn't coded since the BBC Master was cutting edge technology. Also-rr, HTML has been an internet programmer's staple since 1993.
    • It's been called wxWidgets for a few years now. Microsoft made them change the name, but they did pay for their new domains.

      I do like wxWidgets and have done a good amount of development in it (C++ and Perl). It's really worth learning if you need to support more than one platform.
    • Easy cross-platform development can be learned at wyoGuide (http://wyoguide.sf.net/ [sf.net]). If you are serious and considers to sell your software anytimes in the future, there's no better choice.

      If you know that one of the top inhibitors of Linux desktop adoption is applications (see http://www.osdl.org/dtl/DTL_Survey_Report_Nov2005. pdf [osdl.org]), you would wish that more developers would follow wyoGuide.

      O. Wyss
        • Re:wxWindows (Score:5, Insightful)

          by EzInKy (115248) on Monday November 20 2006, @11:46PM (#16925372)

          wxWidgets: supports more platforms and it is TRUE open source in that they don't charge you if you use it commercially. Enough said.


          No, it's really not enough said. If you want to get paid for your work then they should get paid for theirs.
  • by parvenu74 (310712) on Monday November 20 2006, @03:06PM (#16919734)
    There are the persistent rumors that the YellowBox technology from NextSTEP is still alive and well on the Apple Campus, and is just waiting for The Steve to give the "And one more thing..." signal for it to come back into the light. But whom does that help, exactly?
    • Re: (Score:3, Informative)

      Well,there is GNUstep. http://www.gnustep.org/ [gnustep.org]

      At least one commercial app for Mac OS X is using it to get a Windows version, Nova Mind:

      http://www.nova-mind.com/ [nova-mind.com]

      William
      (who is still pretty miffed that Apple had to cave in to Adobe and Microsoft et. al., so that instead of Rhapsody w/ Yellow Box, we got Mac OS X w/ Carbon --- I'd give my interest in Hell to get back all the time I've wasted at work using foetid Carbon apps)
    • There are the persistent rumors that the YellowBox technology from NextSTEP is still alive and well on the Apple Campus, and is just waiting for The Steve to give the "And one more thing..." signal for it to come back into the light.

      I'm not convinced that it will happen.

      First, there are better "least common denominator" approaches than YellowBox and the industry has already chosen Java. So YellowBox doesn't really give you any advantages.

      Second, it adds more hassles for Apple to keep it compatible with Win

  • First things first (Score:3, Informative)

    by Anonymous Coward on Monday November 20 2006, @03:10PM (#16919810)
    Its Qt and not QT which means Quicktime.
  • well.. (Score:4, Insightful)

    by ADRA (37398) on Monday November 20 2006, @03:12PM (#16919838)
    I'll be the first to admit that I'm not very partial to QT, but the title of the article is horribly named. The title implies that the body encompases a general approach to cross-platform development. It doesn't. The article is about "Cross-platform QT development". More importantly, no alternatives are mentioned. The entire development piece is about using QT based technologies to tackel the cross-platform problem. All of this is well and great, but don't sell the article as -the- solution when its a very specific howto implement X for problem Y.
  • Better alternative (Score:3, Informative)

    by DraconPern (521756) <draconpernNO@SPAMhotmail.com> on Monday November 20 2006, @03:16PM (#16919898) Homepage
    This is blatant slashvertisement. Qt's controls are all emulated, it's like using Java Swing when you can use SWT instead. Further more, it requires you to use non-standard c++ syntax together with a 'qt preprocessor'. The better choice is wxWidgets [wxwidgets.org]. It supports platforms, more compilers, has native controls, and it is open source.
    • QT4 is opensource under the GPL. The commercial license is a bit rediculous, though.
      • The commercial license is a bit rediculous, though.

        Why? It seems pretty popular (Adobe, Skype, Google, Opera, etc..) Trolltech's modell is an excellent example of how you can make money on free software. QT - free for free software development, pay for it if you develop commercial software. Which means they have a good revenue stream to pay some of the best coders on earth to enhance QT, which in term, serves the community (being the basis of some of the best free software apps, like scribus for instance). Nice. (oh, and as a bonus, those who pay also get some of the best support services in the industry - check trolltech's customer satisfaction :))

        • Actually, it's "free for GPL free software development, pay for proprietary or non-GPL free software." And that's only for Qt 4. Before that, it was "pay even if you're writing GPL software for windows." Compared to the wxWidgets and GTK+, which use the LGPL, it is ridiculous.
        • I said it's redicious becuase of this [trolltech.com]:

          License Pricing (per developer)

          One Platform
          Console Edition: $1780
          Desktop Light Edition: $1990
          Desktop Edition: $3300

          Two Platforms
          Console Edition: $2670
          Desktop Light Edition: $2990
          Desktop Edition: $4950

          Three Platforms
          Console Edition: $3560
          Desktop Light Edition: $3980
          Desktop Edition: $6600

          That's much higher than even Visual Studio. wxWidgets is $0 and is under the LGPL. DialogBlocks (gui builder for wxWidgets) is $70/developer and can be used on as many computers as the

          • Re: (Score:3, Insightful)

            Still don't see your point - the price is determined by the market. If they can sell it for that much, and at the same time, they can be vastly more popular than wxWidgets (they have LOTS of customers, even though they provide a fully GPL version), that means that the pricing is just right, not ridiculous ;)) QT is simply so good, that people are willing to pay that much for it (and the support you get, which I heard is excellent).
        • One ridiculous part of the QT commercial license is that you can't buy it for existing open source applications.

          In other words, if you've written something as open source using Qt under GPL, and now want to make a commercial version of your product, you can't.
        • Trolltech's modell is an excellent example of how you can make money on free software.

          Imagine every piece of software on Linux were to adopt Troll Tech's model: $2k/developer for the commercial exception for the C library, another $2k/developer for the math library, another $1k/developer for XML libraries, another $4k/developer for the kernel. Where do you think Linux would be today?

          Both GNU and Linux have deliberately adopted licensing policies that permit commercial usage. Troll Tech is unfairly taking
      • QT4 is opensource under the GPL. The commercial license is a bit rediculous, though.

        How is the commercial license ridiculous? I just renewed my commercial license for a single user, two platform copy, for only $830, and find it a bargain when one considers how quick AND good the support is.
        http://www.trolltech.com/products/qt/licenses/pric ing [trolltech.com]

        QT's "signal & slots" technology is much more powerful and easier to implement than traditional callback functions.

        I tried wxWindows when it was part of Boa-Cons

    • This is blatant slashvertisement. Qt's controls are all emulated, it's like using Java Swing when you can use SWT instead. Further more, it requires you to use non-standard c++ syntax together with a 'qt preprocessor'. The better choice is wxWidgets. It supports platforms, more compilers, has native controls, and it is open source.

      Informative? Well, this comment could have been a lot shorter: qt suxxz, wxwidgets rulez :))

      Oh, and tell me, where are the wxWidgets killer apps?

      QT - Adobe, Opera, Skype, Goo

    • by Kjella (173770) on Monday November 20 2006, @04:15PM (#16920832) Homepage
      This is blatant slashvertisement.

      For an OSS product. We seem to get a lot of those around here

      Qt's controls are all emulated, it's like using Java Swing when you can use SWT instead.

      Well, they don't look emulated or feel emulated, unlike java. But hey, I'm sure there's some technical reason you're right and noone cares.

      Further more, it requires you to use non-standard c++ syntax together with a 'qt preprocessor'.

      Yep. Which is what permits it to use a signal-slot mechanism which spanks wxWidgets and any other C++ system out there. No more crashes due to dangling pointers, yay!

      The better choice is wxWidgets. It supports platforms, more compilers, has native controls, and it is open source.

      Qt supports plenty platforms, plenty compilers, much better UI design tools and it's open source. I could mention it's a much better library too, but now you're just embarassing yourself.
      • Re: (Score:3, Informative)

        Yep. Which is what permits it to use a signal-slot mechanism which spanks wxWidgets and any other C++ system out there. No more crashes due to dangling pointers, yay!
        libsigc++ [sourceforge.net] (used in gtkmm) gives you typesafe slots/signals in ISO C++, no need to invent your own language. (No granted this wasn't possible at the time QT was originally designed).
        • Yet another library that has to be synchronized with the version of wxWidgets you have to use. Just hope they coordinate them so that you aren't waiting months for one or the other to catch up, or that you don't get into finger pointing wars when one lib says your problem is someone else's fault.
        • Re: (Score:3, Informative)

          Qt is not an "OSS product"; it's a commercial product that happens also to be released under an open source license. That's a big difference.

          QT is distributed under the GPL. That means it can be forked like any other GPLed software. As with any GPLed software, if you write software based upon it your own software must also be GPLed. Commercial users who don't want to GPL their code can buy licenses for the unfree version, since QT is dual licensed. This gives you more choices than you would have if i

          • Re: (Score:3, Interesting)

            yet strangely people who have no problem with GPLed software are always bitching about Trolltech's licensing options.

            . . . because the commercial version is unreasonably restricted. If you develop a project and release it under the GPL, and later decide to release it as a commercial app, you are forbidden to do so, or you have to reimplement the Qt components in your app. Honestly, I don't think ANYONE will abide by this and will simply just buy the commercial license, recompile, and release, but technicall

        • Re: (Score:3, Insightful)

          One other thing. Toolkits like Qt and wxWidgets are complex beasts with lots of corner cases that can screw things up. It takes a lot of testing to get it right. That's another reason I choose Qt over wxWidgets. Qt gets hammered on by the KDE project all the time. Millions of lines of code and just about every type of app you can imagine. What is wxWidgets used in? I can only think of Audacity and VLC, neither of which has a particularly good UI.
    • > Qt's controls are all emulated, it's like using Java Swing when you can use SWT instead.

      So? If Swing were as fast as native widgets (which in my experience Qt widgets are), and integrate in the native OS desktop as any other application (dito), would there even be SWT?

      Another advantage of wxWidgets is its ease porting from MFC due to its similarity.

      BEGIN_EVENT_TABLE(MyFrame, wxFrame)
      EVT_MENU(ID_Quit, MyFrame::OnQuit)
      EVT_MENU(ID_About, MyFrame::OnAbout)
      END_EVENT_TABLE()

      I re

        • Bogus. It is standard C++ and compiles as such. Qt simply introduces some "keywords", which are either macros or empty defines and therefor interpreted or stripped by any standard preprocessor. moc interpretes those keywords and generates another (standard-conform) C++-file. You are free to write that generated code by hand, but I'd rather not.
  • What about the GUIs? (Score:3, Informative)

    by Yvan256 (722131) on Monday November 20 2006, @03:17PM (#16919918) Homepage Journal
    If you use these things, do the programs look native to the operating system or do they look like Java?

    I mean, one of the reason I don't use Firefox on OS X is because the form widgets look like crap (i.e. look like Windows).

    • They work like native apps (check the comments below the article), and as far as I know, they can use native widgets as well. Skype and Opera are also written in QT (the interface) - do they look like native enough on windows or MacOS X? I've seen the windows versions of these only, they look like... well, windows programs (so consistency is not a problem, they just blend in fine the rest of the application stack on windows ;))
      • Opera at least has a "native" look mode which works wonderfully on OS X and Windows. I have not tried skype on windows so cannot comment but on Mac it blends in well.

        Opera, and skype I beleive but am not sure, also offer "skins" one of which for opera will make it look the same on MacOS or Windows. I imagine any of the other skins would come out the same as well. I usualy stick to "native" mode on both though as I am a fan of a consistant UI.
      • Actually Skype on the Mac is a Cocoa application. You can look inside the application package and view all the content .nib files very easily. I've yet to see a QT interface on the Mac looking native.
    • Re: (Score:2, Informative)

      They use the native widgets. Aqua on OS X, and Luna (or whatever) on WinXP. (this is why these 2 themes only work on their respective platforms)
    • Could swear there was a MacOSX firefox theme around.

      Anyways, wxwidgets (not wxwindows like some are still calling them) make truly cross platform GUI applications, with the OS native GUI! It is great to use Code::Blocks in windows and then use the same IDE to open the project on Linux. The only problem is that wxwidgets is kind of a huge library, which hardly has support from linux distros (I've seen things like SDL always included in distros, but wxwidgets must be downloaded) . In windows the problem is w

    • by Mercano (826132) <mercano&gmail,com> on Monday November 20 2006, @03:51PM (#16920476)
      If you use these things, do the programs look native to the operating system or do they look like Java?
      Java apps should look like native apps, at least, if the developer thinks they should. Its not to hard. Either use AWT for your GUI which will use native widgets (though shoots for the least common denominator at times), or use swing and have it emulate native controls (more or less) by calling UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() ); early on in your code. Granted, neither is perfect, but they don't stick out like swings default (why?) Metal look and feel.
  • GNUstep (Score:2, Informative)

    GNUstep [gnustep.org]
    • majority of Cocoa classes implemented
    • can use OS X NIB files (user interface)
    • uses Objective C - OS X "native" language
    • can be used on MS Windows, Linux or other systems with UNIX taste as well

    AFAIR, there was a project going on that will even convert your X Code files into GNUmakefiles that can be used directly on MS Windows, or at least someone was planning to do that. Contact the lists mentioned on their homepage for more information.

    See also: GNUstep and Cocoa [gnustep.org]

  • Used it, loved it. (Score:3, Informative)

    by WPIDalamar (122110) on Monday November 20 2006, @04:18PM (#16920886) Homepage
    We used Qt for several rounds of development and it was always great to work with. In fact, I prefer their utility classes to the STL. Even if I was writing a single-platform project in c++ these days, I think I'd go for Qt.

    Nowadays we're using Flash for the win/osx cross platform development. Big things are starting to come in that front.

    Oh.. and Qt does use native (not emulated) widgets for win/osx.
  • by oohshiny (998054) on Monday November 20 2006, @06:00PM (#16922386)
    People like to say how wonderful Qt is, but you should think carefully about what you're getting into.

    Almost all of our projects are open source, but occasionally will do some custom commercial stuff. Yet, because the commercial version of Qt has a per developer license, we'd end up paying as much for it as if we did all closed-source development, since it would be impractical to divide our developers that way. And Qt isn't cheap: a couple of thousand dollars per developer. Think carefully about what it would cost you if you introduce Qt and start using it.

    An additional problem with it is that it (gratuitously) uses non-standard C++ extensions. That causes additional development headaches. And the Qt/Embedded version is not even fully compatible with the desktop version, and it's an all-or-nothing proposition (forget about using other toolkits on Qt/Embedded devices).

    Overall, I fail to see the point of Qt for most people. For cross-platform development needs, between Java, J2ME, and wxWidgets, I think all the bases are covered at lower licensing costs and (in the case of Java and J2ME) lower development and maintenance costs and better platform coverage.
    • Re: (Score:3, Informative)

      It's not a news article, it's more of an overview for programmers. Actually, it's pretty well written, just not a 'headline'. Incidentally, I hadn't heard about the KDE/GNOME stuff until recently. I only ran across Qt when I was looking for an OSS (or just free) RAD tool.
      • He probably was referring to the KDE/Gnome flamewars that erupt on slashdot occassionaly. Evenyone knows those arguments are nonsense as Gnome is clearly inferior to KDE in every respect, apart from its gname.
    • Wait for it.....

      3,2,1... Go!

    • Re: (Score:3, Interesting)

      So I gather you guys sell Windows licenses as well, right? Or are you advocating your customers commit acts of piracy just because you're too cheap and/or incompetent to do a little leg work to recompile for OSX.
      • Assuming its a multi-thousand dollar product (hell, a several hundred dollar product) a legit copy of XP is rounding error ... this makes business sense for niche programs.
    • Have a point (Score:5, Interesting)

      by willy_me (212994) on Monday November 20 2006, @04:17PM (#16920868)
      While everyone here appears to think that this is a troll, he actually has a point. Depending on the market it could be the best solution. However, if there is enough demand a competitor could release a MacOS version and steal your clients. And not just the MacOS clients. A company of say 100 with 2 Macs could decide to go with your competitor because of those two lousy Macs... Or a company thinking that someday they might want a Mac would have that much more incentive to avoid your product.

      I read a blog about the business decisions behind the upcoming Mac port of IBM Notes (or do they still call it Lotus Notes?) Anyway, the comment was that Macs make up only 1% of the market but carry 99% of the weight. (Probably a slight exaggeration on their part.) When I say weight I'm referring to making purchasing decisions. They're a very vocal group and the decision to make a *good* native version of Notes was not based on Mac numbers but on the influence that those few Mac users wielded. Moral of the story, don't dismiss Macs just because only a few of your clients have them.

      Willy
    • When I tried RealBasic 1.0 their demo tutorial produced code which crashed.
      IF they can't be sure their first release is reliable, what does that say about their quality control and testing?
      End of lesson. End of RB, for me.