There has been a lot of vilification of Isaacson's book, much of it seeming to draw ire because it presents Jobs as a mere human.
There has been a lot of vilification of Isaacson's book, much of it seeming to draw ire because it presents Jobs as a mere human.
Do Apple engineers and Designers really work side by side? Or is it just that Apple prioritise design over engineering.
So rather than the engineers throwing a brick over the fence and saying "Designers, make it look good" it's designers throwing a sleek brick over the fence and saying "Engineers, make it work."
The antennae-gate was a REAL problem, that Apple changed it's design for (in the 4S)... Can we really accept there is no tension in Apple over these things (As Gruber is suggesting)?
Really? It looks the same.
Gruber concedes an inch to take a mile. It's a tactic as old as time and it's hardly surprising that he uses it here.
However it is the volume of the book dedicated to humanizing Jobs that turned many of Jobs greatest fans against Isaacson. As Gruber says "Isaacson got the self-absorbed hypocritical asshole right, but the world is full of self-absorbed hypocritical assholes."
In fact I think Gruber himself continued to understate the role NeXT technology played. Gruber writes:
> It is in fact, completely and utterly wrong.
> NeXTStep was not “just warmed over UNIX”.
> Apple did get NeXT’s OS to run on Mac hardware.
> Mac OS X 10.0 was a hybrid of Mac and NeXT
> technology, but it was clearly the NeXT system
> with Mac technologies integrated, not the
> other way around.
Gruber should have gone further and pointed out that Mac OS X wasn't even a hybrid, but rather the latest iteration of NeXT technology combined with new code that reimplemented the Mac experience. 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.It would be also fair to say that iOS does not have any legacy "Mac" technology in its stack, and shares its spiritual lineage with NeXT alone.
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.
IIRC, 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?)> 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.
I don't recall it being a big deal after the black hardware and their DSPs were killed.
"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."
I don't recall NeXT ever having OpenGL. And Display Renderman pretty much lost to OpenGL in the 90s, so that wasn't about to be resurrected.
" NeXTSTEP, or more properly OpenStep, had a Java port from Sun"
Really? I don't remember that.
I think I'm mistaken about OpenGL, my memory is fuzzy. As to Java: what I was thinking of was OPENSTEP/NT and NEO both supporting Java (WebObjects had Java as early as '97), but I believe it was never released on NeXTSTEP. I guess that doesn't count.
When I was contracting at Swiss Bank in Chicago in 1994, I noticed an HP on the network running NeXTSTEP. I telnet'ed to it from the NeXTStation on my desk, and ran some renders to see how much faster it was. Got a stern email saying "Stop doing that.".
Are you disagreeing with Gruber's thesis that Isaacson really didn't understand the complementary contributions of software to "design"? Why?
I'm typically not a defender of John's, but he seems to me to be on target here.
What about this article do you think is Gruber twisting Issacson's words?. Every example has a well documented reason on why Issacson is flat out wrong.
What Bill Gates said was absolutely true! Rhapsody with the NeXT Mach kernel, a pulled-in, non-NeXT BSD application layer, and then various other Mac layers (GUI, Cocoa, etc). Technically there is nothing wrong with his statement.
But it doesn't sound as impressive to Steve Jobs to say that only the microkernel (which we know is a critical part of a system), so better still to simply claim Gates is the liar?
> and then various other Mac layers (GUI, Cocoa, etc).
Incorrect. The GUI wasn't ported, it was rewritten for OS X. Cocoa's heritage is NeXT to the core. Nothing vaguely resembling Cocoa existed in the classic Mac environment. > a pulled-in, non-NeXT BSD application layer
Incorrect. There is little of "BSD" in the Mac OS X environment, save for some FreeBSD userland components, most of which only matter on the command line. The application layer of Mac OS X is Cocoa.(There is also the Carbon application layer which does partially derive from classic Mac, but that existed solely to ease application porting of existing Mac apps. But even Carbon is a hybrid, and was actually back-ported to Mac OS 9.)
> Technically there is nothing wrong with his statement.
Any Mac OS X software developer will know enough to confidently refute the accuracy of Gates' claims.The same was true of NeXTStep and OpenStep/Mach. Mach kernel. BSD user land. NeXT GUI.
Actually, technically there's everything wrong with that statement. It's just not the case.
Cocoa is NeXTStep. Take a look at the APIs. Everything is prefixed with NS.
The old Carbon APIs were completely reimplemented--those original Mac OS Classic APIs were mostly written in 68000 assembly with a liberal amount of Pascal thrown in--totally unsuitable for the new flagship OS.
I used OpenStep for about a year before the first OS X Betas were released. I can tell you first hand that Rhapsody was 90% NeXT and 10% veneer to make it "look like a Mac". "Terminal.app" barely changed from OpenStep to Mac OS X. Several other apps looked identical too. I'm pretty sure the minify button iconified the icons the way OpenStep used to.
Don't forget that NeXTStep/OpenStep had a full BSD subsystem too. That's not new or unique to Mac OS X. Go to your terminal and "man open". Notice the "First appeared in NextStep" part.
The fact is Mac OS X 10.0 is NeXTStep/OpenStep with some extra compatibility layers for the carbon APIs (plus an VM for doing running OS 9 apps). Saying that they "just pulled the kernel out" is patently false.
From Bill Gates' perspective, MS Office was a straight-forward port to Carbon, so I suspect he misunderstood when hearing it was 'mostly the same'.
The main differences now are 1) cheaper, faster hardware, 2) menubar at the top instead of a floating vertical menu, 3) I keep the Dock on the left instead of on the right side of the screen, 4) fancier development tools.
It's hard when you find out that your hero was in many ways a contemptible person. And it's not a noble reaction, but certainly a human one, to go looking for some fault with the source of this news.