Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Macmadant

macrumors 6502a
Original poster
Jun 4, 2005
851
0
I've heard things about it, but i don't know exactly what it is, or what it does, would someone care to explain it to me ?
 
If your GF or wife has a case of yellow box just tell her to go to the doctor and get it fixed.

Oh okay then...

Cocoa is derived from the NeXTSTEP and OPENSTEP programming environments developed by NeXT in the late 1980s. 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.

http://en.wikipedia.org/wiki/Cocoa_(API)
 
If your GF or wife has a case of yellow box just tell her to go to the doctor and get it fixed.

Oh okay then...

Cocoa is derived from the NeXTSTEP and OPENSTEP programming environments developed by NeXT in the late 1980s. 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.

http://en.wikipedia.org/wiki/Cocoa_(API)
So basically Yellow Box is Cocoa ?
 

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

wouldn't this mean iLife and such apps made by apple could be used on a PC
 
Wouldn't that be the opposite of RedBox?
IIRC RedBox was the environment that Windowz apps could run in NeXTSTEP...?
NeXTstep did not support Windows applications. However, OpenSTEP was ported to Windows NT which allowed OpenSTEP/86 apps to run on NT with the look-and-feel of native Windows apps.

The colored boxes were part of the Apple development of Rhapsody. The Yellow Box was the OpenSTEP-derived APIs. The Blue Box was the MacOS 9-compatibility box. The Red Box was a rumor. During the early days of Rhapsody, Apple intended to continue OpenSTEP's support of Intel hardware. The Red Box was the rumored Windows-compatibility box for the Intel version of Rhapsody. When Apple decided to support PPC hardware exclusively, the Red Box rumor was put to rest. Apple now understands that the PPC is its bread-and-butter. It will never support Intel hardware. The Red Box should stay in the rumor cemetary.
 
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.
 
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.

:rolleyes: 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. :D
 
Oh, I did forget to tell you guys that it isn't all that hard to get Yellow Box for Windows. Like I said, because WebObjects 4.x is Yellow Box, buying that release will let you put the Yellow Box environment on a Windows system so you can try out the (very small) selection of Yellow Box (and OpenStep) for Windows apps.

I just bought WebObjects 4.5 for about $20 on ebay. I bought it to get the developer tools. Apple supplied the same developer tools (on the WebObjects 4.0.1* CD) with all the versions of Mac OS X Server 1.x. But the developer tools on the WebObjects 4.5 CD (specially Project Builder) were updated versions.

You can find WebObjects 4.0.1* here for $29.99 if you don't want to watch ebay for a copy.







* Note: The WebObjects 4.0.1 CD included with the media for Mac OS X Server 1.x may be the exact same version that comes in the standalone version of WebObjects 4.0.1, but the license string that comes with Mac OS X Server 1.x only works on Macs and not on Windows.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.