3 ms·
> The modest quantity of ported or migrated Mac technology (e.g. the Carbon APIs) existed purely to form a compatibility layer with existing Mac apps, and don't
by SeanLuke 15y ago
> The modest quantity of ported or migrated Mac technology (e.g. the Carbon APIs) existed purely to form a compatibility layer with existing Mac apps, and don't form the basis of any future development path.
I dunno. Post-Rhapsody, Apple worked hard to unify Carbon and Cocoa to provide a consistent user experience across applications. IIRC, in a surprising number of cases, the way unification was achieved was to make the Cocoa element be little more than a compatibility layer on top of Carbon. For example, I believe the save and open panels, print and page layout panels, and various dialog APIs worked this way.
It seems to me that if Carbon was viewed as a dead-end from the get-go, embedding it in many cases under Cocoa was a funny way of demonstrating that.
Carbon was a big project, and wasn't modest by any standard. Again IIRC, Apple rewrote the entire Finder in Carbon (and not in Cocoa) in order to test the Carbon library for bugs. Other things came from the Mac while their NeXTSTEP equivalents were abandoned: for example, UFS was blown away and replaced with HFS+. Quicktime was ported, as were 3D facilities and game APIs. NeXT's Soundkit was deprecated in favor of stuff for OS 9. Java, up through 1.3.x at any rate, came from OS 9. I think the font facility, always an ugliness in NeXTSTEP, was replaced with Apple's (including support for OpenType etc.). I think your depiction of this stuff as "modest" is not particularly accurate.
So anyway, Isaacson's depiction of OS X as being basically Mac technologies with a little NeXTSTEP kernel is ridiculous. But don't make the same mistake in the other direction.
- sjwright 15y agoIIRC, Apple rewrote the entire Finder in Carbon (and not in Cocoa) in order to test the Carbon library for bugs. This may well be true, but my own suspicion is that it had as much to do with Apple having hundreds of core system developers already familiar with the C++ APIs, and a limited timeframe to get Mac OS X released. Either way, both assertions point to Carbon being a compromise choice. UFS was blown away and replaced with HFS+ In order to maintain compatibility. And it wasn't just ported code -- HFS+ support was rewritten from the ground up as a UNIX file system. Surprisingly, the result wasn't a delicate hack, and the fact that we're still using it today (on iOS too!) speaks to the engineering capability of Apple. (And NeXT, since it's all one big family now.) Quicktime was ported QuickTime was also ported to Windows. as were 3D facilities and game APIs In order to maintain compatibility. The recommended way to write games on Mac OS X has always been the OpenGL APIs, and you can hardly describe OpenGL as a legacy Mac technology. Java, up through 1.3.x at any rate, came from OS 9 Java came from Sun. I have no knowledge of how Java was implemented in Mac OS X, but to the extent that any platform-specific or processor-specific hooks were lifted from the OS 9 distribution, that's hardly a Mac "technology". I think the font facility, always an ugliness in NeXTSTEP, was replaced with Apple's Font handling in Mac OS X is part of Quartz, a new technology developed for OS X. Not only was it not taken from OS 9, the whole technology direction was abandoned. (Remember QuickDraw GX?)
- SeanLuke 15y agoThere are a whole lot of factual errors here, or at least conclusions kind of pulled out of thin air. To wit: > This may well be true, but my own suspicion is that it had as much to do with Apple having hundreds of core system developers already familiar with the C++ APIs, and a limited timeframe to get Mac OS X released. Actually, NeXT already had a perfectly cromulent Cocoa-based "Finder", called the Workspace Manager. This was the program used in NeXTSTEP and later in Rhapsody. Apple threw it away and replaced it with a Carbon Finder built in-house. They were quite specific as to the reason: to guarantee that Carbon was bullet-proof, Apple built the Finder "to eat their own dog food" (though he didn't originate the term at Apple, I think Steve started using it too). > [regarding UFS] In order to maintain compatibility. And it wasn't just ported code -- HFS+ support was rewritten from the ground up as a UNIX file system. Surprisingly, the result wasn't a delicate hack, and the fact that we're still using it today (on iOS too!) speaks to the engineering capability of Apple. (And NeXT, since it's all one big family now.) It wasn't just compatibility. Though it was case-preserving :-(, HFS+ had some big advantages over UFS. It supported Unicode. It supported metadata. It supported soft links which were preserved in removable media. It had much better networked file support. And so on. Also: IIRC HFS+ wasn't rewritten from the ground up. Apple already long had a version of it running on UNIX systems they had developed in-house. > Quicktime was also ported to Windows. The point is, NeXT already had a multimedia, sound, and (limited) video system. It was famous for its sound system in particular. But (Carbon) Quicktime was better. So they used it instead. > In order to maintain compatibility. The recommended way to write games on Mac OS X has always been the OpenGL APIs, and you can hardly describe OpenGL as a legacy Mac technology. You absolutely can! Porting OpenGL involves a huge number of low-level ties to the operating system. NeXT had its own 3D facilities as well (OpenGL under NeXTSTEP, and Display Renderman), which were entirely tossed out in favor of the "legacy" OS 9 version. > Java came from Sun. On early OS X, the bulk of the Java facility came from Apple. Sun didn't support the Java port at all. NeXTSTEP, or more properly OpenStep, had a Java port from Sun which was entirely replaced with the OS 9 Java version. > Font handling in Mac OS X is part of Quartz, a new technology developed for OS X. Not correct. Font and typographic engine technology was derived from ATSUI, Apple's advanced typography system. And why wouldn't they? It was the best in the world. Look, I don't dispute, by any stretch, the notion that the crucial parts of OS X were NeXTSTEP. I'm a NeXTSTEP guy! But your dismissal of Carbon and OS 9 technologies that found their way into OS X is both overly casual and in many cases simply false. To this day OS X still has a huge number of OS 9 technologies embedded in it not because of compatibility, or just because of compatibility, but because they were the best technology. Apple's not stupid.