OpenStep
OpenStep is an object-oriented application programming interface (API) specification developed by NeXT. It provides a framework for building graphical user interfaces (GUIs) and developing software applications. OpenStep was designed to be platform-independent, allowing developers to write code that could run on multiple operating systems, including NeXTSTEP, Windows NT, and various Unix-based systems. It has influenced the development of other GUI frameworks, such as Cocoa for macOS, and GNUstep.
Developer(s)
OpenStep was principally developed by NeXT and Sun Microsystems, to allow advanced application development on Sun's operating systems, specifically Solaris. NeXT produced a version of OpenStep for its own Mach-based Unix OS, stylized in all capital letters as OPENSTEP.[1] The software libraries that shipped with OPENSTEP are a superset of the original OpenStep specification, including many features from the original NeXTSTEP.
History[edit]
Workstations from Sun Microsystems were originally programmed at a relatively low-level making calls directly to the underlying Unix operating system and the SunView window system toolkit, and to libraries built atop those interfaces. This led to complex programming even for simple projects. An attempt to address this with an object oriented programming model was made in the mid-1980s with Sun's NeWS windowing system, but the combination of a complex application programming interface (API) and generally poor performance led to little real-world use and the system was eventually abandoned.
Sun then began looking for other options. Taligent was considered to be a competitor in the operating system and object markets, and Microsoft's Cairo was at least a consideration, even without any product releases from either. Taligent's theoretical newness was often compared to NeXT's older but mature and commercially established platform. Sun held exploratory meetings with Taligent before deciding upon building out its object application framework OpenStep in partnership with NeXT as a "preemptive move against Taligent and Cairo". Bud Tribble, a founding designer of the Macintosh and of NeXTStep, was now SunSoft's Vice President of Object Products to lead this decision. The 1993 partnership included a $10 million investment from Sun into NeXT. The deal was described as "the first unadulterated piece of good news in the NeXT community in the last four years".[2]
The basic concept was to take a cut-down version of the NeXTSTEP operating system's object layers and adapt them to run on Sun's Solaris operating system, more specifically, Solaris on SPARC-based hardware. Most of the OpenStep effort was to strip away those portions of NeXTSTEP that depended on Mach or NeXT-specific hardware being present. This resulted in a smaller system that consisted primarily of Display PostScript, the Objective-C runtime and compilers, and the majority of the NeXTSTEP Objective-C libraries. Not included was the basic operating system, or the lower-level display system.
Steve Jobs said "We are ahead today, but the race is far from over. ... [In 1996,] Cairo will be very close behind, and Taligent will be very far behind." Sun's CEO Scott McNealy said, "We have no insurance policy. We have made a firm one-company, one-architecture decision, not like Taligent getting a trophy spouse by signing up HP."[2]: 13
The first draft of the API was published by NeXT in mid 1994. Later that year they released an OpenStep compliant version of NeXTSTEP as OPENSTEP, supported on several of their platforms as well as Sun SPARC systems. NeXT submitted the OpenStep specification to the industry's object standards bodies.[2] The official OpenStep API, published in September 1994, was the first to split the API between Foundation and Application Kit and the first to use the "NS" prefix.[3] Early versions of NeXTSTEP use an "NX" prefix and contain only the Application Kit, relying on standard Unix libc types for low-level data structures. OPENSTEP remained NeXT's primary operating system product until the company was purchased by Apple Computer in 1997. OPENSTEP was then combined with technologies from the existing classic Mac OS to produce Mac OS X. iPhone and iPad's iOS is also a descendant of OPENSTEP, but targeted at touch devices.
Sun originally adopted the OpenStep environment with the intent of complementing Sun's CORBA-compliant object system, Solaris NEO (formerly known as Project DOE), by providing an object-oriented user interface toolkit to complement the object-oriented CORBA plumbing.[2] The port involved integrating the OpenStep AppKit with the Display PostScript layer of the Sun X11 server, making the AppKit tolerant of multi-threaded code (as Project DOE was inherently heavily multi-threaded), implementing a Solaris daemon to simulate the behavior of Mach ports, extending the SunPro C++ compiler to support Objective-C using NeXT's ObjC runtime, writing an X11 window manager to implement the NeXTSTEP look and feel as much as possible, and integrating the NeXT development tools, such as Project Builder and Interface Builder, with the SunPro compiler. In order to provide a complete end-user environment, Sun also ported the NeXTSTEP-3.3 versions of several end-user applications, including Mail.app, Preview.app, Edit.app, Workspace Manager, and the Dock.
The OpenStep and CORBA parts of the products were later split, and NEO was released in late 1995 without the OpenStep environment. In March 1996, Sun announced Joe, a product to integrate NEO with Java. Sun shipped a beta release of the OpenStep environment for Solaris on July 22, 1996,[4] and made it freely available for download in August 1996 for non-commercial use, and for sale in September 1996. OpenStep/Solaris was shipped only for the SPARC architecture.
OpenStep differs from NeXTSTEP in various ways:
The OpenStep API specification defines three major components: Foundation Kit, the software framework; Application Kit, the GUI and graphics front-end; and Display PostScript, a 2D graphics system (for drawing windows and other graphics on the screen).