RE: Cross-platform Cocoa?
RE: Cross-platform Cocoa?
- Subject: RE: Cross-platform Cocoa?
- From: Alex Perez <email@hidden>
- Date: Wed, 29 Sep 2004 15:45:12 -0700 (PDT)
On Wed, 29 Sep 2004, Joseph Graham wrote:
> Hello,
> You might want to defer these discussions to the GNUStep-Discuss mailing
> lists. They are very active and these issues are very common. There is
> also a distribution specifically for windows and IIRC you can build
> GNUStep apps on windows using MinGW. This is better than cygwin from a
> dependency standpoint. They have been working on something called the
> "Windows Back-End" that brings the GUI server stuff to windows. The
> only "major" incompatibility between Cocoa and GNUStep applications are
> the "Nib" files. This boils down to a difference in how objects are
> serialized to a file stream. GNUStep uses a format called "Gorm" which
> is not compatible with "Nib." To make matters worse, Apple has closed
> the object serialization format for nib files and IIRC the GNUStep team
It was *never* open in the first place, so in the defence of Apple, they
did not "close" it any more than it was closed before their acquisition of
NeXT, Inc.
> has no desire to reverse engineer it. Another problem with GNUStep is
...Because it's a moving target. See WINE for an example of why this can
be problematic..it should be mentioned that there is an effort to reverse
engineer the encoding of *NSKeyedArchiver*
> that the GUI apps look like GNUStep apps and not windows applications.
> This may or may not be a problem depending on your app. IMHO it would
> be a problem for just about anyone for any application unless you really
> want to have an oddball looking(at best) application.
This is easily fixed, because this is OSS. Nobody has bothered to add the
ability to have GNUstep apps appear as native GDI apps because nobody has
had the need to do so. Anyone is invited to do exactly this however. And I
need not mention that, for Foundation/non GUI apps/daemons, it's not a
concern since they are simply not graphical.
> Your other option is using the Project builder that comes with
> WebObjects. IMHO, it is far more unstable than GNUStep but more forward
> compatible with XCode and later versions of project builder. Mind you
> that this is based on an older specification of the NextStep libraries
> and is not "backwards" compatible with any Cocoa stuff. But you can
> "convert" WO PB projects into XCode projects with little or no hassle.
> The only gotcha with WO is that you cannot distribute WO PB applications
> as commercial and perhaps even otherwise. Check the licensing if you
> are seriously considering taking this route.
It's also sometimes tough to find a copy of WebObjects 4.5 for Windows NT.
>From my experience, installing WO4.5 under 2000 or XP also hoses your
windows paths due to the incompetence of the antiquated Apple installer..
(this is not a showstopper, just extremely annoying)
> IMHO the best option in programming and designing _ANY_ application is
> to take the correct approach first AND know the risks and weaknesses of
> any approach you take. Granted Cocoa totally rules and I would not want
> to dirty my hands with any other environment but for now that
> environment only produces beautiful applications on OSX. GNUStep
> produces stepish looking applications really well on Linux (for now).
And FreeBSD, NetBSD, OpenBSD, Solaris, etc etc.
> Finally (for now) the best approach to produce native looking
> applications and is free and liberally licensed is WxWindows (or
> WxWidgets).
> http://www.wxwidgets.org
It's unfortunately rather heavy and hs its own problem of the apps not
looking 100% native under OS X, which many Mac users are extremely
sensitive to.
> Sadly you have to get out your caveman sticks and work in C++ and
> produce ugly Win32(ish) code. IMHO C++ is a distant (inbred) cousin to
> Objective-C and you can probably get some port started but it will not
> look anything like Cocoa and all that great stuff you get for free in
> AppKit you will have to figure on rolling some of it yourself. That's
> the compromise and the benefit is that you will have "native" looking
> apps that are cross-platform. Sadly you still have to compile them on
> each platform etc..
No reason why you can't code a GDI front end and have all your backend
logic be ObjC++ using GNUstep+Foundation under win32.
Cheers,
Alex Perez
>
>
> -----Original Message-----
> From: cocoa-dev-bounces+jgraham=email@hidden
> [mailto:cocoa-dev-bounces+jgraham=email@hidden] On Behalf
> Of James Bucanek
> Sent: Wednesday, September 29, 2004 9:46 AM
> To: cocoa List
> Subject: Cross-platform Cocoa?
>
> Greetings,
>
> So I'm talking to a friend of mine last night, and he thinks my Cocoa
> application would be a smash hit on Windows[1]. *sigh*
>
> But it did get me to thinking. How much of Obj-C and the NextStep
> framework is portable to Intel processors? It would really be nice to
> maintain a single Obj-C code base with all of the business logic --
> should I actually develop a brain tumor and decide to port it to
> Windows.
>
> I thought the Obj-C compiler was cross platform. So at the very least,
> I could recompile the application and roll my own NS... objects (I don't
> use that many -- the part of the application that I'd want to port has
> no GUI and very little Mac-specific code).
>
> I also thought that all of the NS... framework came from Next, which ran
> on Intel processors originally. But I don't know if the current NS...
> framework is available for Intel or is open source, nor do I know how
> much it relies on Darwin.
>
> Anyway, this is just idle speculation. I just thought I'd ask in case
> anyone here has had experience doing/trying this.
>
> Thanks,
>
> James
>
> [1] What well written Mac application *wouldn't* be smash hit on
> Windows? Can you say iTunes?
>
>
_______________________________________________
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