Cross-Platform Development For Windows and OS X
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."
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.
Think of the Children; Sleep with your Sister
How Qt.
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?
It sure is news. It is OSNews. They posted this a little while ago too.
Its Qt and not QT which means Quicktime.
It looks like Apress is publishing a new QT book next year -- Foundations of QT Development. That's kinda cool. It's not up on their website yet, but there's some info on amazon http://www.amazon.com/Foundations-Qt-Development-J ohan-Thelin/dp/1590598318/sr=11-1/qid=1164053202/r ef=sr_11_1/104-1082812-6109546
What do windows or OSX have to do with this? Cross platform means exactly that and there are more platforms than these.
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.
Bye!
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.
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).
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.
What do you mean my sig is repetitive? What do you mean my sig is repetitive? What do you mean....
For when you need to make money and 2500$ per seat per platform licenses hurt.
3,2,1... Go!
I think it is made by a company called sun and is supposed to be cross platform?
Pfffft, what do I know...
Software development is expensive? So are Windows licenses you frigtard. Tell ya what, bundle a copy of XP with your app so I can run it and we'll talk. Oh, and send me an Intel iMac to replace my G5 and we'll talk. Errr...nevermind ya friggin troll, you can keep your stupid POS with the terrible UI, lack of Mac integration (AppleScript, QuickTime, iLife, Dashboard, etc etc.)
I'm sure they all rush at the opportunity to install Windows on their $2000 Mac. Thanks for your help in assuring Microsoft keeps it's strong hold on the market. Hopefully they are giving you a commission.
Beer! It's what's for breakfast!
Maybe that's a sound business decision for your company, but it isn't universally true. If I were a Mac user, given two similar products with one that was only for Windows and one available for the Mac, all other things equal, I'd pick the Mac version. Less hassle.
For some companies, the extra advantage of having a Mac version might outweigh the development costs, especially if you have a high sales volume. Also, if you've written everything reasonably cross-platform, then the additional testing, packaging, and support may only be a small fraction of the development costs compared to creating the core product.
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.
The world's burning. Moped Jesus spotted on I50. Details at 11.
Why use Qt with its horrible licensing issues for commercial software creation when you can use a better solution like REALbasic?
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.
As with newer versions of Swing, if a widget in a given configuration can be displayed natively, it is. This is true of Windows and Mac OS where theming and frequent UI changes required it. Widgets are only emulated if their configuration cannot be drawn using the underlying native type, or if you've sub-classed them (something not possible under wxWindows).
If you look up Java 6, you'll see Swing controls blending in perfectly with Vistas environment: this is because Swing, like Qt, uses the native controls as much as possible. Indeed, it's ironic that you mention SWT as an example of a native-looking widget-set, given that it is looking increasingly non-native, with its fanciful tab bars being the most obvious example.
--
Bryan
- 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
First they ignore you, then they laugh at you, then they fight you, then you win.
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
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.
May I know why do you call KDE/GNOME a nonsense?
Example of GNUstep cross-platform in action
GNUmail installer, GNUmail application on Windows, GNUmail on OS X.
GNUmail itself: http://www.collaboration-world.com/gnumail/
First they ignore you, then they laugh at you, then they fight you, then you win.
Opera does not behave like a native application in OS X, unfortunately. E.g. you cannot drag text or images from a webpage (and you miss all the Cocoa goodness). Might be something Opera borked up though.
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.
**TODO** Steal someone elses sig.
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.
Actually, Flash content can be completely 508-compliant... *if* designed properly.
h 8/faq.html
Keyboard Nav and ScreenReader compatibility is present; it has to be factored into your Flash design work (just as with any other development environment)
http://www.adobe.com/resources/accessibility/flas
Right here, lads! http://malfy.org/
Dear Qt.
... and it Just Works. Everywhere. And it's free. Everywhere.
I write in Perl, a cross-platform language.
WxWindows has good Perl bindings, and can be compiled and installed from CPAN on the fly as a dependency, so that in any Perl application I just make a dependency on "Wx", and the someone can go...
sudo cpan MyApplication
Qt has decayed binding for legacy Qt 3, and no bindings AT ALL for Qt 4. And I have to install it seperately. And if I ever used it even lightly for work, I'd have to pay. Which I'm assuming means it would be hard or impossible to have CPAN install it on the fly.
So given the two major choice for me are Wx and Qt, I have a situation where one works, installs and is free for all uses, and another one that doesn't work, doesn't install, and isn't free for all users.
Now don't get me wrong, this isn't a troll. I really do like Qt. I think it's prettier than Wx, and I'd use it if I could. I even came to your offices to gave a talk about Perl that time, remember?
But if you could take a little time and make it so that it's actually possible to in ANY way use your GUI toolkit with the most well used dynamic language (bindings? on CPAN? or something?) then I'd pay more attention.
But for our community, Qt has pretty much become legacy software at this point.
You, sir, just made the most insightful post ever on this blog. I have long held the opinion that anyone who thinks Gnome is better than KDE is suffering from an almost-incurable mental illness and is thoroughly deranged. I once suffered from the mental illness known as "thinking Gnome is superior" but I have since switched to KDE and got cured.
If you are a Gnome user, have no fear. The cure of your illness does not hurt. Simply install KDE, and don't worry, as long as you keep your Gtk libraries around, all those wonderful Gnome apps will still run. Granted, you will still suffer from brain-dead file dialogs designed for people with all of the intelligence of mucous, but you will be well on your way toward stable mental health.
But if MS released .NET on all platforms then they'd take the cake. I love Linux and have been using it for a little while now, my problem is that currently I can't just always write an app for one distro of even Linux and guarantee compatibility on other distros. With .NET it's easier just to say "I wrote it for .NET x.x which runs on any computer if you meet these requirements [and then you'd list em]." Not only would things have a well set of standard libraries, but it'd be able to support any language one wished (Perl .NET, Ruby .NET, C++ (already implemented) .NET, etc).
And now I await the slanders of those who disagree :-)
TrollTech the company behind QT will be exhibiting at SCALE 5x this February in Los Angeles.
TrollTech the company that develops QT will be at SCALE 5x this February 10-11 in Los Angeles.
Glad you were able to get out from under that rock!
I choose fltk because: -> is LGPL -> comes with support for opengl -> its easy to get things done -> multiplatform -> has this cozy friendly feeling to it
FVWM Biatches!
Easy cross-platform development can be learned at wyoGuide (http://wyoguide.sf.net/). If you are serious and considers to sell your software anytimes in the future, there's no better choice.
. pdf), you would wish that more developers would follow wyoGuide.
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
O. Wyss
See http://wyoguide.sf.net/papers/Cross-platform.html
or what is this about?
Do you think MS will kill the Windows milking cow by pushing .net as a "better" alternative to windows platform ? Sound like shooting in your left foot ey ! Not sure shareholders will agree.
.net as a platform is already dead (not for technical but strategical reason) and back at home : Windows !
.net as enterprise grade solution.
IMHO,
Obviously you can still try to implements specs, mimics all the missing and follow the haze like mono is doing. Bu how is this diferent from WineHQ ? Never will WineHQ not Mono compete with
That is reality.
Since Qt's evil empire is getting heaps of free publicity out of this topic, I feel morally obliged to give a quick plug to my favourite toolkit - JUCE. Same kind of deal as Qt, but IMHO the code is a lot nicer to work with. Unlike Qt it doesn't have a big corporation behind it doing aggressive marketing, but I feel it deserves to be on a lot more people's radars...
If you are looking for alternatives, do not forget about Ultimate++ - www.ultimatepp.org, BSD licensed C++ platform, including IDE. IMHO, Ultimate++ completely dominates not only other C++ development options, but is on par with scripting languages - with C/C++ exection speed. Unfortunately, that "HO" is biased, as I am the member of U++ project team :-) Nevertheless, you can still try it to find out.
An introduction to U++ is here:
http://www.codeproject.com/useritems/IntroUpp.asp
and library overview here:
http://www.ultimatepp.org/www$uppweb$overview$en-u s.html
It runs natively on Mac OS X, Linuxes, BSDs and Windows; It implements the NextSTEP as well as the OpenStep API (+ some modern Cocoa additions); You can make it to look and behave just like NextSTEP. It's not owned by Apple, though.
I still use the command line...
Hi.
Wow... not to engage in Ad Hominem, but I don't know anyone who holds that opinion of IB. IB has been hailed by many people as the best GUI builder around.
That said, his POV is not exactly neutral.
Then again... neither is mine... I am the maintainer of Gorm (the IB equivalent for GNUstep).
GJC
Gregory Casamento
## Chief Maintainer for GNUstep