8

ほとんどのやや現代的なプログラミング言語には標準ライブラリがありますか?私の印象では、Obj-Cにはまともなサイズの標準ライブラリはなく、ほとんど/すべてがCocoaに依存しており、(さらにGNUstepを使用したくない人も)Obj-CがMacでのみ使用される理由です。 )?

これは本当ですか/どの程度ですか?標準のobj-cコレクションはありますか?

(私はObj-Cプログラミングを行ったことがなく、近い将来それを試す可能性は低いことに注意してください。興味があります)。PSココア/Gnustep以外のまともなライブラリはありますか?それらはアップルではありませんか、オープンソースであり、十分に文書化されていますか?

4

3 に答える 3

25

Outisの答えに反して、Objective-Cは元々NeXTで開発されたものではありません。NeXTは、80年代半ばから後半にかけて選択した言語としてObjective-Cを採用しました。Objective-Cは、80年代初頭にStepstoneでBradCoxとTomLoveによって作成されました。

この質問に関連して、CoxとLoveがObjective-Cを作成したとき、彼らの主な目標の1つは、完全にコンポーネント化されたソフトウェアモデルをサポートできる言語を構築することでした。つまり、どこかからソフトウェアコンポーネントを購入し、それをアプリケーションにプラグインして機能を追加することができます。

この中から、Objective-Cの標準ライブラリのビットであるICPak 101とIIRC、102(または201、私は正直に覚えていません)が開発されました。それは実際には決して流行しませんでした。

明らかに、NeXTとAppleがObjective-Cの背後にある主要な動機となっているため、今日、Cocoa'sFoundationはObjective-Cの最も人気のある標準ライブラリです。それだけではありません。まだアクティブに使用されているICPakのバージョンがあり、実際には非常に大きい非NeXT/非AppleObjective-Cプロジェクトがあります。同様に、Objective-Cは、主にGNUStepを介して、Linux上の少数のプロジェクトで引き続き使用されています。

一般的に、Objective-Cはシンプルで小さな言語を意図しています。その中から、比較的単純で小さなライブラリが出てきます(たとえば、STLやBoost to Foundationのサイズと比較してください)。

「stesポータブルオブジェクトコンパイラ」を検索すると、ICPakの実装を含むStepstoneが行ったすべてのことをDavid Stesが続けていることがわかります(ここでもIIRC-私は長い間このようなものを調べていません)。

于 2010-05-14T15:26:31.350 に答える
3

Objective-CはCの拡張であるため(そして、それではかなり小さいものです)、C標準ライブラリが利用可能です。それ以外は、メインライブラリはプラットフォームが提供するものであり、基本的には元のNeXTSTEPライブラリとその子孫であるOPENSTEP、Cocoa、GNUstep、廃止されたCoconutを意味します。これは、Objective-Cが元々NeXTで開発され、Appleに引き継がれたためです。。最近は公式の基準すらなく、Appleのドキュメントだけです。

私の意見では、他のライブラリがないことは、Objective-Cが主にMac開発で使用される理由ではなく、後者の影響です。

于 2010-05-14T11:53:00.553 に答える
1

ウィキペディアのエントリのこのセクション( Objective-CとC ++の哲学的な違い)は、この問題をかなりうまくカバーしていると思います。

于 2010-05-14T11:43:29.897 に答える