[Pythonmac-SIG] Objective C and Cocoa

Kevin Ollivier kevino at tulane.edu
Wed Oct 15 15:29:31 EDT 2003


Hi Ronald,

On Wednesday, October 15, 2003, at 11:59  AM, Ronald Oussoren wrote:

>
> On 15 okt 2003, at 20:36, Bob Ippolito wrote:

[snip comments about GNUStep portability]

>>
>> Honestly, I don't care if it's a closed source single platform 
>> framework.  What I care about is getting stuff done as elegantly and 
>> effortlessly as possible on the platform of my choice.  Kludge sucks. 
>>  But in any case, there's GNUStep, so in theory in the near future 
>> (as near as we, the open source community, make it) all this stuff 
>> would work on Linux and (with some work on the win32 port of GNUStep) 
>> win32.
>
> I don't care too much about having GNUstep available for when I'd like 
> to move to Linux. AFAIK the GNUstep folks want to recreate NeXTstep, 
> without much integration in the dominant desktop environments.
>
> GUI programs should contain of a portable core and a platform 
> dependent GUI layer on top of that, this makes it a lot easier to make 
> the look&feel just right for a given platform. wxWindows and other 
> x-platform toolkits get close, but it is often noticeable that a GUI 
> was developed on a foreign platform.

Actually, you've hit on a good point here - one that has to deal with 
the developer (and the platform they're comfortable with) rather than 
the tools themselves. The real problem is not that wxWindows can't be 
used to write a solid Mac application (though yes it still needs tweaks 
and bug fixes to make it OS X optimized), the problem is that the 
developers using the toolkit don't know what interface paradigms (i.e. 
MDI) work on platform X but not on platform Y. So when writing 
behaviors, they tend to lean towards the same behaviors that exist on 
their primary platform. I think the solution here is that there needs 
to be a cross-platform "HIG" like the one Apple has for Mac, so that 
the developers know that by using certain interface elements or 
implementing certain behaviors that they aren't committing a no-no on 
any particular platform.

IMHO, wxWindows is close enough that it's in 'bug fix' mode to tweak 
any problems that arise, as well as optimizing code to take advantage 
of Mac-only features whenever possible. The only major control that 
doesn't do the right thing on Mac, that I know of, is the wxListCtrl, 
which needs to be have its internal implementation moved to the 
DataBrowserControl instead of the ListCtrl that Mac classic/carbon uses.

The main reason I'm so keen on wxWindows is that other toolkits 
commonly have the problem that they were *written* specifically for one 
platform, then ported to another. (Often using 'themes' to mimic look - 
ugh.) Portability wasn't necessarily an initial goal, but people 
started saying "Oh, can I run this on platform Y too?". Thus even 
though they run on other platforms, there are a lot of internal 
assumptions in the code which make it not really portable. *nix apps 
tend to follow Windows conventions to some extent so the change isn't 
so dramatic, but when porting a *nix toolkit to Mac or vice versa, it 
is bound to at least feel strange on the other platform. wxWindows is 
by far the closest thing I know of to something that "does the right 
thing".

Thanks,

Kevin





More information about the Pythonmac-SIG mailing list