[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