The point of my blog post, “What the IoT industry can learn from Apple’s revival of the Mac,” was to use Apple’s pivot to the Intel platform and compliance with the Open Group’s Unix standards as an example of the importance of a large vibrant ecosystem (created by Intel and Microsoft) is for the IoT industry to follow.
Without the PC ecosystem, the Mac would be an obsolete machine exhibited in the Computer History Museum. The PC ecosystem eliminated much redundant development, letting component and product companies focus on their products’ differentiation. The IoT industry would benefit if it had a robust ecosystem the eliminated redundant development.
In response to my post, John Gruber wrote a post on Daring Fireball that singles out two paragraphs I wrote. He Gruber wrote:
MAYBE THE DUMBEST TWO PARAGRAPHS ABOUT THE MAC I’VE EVER READ
I was intrigued by his allegations of 10 glaring errors that he did not cite.
I welcome criticism. There was indeed one error. And, perhaps these two paragraphs were without enough detail. In response to Gruber’s post, my inbox filled with mostly angry Apple Fanboy email. I responded to all that were written with a modicum of politeness and deleted those containing Anglo Saxon expletives without reading them.
The following is the correction and clarifications. The clarifications to the two paragraphs Gruber found objectionable do not change what was previously written but add confirming details.
Reference to the Motorola 6800 was extraneous because Apple was not producing Macs with this processor in 2007.
In 2007, the Mac was on life support. In 2004, the Mac represented only 1.7 percent of PC shipments, according to Horace Dediu of Asymco. In 2007, Mac shipments represented 3.0 percent of PC shipments. To Apple fans like Gruber, who wrote, “Mac sales were doing pretty well, growing in 2005 with thriving retail stores,” this might represent progress. But to Apple management and its board of directors, it was a crisis that likely raised the question: Should we be in this business?
But Gruber has been wrong before, most notably when he posted that Apple could not shift to the x86 Intel platform. Apparently, Gruber did not believe in binary translation, which was proven to work on a half-dozen platforms before x86 Mac. Binary translation executes code complied for one instruction set on a machine with a different native instruction set. Apple’s Rosetta allowed older apps compiled for the PowerPC to run on the x86 Macs. Nor did he foresee the applicability of fat binaries to package apps to run on both PowerPC and x86 Macs. Apple did this once before when developers were given the tools to package apps to run on both Motorola 6800 and PowerPC apps. DEC, HP and Sun Microsystems all employed fat binary strategies. Move along – nothing to see her.
The situation was dire. Developers were not developing apps for the Mac, giving users few reasons to buy them. It was so dire that Apple introduced Boot Camp to run native Windows apps on the Mac.
The Mac had been very proprietary up until then. The hardware platform was based on the PowerPC and it ran a proprietary OS X with components of FreeBSD Unix MACH. According to Christoph Pfisterer’s Fink website, “Mach originally is a micro-kernel design, the BSD kernel that sits on top of it is monolithic and the two are now so intertwined that they must be regarded as a single monolithic kernel.” But it was not Single Unix Specification (SUS) set by the Open Group with the POSIX standard, and it was difficult to port software to run on the Mac.
The Mac transitioned that same year. It had been a proprietary device running a proprietary operating system, with a beautiful proprietary user interface (UI) in an elegant ergonomically designed enclosure. Apple pivoted by shifting to the Intel platform and FreeBSD Unix, complying with SUS. The Mac today is a PC running an open-source operating system with beautiful proprietary UI in even more elegantly designed enclosures. FreeBSD influenced the evolution of the MacOS. Since the transition, many FreeBSD Unix components were rewritten and many APIs were added.
The net of this all is it became a lot easier to port development tools and applications from the open source community beginning with the release of OS X 10.5 (Open Group certificate) on May 18, 2007.
SUS is a group of standards that determine a portable API for Unix-like operating systems. It has been certified as SUS/POSIX compliant. SUS guarantees that certain system calls will be available, such as standard operating system interfaces and environment, including a command interpreter, and common utility programs to support applications portability at the source-code level. SUS includes concepts and interfaces such as utility conventions and C-language header definitions.
It also defines system service functions and subroutines, language-specific system services for the C programming language, and function issues, including portability, error handling and error recovery. Lastly, SUS adds a developer lingua franca standard source-code-level interface to command interpretation services, referred to as the shell or command line, and common utility programs for application programs that are included in the shell and utilities.
We could peel this onion with further discussion about the FreeBSD roots of MACH and NEXTStep and other interesting technical details about the evolution of the Mac. Further discussion is not necessary. The shift to the Intel platform gave the Mac economies of scale. SUS compliance added developer tools that eased the difficulty of porting apps to the Mac. More apps gave consumers more reasons to buy Macs. The Intel platform and FreeBSD/SUS compliance saved the Mac from extinction.