Multiple platforms (Windows, Mac, Linux)

Started by
16 comments, last by Raghar 17 years, 6 months ago
What do companies do to develop an application to support Windows, Linux and Mac-OS (I’m talking about API)? what famous API for those platforms, similar to Win32? 1- Is Carbon the best environment for Mac-OS X? 2- Is X-windows (X11) the best for linux ?(and Is it something like win32 API?) 3- which compiler is the best for linux at the moment ? - I don't think they choose a cross-platforms like wxwidgets for big, critical and commercial projects. we can understand it from their employments (for instance they need win32 and Unix programmer) If you have experience about it, any comments please. Thanks in advance, Nima NF [Edited by - Nima on October 11, 2006 4:34:59 AM]
Advertisement
Actually, I think wxWidgets is pretty popular, I think I have seen it in a commercial app. But you're right, I think most will write natively... not sure for Linux + Mac. Anyone?
--== discman1028 ==--
wxWidgets is a very stable and powerful GUI library (its been in development for over a decade), I'm pretty sure that most big companies that want to write cross-platform would use it, otherwise the time and cost of development for them is doubled.
Member of the NeHe team.
Qt should be pretty popular for commercial development, and is IMHO much easier to use than wxWidgets. Not sure, what is the status on MacOS still.
Then Gtk+ and cousins (glib, pango, atk) are very good, IMHO one of the best GUI toolkits available at moment. Not as popular in commercial development as Qt, but still used occasionally.
Both toolkits include platform abstraction part as well, so you should be able to go with almost 100% identical code for all platforms.
Lauris Kaplinski

First technology demo of my game Shinya is out: http://lauris.kaplinski.com/shinya
Khayyam 3D - a freeware poser and scene builder application: http://khayyam.kaplinski.com/
Personally, I'd recommend going with Cocoa on Mac OS X, and then wrapping it properly. Yes, Cocoa requires Objective-C so that's a bit of a learning curve. If you're reasonably skilled, you'll pick it up in a day or two, and believe you me, after that, writing a game backend is much faster than doing it any other way.

If you choose to go with Carbon, you get a well-known, ill-documented C API that might be more familiar than what you're used to, however. Both API:s are equal in terms of performance and what you can do, as far as you don't do any heavy-duty processing in them, which I guess you won't. :)

Anyway, you're welcome over to http://www.idevgames.com - very friendly Mac developer community. We'll do the heavy lifting for you. ;)
Ramblings: http://ivan.rusted.se
Thank you guys,
Have anyone any idea about my Linux questions ?
About X windows (totally/solely development for Linux).

Nima NF

[Edited by - Nima on October 11, 2006 6:58:39 AM]
Quote:Original post by Nima
Thank you guys,
Have anyone any idea about my Linux questions ?
About X windows (totally/solely development for Linux).

Nima NF
The only time you should even consider touching the X Windows libraries directly is when writing a window manager. If you aren't, go with wxWidgets, GTK+ or QT, then you get platform independence thrown in for free too.

When it comes to compilers, GCC is the only viable option (EDIT: if you're using C or C++, that is). Once again, since it supports all your three targeted platforms, the path to platform independence will be far easier if you use it for all your ports.

As for why companies have both Win32 and *nix coders, even if you use a platform independent GUI framework, there are always some things that need to be done differently. Threads, for example.
Quote:Original post by Valderman
As for why companies have both Win32 and *nix coders, even if you use a platform independent GUI framework, there are always some things that need to be done differently. Threads, for example.


Not totally true, as some framework implement most utilities (Qt has some interfaces to handle threads for example). Anyway, a Windows programmer is unlikely to be as efficient as a Unix programmer when it comes to working on a Unix system. The philosophy of these OS are different, and asking for someone to know how to use all the programming tools in the whole universe is kind of silly. That's the reason why companies that do cross-platform development hire programmers from both worlds, even if they use a cross-platform library with full support for the different OS features.

Regards,
My experience is that Qt works and works wonderfully across all three major desktop platforms. I have also had jobs where they relied on Java, but it was my experince that the installation/packaging/deployment issues with Java and the lack of good cross-platform support in Java (something the marketing people never talk about -- "just use JNI" means having to write the interesting stuff in platform-specific C code) causes more work and wastes more resources than just using Qt.

If you stick to Qt, GCC, and the autotools you'll be able to write once, compile everywhere.

Stephen M. Webb
Professional Free Software Developer

Thanks I think you are relatively right; but there are two problems that I can’t understand:

1) If those cross-platform toolkits (Qt, wxwidgets,...) are the best choice to use, why don’t all companies use them for their 3D applications or Game Engines?

Do you know anything about developing of these big apps: Unreal Engine 3, Maya, Torque Game Engine or even Adobe Photoshop? (I read in wikipedia that Photoshop use Carbon for Mac-OS X)
For example I found only two famous applications “RealFlow 3“and “Adobe Photoshop Album” that I use is made by Qt, what about other apps?

2) When most of companies want to employ some programmers, they need C/C++ coders (and sometimes with experience of win32), so why don’t they employ experienced coders under Qt or wxwidgets? If employees don’t have any experience with those toolkits, and just know Win32, How they can learn and use them without difficulty? How can we work in a team with something that we didn’t touch before?

Thanks in advance

[Edited by - Nima on October 13, 2006 2:35:49 PM]

This topic is closed to new replies.

Advertisement