Objective-Cの感想

最近、お仕事で Objective-C という言語を使う機会があったので
その感想を書きたいと思います。

Objective-C とは

Objective-C は、"初心者が苦労はすれども、挫折はさせず"をコンセプトにして設計された動的型言語です。
ベースとなるC言語Smalltalk というオブジェクト指向言語を載せた最新鋭の言語です。
Objective-C が登場するまでは、パソコンを触ったこともないような人はプログラミングする機会なんてありませんでした。
Apple はパソコンを触ったこともない初心者にプログラミング体験を提供することでマーケティング戦略に成功しました。
また、Objective-C は動的型による特徴と、C言語の伝統的な signal を用いることによって極力、ユーザーにエラー内容を表示させることを抑えているのでエラー恐怖症になってしまっている人でも不可なくプログラミングを楽しむことができます。
もうプログラマになるためには勉強が必要だ、なんて言わせません。

動的型の世界

巷では、静的関数型界隈で型推論などという言葉がささやかれていますが、Objective-C ではよりエレガントなソリューションを提供しています。
それが id 型です。
この型は、どんな型にも適合します。型推論より優れているところは、コンパイル時のオーバーヘッドが少ないというところです。
もう型推論は必要ありません。

メソッド呼び出し

ベースは C言語ですがメソッド呼び出しは、いわゆる C言語風の f() ではありません。
下記のような構文で記述します。


[self MyMethod]
[self MyMethod : [ [HogeViewControler alloc] init] ]
この構文の素晴らしいところは vim力が鍛えられるということです。
C言語風の呼び出しでは関数呼び出しをネストするときでも、() で囲う範囲が Objective-C より狭いので横着ができてしまいます。
その点、Objective-C は、メソッド呼び出し式の両端を [ と ] で囲う必要があるので、vim力が向上します。

統合開発環境との親和性

「言語だけ洗練されていればそれでいい」
というような甘い考えは、現代のソフトウェア業界には通用しません。
Objective-C は、Xcode というApple 謹製の統合開発環境との親和性を非常に強く意識して作られています。
例えば、画面上のある UILabel をコードから参照する場合は次のように書きます。


IBOutlet UILabel* label;
このように書いて Interface Bulder から接続するだけで UILabel をコード上から参照することができます。
※ IBOutlet の IB は Interface Builderの略です。