iv プログラミング言語 開発環境


プログラミングを始めるにあたって、ちょっと考え込んでしまうのは、どのプログラミング言語を使えばいいかとか、どういった開発環境を使えばいいかという点です。第一の判断基準はまず何をしたいかです。PhotoShopのようなアプリケーションを作りたい、ゲームを作りたい、あるいはCGIやWebアプリケーションを作りたい。プログラミングを始めようとする以前にそんないろいろな目的があるかと思います。何をしたいかによって使用するプログラミング言語、開発環境は異なります。また1つのプログラミング言語、開発環境であらゆる目的を達成できるわけでもありません。
ここではMacOSX用のアプリケーション開発を目的として考えます。ゲームも一種のアプリケーションですが、少し趣が違ってくるのでここでは考慮をさけます。


MacOSXのいくつかの実行環境

MacOSX用のアプリケーションと作ったとしても最終的にはそれをいかに実行させるかが問題です。実行環境(Runtime)です。MacOSX用のアプリケーションの実行環境はいくつかに分類できます。また特定の実行環境用のアプリケーションを開発する際に使われるライブラリーのことをAPIと言ったりします。下記のCarbon、Cocoaは実行環境、APIのどちらもさすことが多いようです。

Darwin
UNIXベースの実行環境。GUIは実装されずCUIのみ利用可。ApacheのようなサーバーソフトはたいていDarwin上で動いている。MacOSXにおけるマルチタスク、メモリ保護はDarwinによって実現されている。

Carbon
従来のMacOS用API(ToolBox)と互換性が高いため、Carbonアプリケーションは一応MacOS9でも実行可能。従来のMacOS用アプリケーションを移植する際には便利。

Cocoa
かつてのNeXTのアプリケーション実行環境。NeXTの踏襲のせいか完成度が高い。通常Objective-Cという殆どCocoaでしか使われないプログラミング言語を使用するため、従来のMacプログラマーには敬遠されがちである。そのためJavaを使った開発もできるようにされている。

Java2
Javaアプリケーション、アプレットの実行環境。Javaの最大の利点は1度コンパイルしたプログラムはJavaをサポートするプラットホーム(Windows、Linuxなど)でも実行できること。ただし話題のiアプリはOSXでそのまんま実行できるわけではない。Javaを使ってCocoaアプリケーションも開発できるが、WindowsではCocoaアプリケーションは当然実行できない。Java2とはSunのJDK1.2以降に準拠していることを指す。
これらのアプリケーション実行環境はMacOS、NeXTの従来OSから踏襲され、それらが互いに層をなす形で動作します。一概にアプリケーションと言っても、様々な実行形態があり、そうしたことがMacOSXの複雑さでもあり利点でもあります。

 



プログラミング言語いろいろ

MacOSXでもアプリケーション制作に使用するプログラミング言語には多くの選択肢があります。MacOSXで利用できるプログラミング言語を整理してみましょう。特にGUIまで構築可能なプログラミング言語を挙げてみました。

C
最もポピュラーなコンパイル言語。もともとUNIXで標準的に使われていたので、ApacheなどUNIX向けのソフトウェアはほとんどCで書かれている。早くから仕様が標準化されていたので多くのプラットホームで使用されてきた。Carbon APIはCで利用する。

C++
Cを拡張しオブジェクト指向プログラミングを容易にした。Cと互換性がある。パソコン向けのアプリケーション開発に広く使われている。MacにおいてもCodeWarriorを使ってC++を使ったプログラミングが主流となっていた。CodeWarriorにはPowerPlantというC++のライブラリーがあり、Carbonにも対応している。

Objective-C

C++と同じく、Cを拡張しオブジェクト指向プログラミングを容易にした言語。Cと互換性がある。動的なオブジェクト指向プログラミングが有利で、C++よりエレガントな面もある。もっぱらNeXTのアプリケーション開発で使用されたこともありプログラミング言語としてはマイナー。Cocoaの標準開発言語。

(※C++、Objective-Cで、C言語との互換性と言うのは、C++、Objective-CプログラムでC言語が記述できること。)

Java
言語的にはC++をベースにしたオブジェクト指向言語。Cのようなコンパイル言語であるが、原則として、一度コンパイルすればJavaをサポートするプラットホームであればどこでも実行できる(Write Once, Run Anywhere)。メモリ管理、セキュリティ面で優れている。ただし、C、C++、Objective-Cで書かれたプログラムに比べ実行速度が遅く、メモリを多く必要とする。C++、Objective-CのようにCとの互換性は原則的にない。Cocoaの開発言語としても使用できる。

Basic
Cのようなコンパイル言語ではなく、インタープリタ言語。基本的にインタープリタ言語はコンパイルしないので実行時にプログラムそのものを1行1行解釈しながら実行するため、コンパイル言語に比べ実行速度が遅くなる。コンパイル無しに実行できることや構文が分かりやすく修得が容易。VisualBasicでお馴染みマイクロソフトのお家芸であるが、MacOSXでもRealBasicがCarbonに対応しているので使用可能。実行環境とプログラミング言語
ある実行環境のアプリケーションを作成するにあたって、特定のプログラミング言語を使用しなければならないということはない。しかし、実行環境ごとに適したプログラミング言語はあるものです。下記に実行環境ごとに使用できるプログラミング言語をまとめてみました。

  C C++ Objective-C Java Basic
Darwin ×
Carbon × ×
Cocoa ×
Java2 × × × ×
◎最適 ○使用可 △制限的に使用可 ×使用不可または適さない
図1 実行環境とプログラミング言語

開発環境

プログラミングを始めようとする時、まずはなんらかの開発環境を入手しなければなりません。Javaに関してはMacOSXはJava2をサポートしていて(JDK1.3同等)、コンパイルも実行もできます。ただ、プログラミングをしているとプログラミングに適したテキストエディタやコンパイラ、デバッガ、リソースエディタが必要になります。プログラミングに必要な物をひとまとめにした製品が統合開発環境(IDE)です。CodeWarriorのような製品がそれにあたります。CodeWarriorのほかにMacOS用の統合開発環境としては、MacOSXのパッケージに付属するDeveloperToolsがあります。RealBasicもBasicの統合開発環境と言えるかもしれません。
統合開発環境もそれぞれに適したプログラミング言語、実行環境があります。



C
C++
Objective-C
Java
Basic
CodeWarrior
×
DeveloperTools
×
RealBasic
×
×
×
×
図2 開発環境とプログラミング言語


  Darwin Carbon Cocoa Java2
CodeWarrior
× ×
DeveloperTools
RealBasic
× × ×
図3 開発環境と実行環境



MacOSXが正式リリースされた時点で実用に耐える物は、CodeWarriorとDeveloperToolsの2つだと思います。GUIの開発を考えると、CodeWarriorはCarbon、DeveloperToolsはCocoaの開発に利があります。DeveloperToolsはまたCUI(Darwin)のアプリケーション開発には必須です。
CodeWarriorはまだMacOSX製品版には完全に対応していませんが時期バージョンで完全対応するでしょう。また、Javaの商用開発環境でシェアの高いJBuilderもMacOSXへの対応がアナウンスされています。

MacOSXは完全なマルチタスク、メモリ保護、またUNIXベースのOSであることから、プログラミングにはとても快適な環境です。現在利用可能な開発環境意外にもさまざまな開発環境が利用できるようになるでしょう。

22/4/2001

目次に戻る