Looks like you guys hit on most of the major points... but lets put all these pieces together.
Yellow Box (as stated) is very much like the OpenStep APIs (note that OpenStep is the development/runtime environment, OPENSTEP is an operating system). And like OpenStep, Apple retained the ability to deploy this environment within other operating systems (Solaris, HP-UX, and Windows have all at one time or another been host platforms for OpenStep/Yellow Box).
This begs the question:
If Yellow Box and OpenStep are so much alike, why change the name?
They are related to each other, but they are still quite different. For example, OpenStep uses Objective C for it's foundational programming language, but Yellow Box uses both Objective C and Java (as anyone who has worked with NEXTSTEP/OPENSTEP knows, there is no Java support in those operating systems).
There were two reasons for this change, the first being WebObjects. As many may have realized, Apple had paid a massive amount of money for NeXT Software. And the most profitable of the NeXT products at the time was WebObjects. With Java sweeping the web, to make WebObjects more attractive Apple wanted to include Java as a programming language. Which they did in WebObjects 4.x for Windows... which
is Yellow Box for Windows (so with WebObjects 4.x installed on a Windows system, you can run any Yellow Box for Windows app).
The second reason was that with Java being a cross platform programming language, Apple (Jobs) felt that Java would attract more developers to the platform. Sadly, didn't happen... which was why Apple dropped all work on enhancing Java within Cocoa a few years ago in favor of a strictly Objective C path.
This begs the next question:
If Yellow Box and Cocoa are so much alike, why change the name (again)?
Because Yellow Box and Cocoa aren't the same. Yellow Box in Rhapsody stood alone. It didn't have to share the stage with any additional environments (Blue Box was almost completely separate and X Windows was added by third party packages). Then came Carbon. This changed the landscape for Yellow Box. Carbon wasn't going to be like Blue Box or Classic, it was to have equal footing with Yellow Box (which Carbon didn't have when first shown running in Rhapsody back in WWDC 98). Equal footing meant that the two environments would need to interact which was the main change from Yellow Box to Cocoa... these days Cocoa apps use quite a few Carbon APIs and Carbon apps use quite a few Cocoa APIs.
Okay, addressing some of the previous posts...
risc said:
Apple acquired NeXT in December 1996, and subsequently went to work on the Rhapsody operating system that was supposed to be the direct successor of OPENSTEP. It was to have an emulation base for Mac OS applications, called Blue Box. The OPENSTEP base of libraries and binary support was termed Yellow Box. Rhapsody evolved into Mac OS X, and the Yellow Box became Cocoa.
The wording on this seems to be a little off... Rhapsody
did exist (both as two developer releases and as 5 subsequent public releases), and it
is the direct successor of OPENSTEP which can be seen by it's version numbers. OPENSTEP has versions numbers 4.0 to 4.2, Rhapsody has version numbers 5.0 to 5.6. And OPENSTEP is an operating system, OpenStep was the development/runtime environment.
Macmadant said:
So basically Yellow Box is Cocoa ?
Only in the most broad terms... but Yellow Box apps don't run in a Cocoa environment, so they aren't
exactly the same.
mkrishnan said:
Yes, in the context of the recent rumors, it means making the Cocoa API run on Windows so that developers could develop Cocoa apps that could be compiled with Windows. The apps would then more or less have an Apple interface inside their window on a PC. And the benefit to developers would be that if they develop Mac code, they could easily cross-deploy it
Ummm... not quite.
First, Yellow Box was not only dropped from Mac OS X, it was dropped from WebObjects with the release of version 5. Specifically, Apple dropped support for Objective C in WebObjects, so the runtime environment which used to be part of WebObjects that was very similar to the Rhapsody runtime environment is all but gone.
And without a runtime environment designed for the type of code that is used in Cocoa apps (which, as I said before is more of a mix of Cocoa and Carbon than just straight Cocoa these days) you won't be running that stuff on any other platform.
Further, I think people have a misconception of how Yellow Box for Windows worked. You couldn't just run a Rhapsody app on Windows with Yellow Box installed. The developer would have to create a special version of the app, with a special GUI, that would work on Windows. So a Yellow Box app may come as an
application.app, but inside you'd also find an
application.exe.
In other words,
easily cross-deploy is a relative term. And the apps had a very
Windows-like feel to their GUI (I have screenshot
here and
here of what Yellow Box for Windows looks like).
Macmadant said:
wouldn't this mean iLife and such apps made by apple could be used on a PC
No... they are designed for the Mac OS X environment. They may use mainly Cocoa, but also a lot of Carbon, and many of the additional core services provided by Mac OS X.
One should keep in mind that OpenStep (co-developed by NeXT and Sun based on the NeXTStep APIs by NeXT) and Yellow Box for Windows were specifically developed to be platform neutral. There were many things in Yellow Box for Rhapsody that weren't there for Yellow Box for Windows apps, and Apple has had no incentive to keep the environment neutral in the last 7 years or so.
The iLife apps are designed to show off what is special about Mac OS X. So by their very nature they are the least likely of apps that could be run on a
Yellow Box for Windows like environment.
TextEdit? Sure. OmniWeb? Yeah, I could see it. Create? It has gotten too tied to Mac OS X's features, so most likely not.
Basically, not all Cocoa apps are created equal, so consideration would need to be made as to which would (or could) be rebuilt (and they
all have to be rebuilt) to run on a (currently nonexistent) runtime environment for Windows.
mkrishnan said:
In principle... were it to happen, yes, it could.
Yeah, but lets be sure to qualify
in principle... because the odds of it happening are majorly stacked against it happening
at all.
MacsRgr8 said:
Wouldn't that be the opposite of RedBox?
IIRC RedBox was the environment that Windowz apps could run in NeXTSTEP...?
Neither NeXT nor Apple did anything like
Red Box. It was some opinion writer's fantasy that has become an urban legend.

