Women in Technology

Hear us Roar

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

Universal Binary is indeed an Apple branding and certification program. The technical details are but one aspect of it (albeit the most important.) Check out http://developer.apple.com/softwarelicensing/agreements/maclogo.html for an overview. Software developers have to sign a licensing agreement before they can use the Universal Binary logo on their products.

Regarding the fact that both architecture's binaries are contained in the same file: It is correct to express that as "two versions of the program come in the same box" (or more accurately, on the same CD.)

Apple has done a good job leveraging open-source technology for Xcode. It still isn't an accepted international standard, which means you are dependent on Apple (or whoever) for future enhancements. There is nothing wrong with that, if you don't mind putting your coding effort in the hands of other people. That is the trade-off you accept when you opt for a multi-platform development tool.

Full Threads Newest First

Showing messages 1 through 7 of 7.

  • Universal Binary is not a certification program
    2006-03-25 09:49:32  jdodds [View]

    You're still confusing the logo program with a file format. Yes, developers need to sign a licensing agreement to use the logo. But I don't need to sign anything to create a universal binary. And licensing the logo doesn't involve any certification by Apple.

    I thought I understood your point about Xcode up until the last sentence. Then you lost me. I don't know what you mean by:

    That is the trade-off you accept when you opt for a multi-platform development tool.

    Did you mean single platform instead of multi-platform?

    I thought you were making a point about open source tools versus proprietary tools.
    • Universal Binary is not a certification program
      2006-03-29 12:33:15  AdrienLamothe [View]

      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.



      • 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.