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 thought everyone knew about Trolltech's Qt ever since the whole KDE/GNOME nonsense. Is there some news disguised here that I missed from the summary? (Yeah, like I'm gonna read TFA)
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?
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).
in t4e sun. In the it has to be fun Don't be a sling NIGGER ASSOCIATION Could save it
There is no reason to waste development time on native OS X apps now that Macs can run Windows at boot or in parallel. We stopped all Mac versions of our product and are having Mac users run it under Window on their machines. Almost all of our users run Windows on their machines and the few that don't aren't worth the massive hassle it would take to support them.
Cold, but software development is expensive.
For when you need to make money and 2500$ per seat per platform licenses hurt.
I think it is made by a company called sun and is supposed to be cross platform?
Pfffft, what do I know...
Well, I guess that if you come from the world .NET and C#, cross-platform developement with Qt
might seem like a revelation.
For everybody else, stop wasting your time and use wxWidgets. It will give you a fairly unified
environment on the API side and a native look-and-feel at the other side using whatever toolkit is native
on the platform. It also supports more language bindings (Python for protoptyping works a treat).
I don't know about embedded devices, but then I guess your hand will be forced but all sorts of constrains
anyway.
Why use Qt with its horrible licensing issues for commercial software creation when you can use a better solution like REALbasic?
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.
have somebody just *long time FreeBSD
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.
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.
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.
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
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.
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