「GNUstep」の版間の差分
m編集の要約なし |
m Bot作業依頼: Apple関連記事の改名に伴うリンク修正依頼 (Apple|Apple Computer) - log |
||
17行目: | 17行目: | ||
'''GNUstep'''(グニューステップ)は、[[NeXT]]の[[OPENSTEP]] [[Objective-C]] ライブラリ(フレームワーク)、[[ウィジェット・ツールキット]]、アプリケーション開発ツール群を[[フリーソフトウェア]]として実装したものである。[[Unix系]][[オペレーティングシステム]]だけでなく[[Microsoft Windows]]でも動作する。[[GNUプロジェクト]]の一部でもある。 |
'''GNUstep'''(グニューステップ)は、[[NeXT]]の[[OPENSTEP]] [[Objective-C]] ライブラリ(フレームワーク)、[[ウィジェット・ツールキット]]、アプリケーション開発ツール群を[[フリーソフトウェア]]として実装したものである。[[Unix系]][[オペレーティングシステム]]だけでなく[[Microsoft Windows]]でも動作する。[[GNUプロジェクト]]の一部でもある。 |
||
GNUstepは、[[NEXTSTEP|NeXT]]のOPENSTEP仕様に完全互換なプラットフォームにまたがったオブジェクト指向開発環境を備えている(NeXT社は[[ |
GNUstepは、[[NEXTSTEP|NeXT]]のOPENSTEP仕様に完全互換なプラットフォームにまたがったオブジェクト指向開発環境を備えている(NeXT社は[[Apple|Apple Computer]]に買収された)。アップルと同様GNUstepは[[Java]]インターフェイスを持ち、同時に[[Ruby]]<ref>http://www.gnustep.org/experience/RIGS.html</ref>や[[Scheme]]とも接続できる。 |
||
GNUstepの[[アプリケーションソフトウェア|アプリケーション]][[インタフェース (情報技術)|インタフェース]]は[[macOS]]の[[Cocoa]]のインタフェースと根幹は同じ(NeXTとOPENSTEP)である。GNUstepの発祥はCocoaより先であった。 |
GNUstepの[[アプリケーションソフトウェア|アプリケーション]][[インタフェース (情報技術)|インタフェース]]は[[macOS]]の[[Cocoa]]のインタフェースと根幹は同じ(NeXTとOPENSTEP)である。GNUstepの発祥はCocoaより先であった。 |
||
2021年5月20日 (木) 10:27時点における版
GNUstepのデスクトップ | |
開発元 | GNUstep Developers |
---|---|
最新版 |
make 2.7.0, base 1.26.1, gui & back 0.27
/ 2019年1月7日 |
リポジトリ | |
対応OS | クロスプラットフォーム |
種別 | フリーソフトウェア |
ライセンス | GPL / LGPL |
公式サイト | gnustep.org |
GNUstep(グニューステップ)は、NeXTのOPENSTEP Objective-C ライブラリ(フレームワーク)、ウィジェット・ツールキット、アプリケーション開発ツール群をフリーソフトウェアとして実装したものである。Unix系オペレーティングシステムだけでなくMicrosoft Windowsでも動作する。GNUプロジェクトの一部でもある。
GNUstepは、NeXTのOPENSTEP仕様に完全互換なプラットフォームにまたがったオブジェクト指向開発環境を備えている(NeXT社はApple Computerに買収された)。アップルと同様GNUstepはJavaインターフェイスを持ち、同時にRuby[1]やSchemeとも接続できる。 GNUstepのアプリケーションインタフェースはmacOSのCocoaのインタフェースと根幹は同じ(NeXTとOPENSTEP)である。GNUstepの発祥はCocoaより先であった。
GNUstepはOPENSTEPの仕様を満たすことを目指して開発され、macOSが実装しているフレームワークの多くを欠いているが、GNUstepの開発者は互換性を保つため、アップルのCocoaの追加機能に追随しようとしている。ただし、CocoaとGNUstepはABIが全く異なるため、アプリケーションのバイナリレベルの互換性は期待できない。
歴史
GNUstepの開発が始まったのは、スタンフォード線形加速器センターの Paul Kunz らがNEXTSTEPの HippoDraw を他のプラットフォームに移植したいと考えたのがきっかけであった。HippoDrawを一から書き直してアプリケーションとしての設計だけを活用するのではなく、アプリケーションが依存しているNeXTSTEPのオブジェクト層を書き換えようと考えた。そしてできたのが最初のlibobjcXである。これを使って彼らは HippoDraw を全く書き換えることなくUNIXシステムのX Window System上に移植できた。OPENSTEPの仕様が1994年に公開されると、彼らは新たなAPIにも対応するobjcXを作ることを決めた。そのソフトウェアが"GNUstep"として知られるようになるのである。
パラダイム
GNUstepはOPENSTEPと似ており、OPENSTEPの設計規則を継承するとともにObjective-C言語を使っている。
- Model View Controller パラダイム
- Target-Action
- ドラッグ・アンド・ドロップ
- 委譲
- (NSInvocationを通した)メッセージ転送
クラスの機能
ファウンデーションキット
(デバイスに依存しないクラス群とプログラミング機能)
- 文字列
- 集合(配列、セット、辞書)と順序子 (enumerators)
- ファイル管理
- オブジェクト・アーカイブ
- 拡張されたデータ操作
- 分散オブジェクトとプロセス間通信
- URL処理
- 通知 (notifications) および分散通知
- 簡単なマルチスレッド
- タイマー
- ロック
- 例外処理
アプリケーションキット
(GUI系クラスの集まり)
- ユーザインタフェースの要素(テーブルビュー、ブラウザ、マトリックス、スクロールビュー)
- グラフィックス(WYSIWYG、ポストスクリプト風グラフィックス、ベジェ曲線、イメージ処理、グラフィカル・コンテキスト)
- カラー管理(較正色と物理色(CMYK,RGB,HSB)、グレイと名前付きカラー表現、アルファブレンディング)
- テキスト:多様なテキストフォーマット、アタッチメント、レイアウトマネージャ、タイプセッター、ルール、段落スタイル、フォント管理、スペル
- 文書管理
- 印刷機能:印刷操作、印刷パネルとページレイアウト
- ヘルプ管理
- ペーストボード(クリップボードのようなもの)
- スペルチェッカー
- アプリケーションのワークスペース束縛
- ドラッグ・アンド・ドロップ操作
- アプリケーション間の共通サービス