Re: Cross platform Cocoa/Obj-C
Re: Cross platform Cocoa/Obj-C
- Subject: Re: Cross platform Cocoa/Obj-C
- From: "Simson Garfinkel" <email@hidden>
- Date: Sat, 22 Dec 2001 10:09:52 -0500
>
Date: Fri, 21 Dec 2001 19:42:38 -0800
>
To: <email@hidden>
>
From: Brian Hook <email@hidden>
>
Subject: Cross platform Cocoa/Obj-C
>
>
The important thing is portability to FreeBSD and/or Linux. With Obj-C I
>
can do the majority of my coding with PB then (trivially?) port to another
>
Unix platform using GnuStep - I hope. With Eiffel I can probably use
>
SmallEiffel for final deployment while doing the majority of it in one of
>
the commercial IDEs.
You would have this kind of portability if the GnuStep project hadn't been
largely stalled for something like 5 out of the last 10 years, or if the
folks at FSF had taken our advice and realized that the GNOME project was a
disaster waiting to happen. You would even have more luck if Stallman wasn't
religiously opposed to the #import dirrective, and if getting and keeping
Objective-C support into GCC wasn't a never-ending battle.
Sad but true, if you need portability between FreeBSD and Linux, you are
probably better off using Qt and their Meta Object system, which is about as
close as you can get to Objective-C without actually creating Objective-C.
The funny thing is, they independently invented it. It would be nice if they
had done some research before implementing something that is 1/3 as good as
NeXTSTEP (which makes it 10x better than Windows, GNOME, Etc.)
REGARDING YOUR FOLLOWUP MESSAGE: There is no memory compaction in either
Objective-C or C++. There can't be, because you can't go through the address
space and update all of the pointers. If memory compaction and garbage
collection are really important in your application, then you will need to
implement your own memory allocation scheme. However, it is my experience
that many applications which appear to require dynamic memory allocation
with compaction can be redesigned so that they don't. When they are
redesigned, they frequently run faster.
Gosh, I'm on a soap box this morning, aren't I?