GNUstep

GNUstep（グニューステップ）は、NeXTのOPENSTEP Objective-C ライブラリ(フレームワーク)、ウィジェット・ツールキット、アプリケーション開発ツール群をフリーソフトウェアとして実装したものである。Unix系オペレーティングシステムだけでなくMicrosoft Windowsでも動作する。GNUプロジェクトの一部でもある。
歴史.
GNUstepの開発が始まったのは、スタンフォード線形加速器センターの Paul Kunz らがNEXTSTEPの HippoDraw を他のプラットフォームに移植したいと考えたのがきっかけであった。HippoDrawを一から書き直してアプリケーションとしての設計だけを活用するのではなく、アプリケーションが依存しているNeXTSTEPのオブジェクト層を書き換えようと考えた。そしてできたのが最初の"libobjcX"である。これを使って彼らは HippoDraw を全く書き換えることなくUNIXシステムのX Window System上に移植できた。OPENSTEPの仕様が1994年に公開されると、彼らは新たなAPIにも対応する"objcX"を作ることを決めた。そのソフトウェアが"GNUstep"として知られるようになるのである。
概要.
GNUstepは、NeXTのOPENSTEP仕様に完全互換なプラットフォームにまたがったオブジェクト指向開発環境を備えている（NeXT社はApple Computerに買収された）。Appleと同様GNUstepはJavaインターフェイスを持ち、同時にRubyやSchemeとも接続できる。
GNUstepのアプリケーションインタフェースはmacOSのCocoaのインタフェースと根幹は同じ（NeXTとOPENSTEP）である。GNUstepの発祥はCocoaより先であった。
GNUstepはOPENSTEPの仕様を満たすことを目指して開発され、macOSが実装しているフレームワークの多くを欠いているが、GNUstepの開発者は互換性を保つため、AppleのCocoaの追加機能に追随しようとしている。ただし、CocoaとGNUstepはABIが全く異なるため、アプリケーションのバイナリレベルの互換性は期待できない。
パラダイム.
GNUstepはOPENSTEPと似ており、OPENSTEPの設計規則を継承するとともにObjective-C言語を使っている。
クラスの機能.
ファウンデーションキット.
（デバイスに依存しないクラス群とプログラミング機能）
アプリケーションキット.
（GUI系クラスの集まり）