OpenStepは、NeXTが作成したソフトウェア仕様および一連の実装を指し、旧来のNeXTSTEPシステムから派生した、移植性の高いオブジェクト指向アプリケーション環境を提供するためのものである。単一の大きな製品ではなく、OpenStepはランタイムライブラリと開発用APIの集合を定義し、グラフィカルでイベント駆動型のアプリケーションを構築するための高水準なObjective-Cクラスとサービスを公開した。

基本概念と構成要素 — OpenStepの中核には、主に2つの大きなフレームワークがあった。ひとつはFoundation Kitで、基本的なデータ構造、オブジェクトのライフサイクル、永続化のためのサービスを提供する。もうひとつはApplication Kitで、ウィンドウ、コントロール、描画、イベント処理を担う。開発作業は通常、Interface Builderのような視覚的ツールとプロジェクトのビルドシステムを組み合わせて進められ、GUIの迅速な試作と、コードとインターフェースの明確な分離を可能にした。

構成要素と機能

  • Foundation Kit: コレクション、文字列、データ、オブジェクト用ユーティリティ。
  • Application Kit: ウィジェット、ウィンドウ、イベントループ、メニュー。
  • 開発ツール: ライブラリと連携する視覚的なインターフェース設計ツールとビルドツール。
  • Objective-C runtime: APIの中心となるオブジェクト指向言語のサポート。

起源と移植性 — OpenStepはNeXTSTEPから発展したが、同じアプリケーションコードを異なるオペレーティングシステムやCPUアーキテクチャで動かせるよう、プラットフォーム非依存であることを意図していた。NeXTは自社ハードウェアの外にもOpenStepのインターフェースを広げるため、他社のシステムで動作する移植版や実装を用意した。たとえば、一般的なワークステーションやPCのアーキテクチャ向けの配布物が作られ、文書ではしばしば、OpenStep APIと、ホストOSが提供する基盤のカーネルやウィンドウシステムのサービスが区別された。概要はOpenStepの概要を参照。

実装とプラットフォーム — OpenStep仕様の実装は、さまざまなプロセッサとホストOSの組み合わせ向けに提供された。いくつかのリリースは、NeXTのアプリケーション環境をx86ベースのパーソナルコンピュータやワークステーション・プラットフォームへ持ち込むことに重点を置いていた。ある歴史的な説明では、特定のパッケージを、NeXT本来のハードウェア中心のNeXTSTEP系統とは対照的なx86版として位置づけている。x86向けの提供内容についてはx86実装ノートを、NeXTSTEPとの関係についてはNeXTSTEPの系譜を参照。

遺産と重要性 — OpenStepの設計とクラスライブラリは長く影響を残した。AppleがNeXTを買収した後、OpenStepのAPIや開発上の考え方の多くが、現代のmacOSおよびiOSアプリケーションフレームワークであるCocoaの基盤となった。再利用可能なオブジェクト指向フレームワークを重視し、視覚的な設計ツールを開発工程に組み込むという考え方は、現在ではGUIアプリケーション開発で一般的な手法になっている。

特筆すべき違い — OpenStepは単純なオペレーティングシステムのカーネルとは異なり、主としてオペレーティングシステムの上に重ねられたAPIとオブジェクト環境である。その価値は低レベルのカーネル機能ではなく、移植性と開発者の生産性にあった。今日では、後のApple技術を形作ったこと、そして高水準フレームワークが複数プラットフォームをまたいで移動するアーキテクチャを広めたことによって記憶されている。