Q. CocoaにはJavaとObjective Cが使えますが、どちらが良いですか?

FOO: few01%at%mac.com (%at%を@に置き換え)
2002/1/29

A. 目的によって適不適があります

目的によって適した言語は違うと思われます。 Cocoa-Javaが消えることも、Cocoa-Objective Cが消えることも、現状では考えられません。

開発時に得られる情報量の多さ、というのは選択時の大きな要因になると思いますので、まずその点から述べます。

Cocoaベースですと、ProjectBuilderとInterfaceBuilderを使っての開発になると思われますが、その場合、現状での標準はObjective-Cです。Objective-Cで書かれたMac OS Xアプリケーションや、サンプルソース、 関連情報が相当数あります。NextStepのころから熱心に開発している人たちがそれなりの数いるようです。

Cocoa-Javaが使えるようになったのは最近ですので、まだ情報が少ない状況です。ただしJavaそのものに関する情報は、Objective-C関連情報からすると段違いに多い(感覚的には数千倍)ので、情報がなくて困ることはありません。

次にどちらの言語が習得が楽か、というと、これは難しいです。本格的に開発をしようとすると、どちらにしろオブジェクト指向プログラミングを理解する必要があります。私の経験からすると理論はさらりと流して、実践(コーディング)で体験とともに理解するのが良いと思います。個人的には懐かしいオブジェクト指向プログラミングの香り(SmallTalk風)のするObjective-Cも、賢いプログラマが過去の遺産から良い所どりをして作ったJavaのCoolな感じも好きです。さらに言うと、どちらにしろ言語仕様そのものはすぐに習得できます。問題は膨大なクラスライブラリに慣れることです。

最後に実行速度について。一般的にObjective-Cでコーディングした方が速いはずです。ただ重いプロセスを比べてコーディングしたことがないので実測値はわかりません。逆にダイアログが数個出るようなプログラムやお絵書きプログラムなどであれば、Javaが遅いという印象を持ったことはありません。最近のCPUは高速になってきたので(iMacでG4-800MHz!!)、普通にプログラミングしていてJavaプログラムが遅いとは感じないと思います。ただ私のように膨大なデータを高速に扱うアプリを作ろうと思うと、Javaを選ぶことはできません。

「Java de Cocoa」はCocoa-Javaでの開発を解説した希有なサイトです。Chapter 1を読むと、雰囲気がわかると思います。

(c) few01@mac.com --[2002/1/29]--