Objective-C
Objective-Cは、汎用の高水準プログラミング言語です。1984年に作られ、NeXTSTEPオペレーティングシステムの主要言語でした。AppleがNeXTを買収した後は、macOSおよびiOS用アプリを書くための主要言語になりました。Appleは2014年に、その後継としてSwiftプログラミング言語を作りましたが、現在もこれらのプラットフォームで開発者に広く使われています。
Objective-CはCプログラミング言語を拡張したもので、オブジェクト指向プログラミングの機能が追加されています。オブジェクト指向ではない操作、たとえば変数への値の代入や関数の宣言には、Cとほぼ同じ構文を使います。一方、オブジェクト指向の機能では、Smalltalkという別のプログラミング言語から構文を取り入れています。この構文では、オブジェクト同士がメッセージを送信して通信します。他の言語のように、あらかじめ決められたメソッドを直接呼び出すのではなく、メッセージを受け取ったオブジェクトのインスタンスが、実行時にどのメソッドを使うかを動的に決定します。
たとえば、Objective‑Cであるオブジェクトから別のオブジェクトに送るメッセージは、次のようになります。
[myObject sayHello]
このコード例は、myObjectという名前のオブジェクトにメッセージを送り、sayHelloというメソッドを実行するよう指示します。myObjectが属するクラスにsayHelloという名前のメソッドが含まれている場合、そのメソッドを実行します。含まれていない場合、アプリはmyObjectのクラスを含むスーパークラスを確認し、メソッドが見つかるまで階層を上にたどります。C++やJavaなどの他のプログラミング言語では、メソッドをコンパイル時にオブジェクトに関連付けます。どのメソッドを実行するかをすでに把握しているため、プログラムは高速になりますが、柔軟性は低くなります。
Objective‑Cには、C++のような標準ライブラリは含まれていません。その代わり、Objective-Cアプリはすべて、デフォルトの関数とコードを含む複数のソフトウェアフレームワークのいずれかを使用します。たとえば、macOS用に開発されたアプリは、XcodeのSDKに含まれるCocoaフレームワークを使用します。
知識をテストする