Preferences

justinator parent
I think also retooling build systems to work with XCode took a while to do, or at least be worthwhile to do - especially if you're shipping a multi-platform beast like anything from Adobe. If I remember, the only real way to ship a Cocoa app was with Xcode.

klodolph
I have ported applications to Mac OS X, including applications that other people wrote and ones that I wrote. Let's say that you're starting with a C or C++ application using the Macintosh Toolbox APIs, built with MPW or CodeWarrior. A common path is:

1. Switch to using the Carbon API, and create a "carbonized" application that works on both Mac OS 9 and Mac OS X (same executable for both platforms, basically a special executable format and some restrictions on how you used various APIs)

2. Once you don't care about Mac OS 9 support, migrate to Project Builder (or at least GCC)

3. Eventually, migrate to Cocoa

The path was set up so that you could stop at any point along the way and keep shipping your application. In my personal experience, steps #1 and #3 could be difficult and labor-intensive, but step #2 was usually easy.

My understanding is that Quark got stuck and took too long to complete step #1, long enough that their customers didn't want to keep Mac OS 9 around just so they could use QuarkXPress and switched to InDesign.

Step #2 mostly involved fixing the parts of your code which used weird, non-standard C extensions that GCC did not support. Things like:

    (long)*ptr = x;
Adobe got stuck on #3, which is understandable because it's an enormous amount of work with a relatively low payoff. The main drawback of not completing step #3 is that you're stuck with a 32-bit application until you complete it.
protomyth
Xcode came later, it was Project Builder and Interface Builder. The NeXT tooling was amazing at the time.

This item has no comments currently.