Objective-Cの好きなところ

私は評論家ではなく開発者なので、Objective-Cの良い所(というか好きな所)も書いておこうと思う。

オブジェクト指向であること

Objective-Cなのだから当たり前なのだが、継承、委譲、カプセル化ポリモーフィズム等、他のオブジェクト指向言語と同様にオブジェクト指向の恩恵を享受できるのは有り難い。
C言語でもオブジェクト指向はある程度実装できるが、やはり言語でそれを規定されているのとは全然違う。
特に、id型という全てのオブジェクト型を格納できる型(JavaC#のObject型に相当する)の存在や、ヌルパターン(nilにメッセージを送っても例外やエラーにならない)はシンプルで動的なプログラミングを可能にしている。

C言語であること

昨日とは逆説になるが、C言語がベースになっているということはもちろん悪いことばかりではない。
今も使われている普遍的なソフトウェアのかなりの部分はCで書かれているかCからポーティングされており、膨大なソースコードObjective-Cのプラットホームに取込むことが出来るのは非常に有り難い。
あるソフトウェアをObjective-Cにポーティングする場合でもそのままダイレクトにポーティングするよりも、Cで書かれた部分のそのまま使い、フロントエンドだけでObjective-Cで書く方法の方が書くコードが少なくて済む。

また、Objective-C特有のセレクタやブロックなどはC言語の関数ポインタの機能を利用しており、C言語の良い所を活用している。

拡張性、柔軟性が高いこと

他の言語では忌避すべきことだったり、エラーを発生させることがプログラマの責任において可能になっており、拡張性や柔軟性が非常に高い。(まるでRubyでコードを書いているような気持ちになることがある)
特に、他のオブジェクト型の実装を継承無しに拡張することができるカテゴリ(無名や、オブジェクトのメソッドの実体を置換える(Method Swizzling)等は危険だが非常に強力な機能である。

まだまだたくさんの良い所があるのだが、取りあえずこの辺で。

現在において100点満点の言語というのは存在せず、どんなプログラミング言語でもそれぞれ長所と短所が存在する訳で、その中で長所を生かし短所を補いながら使うことが非常に重要だ。