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の代替フリーソフトウェア