4 ms·
I was in elementary school during Copland and the NeXT acquisition and so I wasn't there, but based on everything that I've read, the reason for the long gap be
by linguae 7y ago
I was in elementary school during Copland and the NeXT acquisition and so I wasn't there, but based on everything that I've read, the reason for the long gap between the purchase of NeXT in December 1996 and the release of Mac OS X 10.0 in March 2001 had largely to do with the inclusion of the Carbon API.
The story goes as follows: after Copland was cancelled in 1996, Apple then pursued the idea of purchasing or licensing an operating system from another company and then building a new Mac operating system on top of it. Existing Mac programs running on then-current System 7.5 would run in emulation under what's called the "Blue Box," which would later be known as Classic Mode in Mac OS X. New programs would run under a then-undefined API called Yellow Box that ran natively on Apple's future operating system. The questions were: (1) what would be Yellow Box, and (2) what would be the native operating system? The choices were Windows NT, Solaris, BeOS, and OPENSTEP. BeOS and OPENSTEP ended up making it to the "final round." In the end, Apple bought NeXT, and work started on a project called Rhapsody, which was essentially OPENSTEP with a Mac OS 8-style theme. Yellow Box was the OpenStep Objective-C based API, which would later be renamed Cocoa in 1998. Rhapsody was supposed to be released sometime in 1999 if I recall correctly.
In the beginning, it was expected that Mac developers would port their software from the classic Mac API to Yellow Box. However, some developers balked at the prospect of porting their code to Yellow Box, most notably Microsoft and Adobe. Given the importance of products like Microsoft Office and Adobe Photoshop to the Mac platform, during WWDC 1998 Apple announced the Carbon API, which was similar to the classic Mac API but was designed to take advantage of features such as preemptive multitasking and protected memory. Also, Apple announced that both Carbon and Cocoa would be based on a common substrate of C functions, allowing "toll-free bridging" between the two APIs.
The addition of Carbon was a significant engineering effort that contributed to the delay of the release of Mac OS X. There may have been some other factors, such as designing the Aqua interface and incorporating the feedback received from users of the Mac OS X Public Beta, which was released in 2000.
In the meanwhile, Steve Jobs was able to buy time for Apple through the introduction of well-received, now legendary products such as the iMac and the iBook. By 2000 Apple got its mojo back, and the attention became less on when Apple would finally release Mac OS X and more on anticipating what type of products Apple would come out with next. Eventually Mac OS X 10.0 would get released in March 2001, just in time to compete against Windows XP, the first consumer version of Windows based on Windows NT as opposed to MS-DOS.
- kls 7y agoYep Adobe and their unwillingness to port was a big part of it. I think Steve carried that with him and gained a little joy in staking Flash in the heart when he did.
- pjmlp 7y agoThe irony is that Flash is pretty much alive. After those actions, Adobe created an AOT compiler for Flash, so before Unity and Unreal took off, plenty of iOS games were actually AOT compiled Flash ones. Following up on that, Animate was born. Now thanks to WebAssembly and CheerpX, old Flash applications can keep on running.
- lproven 7y agoYou have most of the details right, but not in the right order. Yes, Apple looked at buying in an OS after Copland failed. But all the stuff about Carbon, Blue Box, Yellow Box, etc. -- all those were NeXT ideas after the merger. None of it was pre-planned. So, they bought NeXTstep, a very weird UNIX with a proprietary, PostScript-based GUI and a rich programming environment with tons of rich foundation classes, all written in Objective C. A totally different API, utterly unlike and unrelated to Classic MacOS. Then they had to decide how to bring these things together. NeXT already offered its OPENSTEP GUI on top of other Unixes. OPENSTEP ran on Sun Solaris and IBM AIX, and I think maybe others I've forgotten. Neither were commercial successes. NeXT had a plan to create a compatibility environment for running NeXT apps on other OSes. The idea was to port the base ObjC classes to the native OS, and use native controls, windows, widgets etc. but to be able to develop your apps in ObjC on NeXTstep using Interface Builder. In the end, only one such OS looked commercially viable: Windows NT. So the plan was to offer a NeXT environment on top of NT. This is what was temporarily Yellow Box and later became Cocoa. Blue Box was a VM running a whole copy of Classic MacOS under NeXTstep, or rather, Rhapsody. In Mac OS X 10.0, Blue Box was renamed the Classic environment and it gained the ability to mix windows with NeXT windows. But there still needed to be a way to port apps from Classic MacOS to Mac OS X. So what Apple did was go through the Classic MacOS API and cut it down, removing all the calls and functions that would not be safe in a pre-emptively multitasking, memory-managed environment. The result was a safe subset of the Classic MacOS API called Carbon, which could be implemented both on Classic MacOS and on the new NeXTstep-based OS. Now there was a transition plan: • your old native apps will still work in a VM • apps written to Carbon can be recompiled for OS X • for the full experience, rewrite or write new apps using the NeXT native API, now renamed Cocoa. • incidentally there was also a rich API for Java apps, too Now there was a plan. Here's how they executed it. 1. Copland was killed. A team looked at if anything could be salvaged. 2. They got to work porting NeXTstep to PowerPC 3. 2 main elements from Copland were extracted: • The Appearance Manager, a theming engine allowing skins for Classic MacOS: https://en.wikipedia.org/wiki/Appearance_Manager https://en.wikipedia.org/wiki/Appearance_Manager • A new improved Finder The new PowerPC-native Finder had some very nice features, many never replicated in OS X... like dockable "drawers" -- drag a folder to a screen edge and it vanished, leaving just a tab, which opens a pop-out draw. Multithreading: start a copy or move and then carry on doing other things. The Appearance Manager was grafted onto NeXTstep, leading to Rhapsody, which became Mac OS X Server: basically NeXTstep on PowerPC with a Classic MacOS skin, so a single menu bar at the top, desktop icons, Apple fonts and things -- but still using the NeXT "Miller columns" Workspace file manager and so on. Apple next released MacOS 8, with the new Appearance control panel and single skin, called Platinum: a marginally-updated classic look and feel. There were never any official others, but some leaked, and a 3rd party tool called Kaleidoscope offered many more. http://basalgangster.macgui.com/RetroMacComputing/The_Long_View/Entries/2011/2/26_Copland.html http://basalgangster.macgui.com/RetroMacComputing/The_Long_V... So some improvements, enough to make it a compelling upgrade... And also to kill off the MacOS licensing programme, which only covered MacOS 7. (Because originally 7 had been planned to be replaced with Copland, the real MacOS 8.) MacOS 8 was also the original OS of the first iMac. Then came MacOS 8.1, which also got HFS+, a new, more efficient filesystem for larger multi-gigabyte hard disks. It couldn't boot off it, though (IIRC). MacOS 8.1 was the last release for 680x0 hardware and needed a 68040 Mac. Then came the first PowerPC-only version, MacOS 8.5, which brought in booting from HFS+. Then MacOS 8.6, a bugfix release, mainly. Then MacOS 9, with better-integrated WWW access and some other quite nice features... but all really stalling for time while they worked on what would become Mac OS X. The _paid_ releases were 8.0, 8.5 and 9. 8.1, 8.6, 9.1 and 9.2 were all free updates. In a way they were just trickling out new features, while working on adapting NeXTstep: 1. Rhapsody (Developer Release 1997, DR2 1998) 2. Mac OS X Server (1.0 1999, 1.2 2000) 3. Mac OS X Public Beta (2000) But all of these releases supported Carbon and could run Carbon apps, and PowerPC-native Carbon apps would run natively under OS X without the need for the Classic environment. Finally in 2001, Mac OS X 10.0 "Cheetah".