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インターフェイスを持ち、同時にRubyhttps://www.gnustep.org/experience/RIGS.htmlやSchemeとも接続できる。
GNUstepのアプリケーションインタフェースはmacOSのCocoaのインタフェースと根幹は同じ（NeXTとOPENSTEP）である。GNUstepの発祥はCocoaより先であった。

GNUstepはOPENSTEPの仕様を満たすことを目指して開発され、macOSが実装しているフレームワークの多くを欠いているが、GNUstepの開発者は互換性を保つため、AppleのCocoaの追加機能に追随しようとしている。ただし、CocoaとGNUstepはABIが全く異なるため、アプリケーションのバイナリレベルの互換性は期待できない。

 パラダイム 
GNUstepはOPENSTEPと似ており、OPENSTEPの設計規則を継承するとともにObjective-C言語を使っている。
 Model View Controller パラダイム 
 Target-Action 
 ドラッグ・アンド・ドロップ
 委譲 
 （NSInvocationを通した）メッセージ転送

 クラスの機能 
 ファウンデーションキット 
（デバイスに依存しないクラス群とプログラミング機能）
 文字列
 集合（配列、セット、辞書）と順序子 (enumerators)
 ファイル管理
 オブジェクト・アーカイブ
 拡張されたデータ操作
 分散オブジェクトとプロセス間通信
 URL処理
 通知 (notifications) および分散通知
 簡単なマルチスレッド
 タイマー
 ロック
 例外処理

 アプリケーションキット 
（GUI系クラスの集まり）
 ユーザインタフェースの要素(テーブルビュー、ブラウザ、マトリックス、スクロールビュー)
 グラフィックス（WYSIWYG、ポストスクリプト風グラフィックス、ベジェ曲線、イメージ処理、グラフィカル・コンテキスト）
 カラー管理(較正色と物理色(CMYK,RGB,HSB)、グレイと名前付きカラー表現、アルファブレンディング)
 テキスト：多様なテキストフォーマット、アタッチメント、レイアウトマネージャ、タイプセッター、ルール、段落スタイル、フォント管理、スペル
 文書管理
 印刷機能：印刷操作、印刷パネルとページレイアウト
 ヘルプ管理
 ペーストボード（クリップボードのようなもの）
 スペルチェッカー
 アプリケーションのワークスペース束縛
 ドラッグ・アンド・ドロップ操作
 アプリケーション間の共通サービス

 脚注 

 関連項目 

 プロパティリスト(defaults)
 NEXTSTEP
 Darwin
 OPENSTEP
 Window Maker
 Étoilé

 外部リンク 

 The GNUstep Project Homepage(英語)
 GNUstepはOpenStepの代替フリーソフトウェア

Category:GNUプロジェクトのソフトウェア
Category:デスクトップ環境
Category:オープンソースソフトウェア
Category:X Window System
Category:MacOS
Category:ウィジェット
Category:Objective-Cでプログラムされた自由ソフトウェア