[Pythonmac-SIG] Mac User Python newbies

Chris Barker Chris.Barker at noaa.gov
Wed Feb 9 19:14:30 CET 2005


Bob Ippolito wrote:

> In our case, it was roughly 10x easier to hit the Mac 
> platform first.

Wow! That is a BIG ratio...really?

> The Tkinter GUI and the PyObjC 
> GUI share a bunch of code (as much as is reasonable).

Ah, that explains it.

> The Tkinter GUI 
> actually has code in it to emulate a bunch of Mac-isms and it reads 
> resources directly out of its sibling Mac OS X bundle (metadata, 
> localization, and the application's data).

And that explains it more. You ended up writing your own X-platform toolkit.

>  I'd have used wx, but Tkinter was easier for this

It doesn't sound like it to me.

Anyway, I think it is much harder to make a version on one platform, and 
then port it to another, than it is to make it cross-platform from the 
beginning. This was Joel's point: once you have a Windows version, 
making a Mac version is unlikely to be cheap enough to do. In your case, 
it worked, because the Windows market is about 10X as big as the Mac 
market, so it was worth spending 10X the effort.

If you had used wx from the beginning, I suspect the whole process would 
have been cheaper, you could have improved wx, rather than writing a 
Cocoa emulation layer for Tk. Of course, wx would have to have been at 
least as good as it is now for OS-X, which it has only been recently. 
Perhaps you couldn't have gotten the full Mac experience right either, 
but it sounds like at the moment, you don't have the full Windows 
experience, which may matter less, Windows users being what they are.

By the way, I say this from the perspective of a house that has been 
developing Mac + Windows software for a while. Most of it is written in 
C++, with the Mac as the primary platform, and Windows as the second. We 
have an in-house cross-platform layer, that is essentially a Mac 
emulation layer for Windows. The result is a lot of work, and 
applications that don't really look right on Windows. More recently, we 
developed an app with CodeWarrior PowerPlant on the Mac, and MFC on 
Windows. We ended up with an app that is very native on both platforms, 
but it took a heck of a lot of work. The Model is shared, but the GUIs 
are completely independent, and took almost twice as long as a result.

We've now started using wxWidgets with C++ (I'm still working on getting 
folks to use Python for "real apps"). Our last App took maybe 10% longer 
to do for both platforms that it would have for one, and I did a Linux 
port in about a week total (two programmer-years for the whole app). It 
looks and feels pretty darn native on all three platforms. We are very 
happy. There is no way we're ever going to get a linux port of any of 
our other apps. In fact, we don't yet even have an OS-X port of any of 
our apps other than the wxWidgets one.

If anyone's interested, here are a couple of our apps:

GNOME (home grown Mac + Windows toolkit)
http://response.restoration.noaa.gov/software/gnome/gnome.html

ADIOS2 (PowerPlant and MFC)
http://response.restoration.noaa.gov/software/adios/adios.html

The wxWidgets one is not available to the public (I'm working on that!)

-Chris


-- 
Christopher Barker, Ph.D.
Oceanographer
                                     		
NOAA/OR&R/HAZMAT         (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker at noaa.gov


More information about the Pythonmac-SIG mailing list