Re: Cross platform development: Was: Deprecated methods in NSDocument
Re: Cross platform development: Was: Deprecated methods in NSDocument
- Subject: Re: Cross platform development: Was: Deprecated methods in NSDocument
- From: Scott Ellsworth <email@hidden>
- Date: Thu, 24 Nov 2005 12:14:18 -0800
On Nov 24, 2005, at 7:17 AM, email@hidden wrote:
The flip side to this is GUI and frameworks; on Mac, Cocoa seems the
obvious solution, on Windows, .NET is flavour of the month. I have
looked at cross-platform solutions over the years (inc. wxWindows,
Swing etc.) and frankly they are not up to scratch - basically
because OS's differentiate in part in their UI, so to support them
properly its a good idea to write the UI, views, etc specifically
for the merits of each
platform.
You have to decide up front where you want to get reusability, and
then design accordingly. The very same issues that make it tough for
a platform vendor to come up with a good cross platform UI will hit
you if you try it. You can do it, but it is work.
To me, it is better to either use someone else's cross platform ui
kit that is good, or to use platform specific UIs talking to your own
cross platform model. Cocoa is a good choice for that platform
specific UI.
We find that the model classes and data engine are the majority of
the work and validation, so we make sure that is cross platform. It
is just not feasible to have a different implementations for the
model on windows, linux, and the mac, which is what we target in most
of our apps.
One way to solve this is to write our programs in Java, with the GUI
in Swing. We then sweat lots and lots of blood to get it to work
right, creating custom components where Swing does not have something
correct. We have to handle different menu bars on Windows and the
Mac, but that is not that hard if you do it from the start.
Another valid approach is to make the backend a server process. We
then have the GUI communicate to it over a socket or something
similar. This works very well, and lets you have a for-real front
end in .NET on windows and Cocoa on the Mac. This works very well too.
I do believe that killing Cocoa-java was a bad idea, as there are a
tremendous number of really high grade java frameworks for all sorts
of tasks. Using them is much easier under Cocoa-java. That said, I
can get the vast majority of the benefits of cocoa-java by spinning
up a jvm early in my program's life cycle, using the java frameworks
for what they are good at, and letting Cocoa drive a world class UI.
Scott
---
email@hidden
Java, Cocoa, Tapestry, and Database Consulting
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden