Here's my experience with cross-platform Java and C++....
My personal experience is that Java is *excellent* for developing
cross-platform code quickly and robustly, because of it's excellent set
of libraries and tools, and excellent cross-platform sup****t. The
achillies heel is the dependency on the java runtime environment, which
you must be careful in coding to not be too dependent on a partiular
JRE version. But that is true for all cross-platform coding, don't be
too dependent on one particular OS version, or OS-specific feature or
toolkit of any kind.
I think Java meets all of your requirements, although "strongly adhere
to each platforms standard interface" is slightly harder since java
(e.g. Swing) favors consistency cross-platform. But still, the overall
quality and consistency and sup****t for Java programming is excellent.
Meanwhile, I am a cross-platform C++ programmer (see my latest product,
www.tinkerplots.com). The of the 5 cross-platform C++ commercial
desktop apps I have worked on, 3 of them used a home-grown
cross-platform framework to code to muliple OSes, 1 used a MacOS API
emulator to link into to run on Windows, and one used a commercial
cross-platform framework (long time ago so I'm not sure it still
exists). These cross-platform frameworks come and go, since
cross-platform tools are very hard to generalize, and thus hard for
anyone to make $$ by selling them. I would look at Trolltech's "QT"
(http://www.trolltech.com/products/qt/index.html),
although they do not
list Codewarrior sup****t (they list GCC for MacOS compiler).
C++ will give you more control, at the expense of more programing work
for any given end result, and more work to keep cross-platform
compatibility. Java will give you ease of compatibility and speed of
coding, at the expense of needing more skill in when it comes to
optimizing time-critical sections. It's the basic lower level / higher
level language tradeoff. Java is unmatched in my book, for being both
mainstream and widespread, yet easy to get fast, good quality results.
I've always thought there should be a codewarrior.crossplatform list,
since this is what I do, and appreciate Codewarrior the most for.
Generally the most long-lived and useful computer applications are
cross-platform, but sup****t for cross-platform programming is generally
terrible. It's just too easy for any one programmer or tool developer
to learn only one OS or programming system, and too hard us learn
multiple OSes/languages/systems. Those of us who have successfully
escaped these limitations are happy indeed to float between systems and
help advance the cause of cross-platform standards.
Good luck and let us know what you come up with. In general, every
development environment has specific applications, specific strengths
and weaknesses. Hard to generalize. I suggest you write a sample
cross-platform application in Java/CW and C++/CW for Mac+Win compare
from your own experience.
CDM
Chris McFarling wrote:
> I'm a part time web programmer (ASP,VBScript,Javascript,SQL) looking
to
> transition into traditional application development. I've got some
ideas for
> programs that I'd like to write so I'm currenly studying up on C++.
As I
> think ahead to a time that I'm proficient enough to start actully
creating
> applications, there are some requirements that I'd like to be able to
> fullfill. Here's what I'm looking for:
>
> - Optimum approach to writing an app that will run on Windows and OS
X (i.e.
> least amount of code, fewest number of tools)
> - Not JAVA based
> - GUI interface that strongly adhears to each platforms standard
interface
> guidelines while maintaining consistency accross platforms
> - Database integration - both client/server architecture and dektop
databse
> implementations
> - Ability to display image files (possibly large ones) on screen
> - As fast as possible (responsiveness to user, computational speed,
etc)
> - Take full advantage of platform specific technologies (AppleScript,
etc)
>
> I have several years as an end user on both platforms so I know the
ins and
> outs of each (from a user standpoint). I've also used enough crappy
software
> in my time to know what sets a good app apart from a sloppy one. As I
move
> ahead I'd like to start gathering the neccessary tools for my needs
so I can
> start getting intimately familiar with what I'll be using. From
reading
> through the threads on here, it's obvious that there are several
approaches
> to cross platform programming. Is there a defacto standard for doing
this
> type of thing though?
>
> Ideally, I envision a solution in which all development is done on a
single
> platform and compiled for both from that platform. From what I've
read it
> seems that CodeWarrior Development Tools for Mac OS and Windows can
> accomplish this. I know RealBasic takes this approach too, although
I'm
> assuming that RealBasic won't meet the requirement of being "as fast
a s
> possible". Then there's XCode and Interface Builder and yada yada
yada. I
> figure the best place to sort it all out is on a newsgroup such as
this
> where I can get some feedback from people who have
been-there-done-that
> already.
>
> Thanks for any feedback.
>
> Chris M


|