Apple's High-Water Mark?
Subject:   Universal Binary is not a certification program
Date:   2006-03-29 12:33:15
From:   AdrienLamothe
Response to: Universal Binary is not a certification program

When you opt to use a multi-platform development kit, you have to utilize a new set of system calls in your code, link to new libraries, and in some cases utilize a run-time engine. Unless you plan to maintain the kit yourself (and have the right to do so,) you are dependant on other people for enhancements, bug fixes and insuring the kit will work for future versions of the target operating systems.

Trolltech, developer of the QT multi-platform SDK, actually open-sources their code under GPL. If you use the kit for commercial purposes, then you pay Trolltech a licensing fee, otherwise their kit is free to use. If Trolltech ever goes out of business, people can continue to enhance the kit, because they have the source code.

I've been in a situation where a company had based a critical piece of their software infrastructure on proprietary middleware. The middleware vendor was then sold to another company, at which point the brilliant founder, who was also the lead developer, left the company. From that point on, no updates were released for the product. The source code wasn't available. Worse, not having updates prevented the user from upgrading to new hardware and operating system versions. And they couldn't just throw the system away, their business depended on it. Overall, a bad situation to be in.



Full Threads Newest First

Showing messages 1 through 5 of 5.

  • Universal Binary is not a certification program
    2006-03-30 06:53:43  jdodds [View]

    Xcode is an IDE. It's not a 'multi-platform development kit.' It is not an alternative to something like Qt. But, as Trolltech's website notes, Xcode is a supported IDE for Qt/Mac development.

    Adobe put themselves in a tight spot by not recognizing (or at least not reacting to) the handwriting on the wall regarding Metrowerks. Adobe's dependence on Metrowerks' IDE and libraries is similar to your story about the proprietary middleware.

    I don't think Xcode represents the same risk. First, if you're targeting Mac OS X then you're already depending on Apple. If Apple loses interest in computers and becomes a consumer electronics company your investment in Mac OS X development may be a lost regardless of your choice to use Xcode or not. Second, Xcode has little or no direct competition right now. Paradoxically that's good. Apple needs developers so Apple needs to support good developer tools.

    You are always "putting your coding effort in the hands of other people." Even when you are using open source. The potential advantage of open source is that by providing more options the risk factors are changed.
    • Universal Binary is not a certification program
      2006-03-30 10:27:12  AdrienLamothe [View]

      Quoting one of your earlier statements:

      "Apple's Xcode development tools support building universal binaries. It's a build configuration option in the Xcode UI."

      Your earlier assertion was that software developers can smoothly migrate to whatever new microprocessor Apple uses, simply by using Xcode. Do you still assert this?

      QT also generates Mac OS X programs. Adobe has used QT in the past, to build Photoshop Album.

      Using open-source tools does potentially mitigate risk. Even better is when you can code to open, established standards. Linux is a POSIX-compliant Unix operating system, that is both open-source and adheres to standards. This separates it from other operating systems, that appear to be open but are in fact only open to a certain degree. Lots of software developed for other Unix platforms will compile and run on Linux; this demonstrates the power of standards.

      Of course, there are abstractions above the operating system, that are not official standards, so we end up developing to those de-facto standards. Today's de-facto standards can become tomorrow's official standards. So it is also good to avoid dogmatism and pragmatically utilize the best tools for the job. QT may be a candidate for future standardization, as may any new abstractions Apple can develop.


      • Universal Binary is not a certification program
        2006-03-31 06:06:19  jdodds [View]

        Xcode is no magic bullet. It won't save you if you have written non-portable code. But Universal Binary can accommodate as many processor architectures as Apple needs and it's reasonable to assume that Xcode will continue to support Universal Binary.

        I'm not familiar with Qt but libraries like Qt generally need to make compromises to abstract away some of the differences between the UIs they support. If you are developing to multiple UI platforms the trade-off may be acceptable.

        But if you are writing a Mac OS X app for Mac OS X only I don't see value in writing to Qt over writing directly to Carbon/Cocoa.
        • Universal Binary is not a certification program
          2006-03-31 09:04:24  AdrienLamothe [View]

          Universal Binary will support a new processor architecture after Apple (or someone) develops the compiler for it. I believe Apple is using the GNU compiler for Core Duo. So, there is always work involved when supporting a new microprocessor. Speaking of GNU, it is amazing how we now live in a world where companies can deliver innovative products based on open-source technology. Ten years ago we couldn't have had this discussion.

          Apple made a smart move migrating to Core Duo, because they needed something new. I was surprised they didn't migrate to AMD, because Opteron is so good and is 64 bit. Core Duo is a better choice for notebook computers (a very important market segment.) The migration was also well timed from a marketing perspective. Apple has held on to public mind share because of constant product introduction (mostly iPods) the past couple of years. One of Steve Jobs' strengths is his initiative. Apple is proof that a smaller company with initiative can outperform larger competitors. Larger companies tend to be very risk averse and also slow to react due to the bureaucratic nature of their decision making processes. I believe Sony is in this category and is fighting hard to change.

          I believe QT does abstract away some differences. It actually doesn't have to, it is just a matter of how much effort goes into developing QT. Some software companies have the resources to develop their own custom QT widgets. I agree that developing to Carbon/Cocoa is the way to go if you are writing only for the Mac.

          • Universal Binary is not a certification program
            2006-03-31 10:15:59  jdodds [View]

            I agree with you that the choice of Intel over AMD was probably driven by notebooks.

            There was a recent article (can't remember where) that made a case that Apple doesn't act its age in the sense that it acts more like a startup than a 30 year old company.