Plus Apple would have never picked "red" for such a
box.
Running Windows apps in Rhapsody was being left to Connectix (via Virtual PC), so Apple had no interest in that area back then.
MisterMe said:
Apple now understands that the PPC is its bread-and-butter. It will never support Intel hardware.
Should read more like:
Apple now understands that the hardware is its bread-and-butter. It will never support other company's PCs.
0010101 said:
Years ago when Jobs went back to work for Apple, I remember reading an article where he talked about having a single application that would run cross platform.
Now i'm not sure if I just misread the article, or if it was my own imagination filling in the blanks.. but it seemed to me like he'd also invisioned having two versions of MacOS.. one for PC's and one for Macs, and allowing a single application to run on both platforms.
Pretty much what we have today: A PPC and a Intel version of MacOS and Universal Binary applications that will run on either version.
Of course at the time I read that, the idea of Apple ever switching to Intel/x86 architecture was.. well.. crazy.. especially with the smoking 'bunny' guy commercials and such.
I'll have to dig around the 'net and see if I can find that interview
I wouldn't spend to much time on it, Rhapsody originally ran on both PowerPC and Intel hardware (I run it on both an IBM ThinkPad and a Power Macintosh 8600) and most of the early apps were compiled to run on both platforms (with some later apps being PowerPC only).
But you are right, Apple and developers moved away from Intel when it couldn't keep up with the speed of PowerPC processors back then. Part of what killed off Rhapsody for Intel was that developers weren't compiling apps for that platform as much as for PowerPC. This was an even stranger move by developers when you consider that almost all of them were former OPENSTEP developers who originally were developing on PC hardware. Within a period of about two years they had all but abandon their PCs in favor of Macs.
And of course all this predates Apple going with Motorola's G4, and the production quality issues that slowed the G4's advances (the Motorola's G4 was stuck at 500 MHz for about a year while IBM's G3 had jumped to between 700-800 MHz, though Apple wouldn't use any at clock speeds faster than their shipping G4 systems).
The fact is, the bunny commercials were right back then... the processor market has a history of companies
leap frogging each other.
And Apple didn't move to Intel for faster processors... they move so that they could be a preferred customer (something that they couldn't be with IBM now that Microsoft is using PowerPC chips).
... but that has little to do with the Yellow Box topic.
