iPhone/iPad のアプリを作るために Objective-C の勉強をしているのだけど、これまで C++、Java、ActionScript を使ってきた自分にとっては、十分に変態言語でした...
文法的な気持ち悪さというのは、もういろいろなところで触れられているけど、「慣れ」を別にしても、最新のトレンドに沿っていないという点で、他の言語とは異質な存在であるとは思う。
自分の考える最新の言語トレンドというのは次のようなもの。
Adobe Flex(MXML + ActionScript)や Microsoft の WPF、Silverlight(XAML + C#/VB)は、この2つの特徴を持っているし、それ以外のスクリプト言語も1つ目の特徴は持っている。
Objective-C と Cocoa の組み合わせはこのどちらの特徴も持っていない点で、最新のトレンドからは大きく外れている。
ところで、最新の言語トレンドがこうなった理由を考えてみると...
- ガベージコレクタにメモリ管理を任せることで安全にプログラミングできるようになった
- 仮想マシン上で動かすことで環境に依存しないプログラミングできるようになった
- 宣言的にUIを定義することで画面を簡単に設計できるようになった
といったメリットがあったからで、どちらかというと、リソースに余裕がある環境で大量生産のできる大富豪プログラミング的な開発環境が整ってきたのだと思う。
Objective-C が iPhone で成功したのであれば、その理由は「スマートフォンやタブレットのようにメモリもCPUも限られた環境で、開発生産性と性能を両立させるのに向いている開発環境」だったから。
スマートフォンのような環境ではオーバーヘッドのある仮想マシンは不利だし、CPUやメモリ実装量がわかっているのであれば開発者がメモリ管理を意識したコーディングをすることにも意味がある。だから、C と同じレベルでプログラミングができて、オブジェクト指向も使える Objective-C のメリットが活きてくる。
一時期勢いのあった WebObjects は、Java の開発環境が整っていく中で JavaEE に対してのアドバンテージを失って淘汰されてしまったわけで、Objective-C + Cocoa がスマートフォンの開発環境として生き残ったのは Apple にとってはラッキーだったのかもね。

- 作者: 荻原剛志
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2010/12/17
- メディア: 大型本
- 購入: 13人 クリック: 118回
- この商品を含むブログ (25件) を見る