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
[EMAIL PROTECTED] _______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@python.org http://mail.python.org/mailman/listinfo/pythonmac-sig