Hacker News new | ask | show | jobs
by linguae 3001 days ago
Come to think of it, the other problem with providing a NeXTSTEP/OPENSTEP binary compatibility layer is that the UI guidelines for NeXTSTEP/OPENSTEP and Mac OS are different. It's more than just the differences between NeXTSTEP's grayscale theming versus the Platinum theme used by Apple at the time. It's also the little details, down to the order of the command buttons on a dialog box. Apple is famous for its UI guidelines, especially back in the Classic Mac OS era.

The problem with having NeXTSTEP and OPENSTEP applications run unmodified in Rhapsody or Mac OS X is that users would have to deal with applications designed under two sets of UI standards. This is similar to the Windows ecosystem; because Microsoft emphasizes backwards compatibility, some users could be running Windows software conforming to different UI standards based on when those software tools were written. Already Rhapsody had official support for two types of applications: applications for Mac OS running under the Classic (Blue Box) environment, and applications written using the Cocoa (Yellow Box/OpenStep) API. Large software developers such as Microsoft and Adobe balked at the prospect of having to port their large code bases to Cocoa in order to take advantage of Rhapsody's features; this is how we ended up with Carbon.

Perhaps the reason we can't run Lotus Improv and FrameMaker on Macs has less to do with emulation and compatibility layers (which Apple was willing to do for 68k apps on PowerPC Macs, Classic Mac apps on PowerPC versions of Mac OS X, and PowerPC Mac OS X apps on early Intel versions of Mac OS X) and more to do with the UI differences between NeXTSTEP/OPENSTEP apps and Rhapsody/Aqua apps. Plus, NeXTSTEP and OPENSTEP had small user bases that Apple could ignore or sacrifice in favor of meeting the needs of its "native" classic Mac OS users, and I don't know if Apple itself ever billed Rhapsody and Mac OS X as successors to OPENSTEP for OPENSTEP users; if I understand correctly, Rhapsody and Mac OS X were always billed as successors to the classic Mac OS. That might have also led to the decision not to provide support for old NeXTSTEP and OPENSTEP binaries in Rhapsody and Mac OS X.

1 comments

After finding the source to Darwin 0.1 / 0.3 which was Rhapsody / OS X Server 1.0 and getting it to build on x86, I thought it was cool that using remote display, and chroot from a NeXTSTEP root many things would run using the Rhapsody beta UI stuff.

Although the response was about nill... Nobody really cared.

I started work on merging the newer BSD stuff into the 0.3 kernel but the lack of overall interest kind of demotivated me.. and I couldn't see anyone seriously caring.

That and previous does such a great job with the legacy black box stuff, it'd seem full emulation was a better solution.