連載
» 2008年09月09日 00時00分 公開

Cocoaの素、Objective-Cを知ろう(1):Objective-Cは特殊な言語? (2/2)

[竹下肯己,株式会社 qnote]
前のページへ 1|2       

Smalltalkの影響

 Objective-Cを特徴付けているもう1つの要素は、Smalltalkという言語の影響です。

 Smalltalkはオブジェクト指向の元祖ともいえる言語で、Objective-Cの開発においてオブジェクト指向の見本として参考にされました。先に紹介した「オブジェクトにメッセージを送る」という考え方もSmalltalkから取り入れられたものです。

 オブジェクトに対しメッセージを送信するという考え方、表記の仕方は、C++やJavaに慣れ親しんだ開発者にとって違和感を抱かせる部分かもしれません。C++やJavaがオブジェクト指向言語としてより広く使われたため、そちらの記述の方が標準的と感じられるからです。

 ですが、実はこのメッセージ式の記述が、クラスのメソッド名の命名ルールと併せて、コードを極めて明解に、文章的にしてくれるのです。上記のコード例程度ではあまり実感できませんが、今後、クラスやメソッドに触れる回を読んでいただくにつれ、徐々に理解していただけると思います。

Objective-Cはマニアックか

 さて、Objective-Cの第一印象はいかがでしたでしょうか。なんだか難しそう、ちょっとだけ変わっている、なんか面白そう、特に何とも……など、まあ人それぞれですね。

 私にとってのObjective-Cの第一印象は「なんかマニアックな感じ」というものでした。「なんでわざわざ、こんな書き方をするんだろう」などと思うこともしばしばでした。でも最近では、あまりそういうことはありません。

 ある言語で実際にプログラミングをしていくと、「なぜこのような仕様になっているのか」が理解できる瞬間があります。「これを考えた人は頭がいいなあ」などと感心してしまった経験は誰にでもあるのではないでしょうか。

 そのような経験を繰り返すうちに、その言語に親しみがわいてきます。大げさにいうと、言語の開発者の哲学が少しずつ理解できてくるのですね。

 この連載では簡単なコードのサンプルを提示しながら説明を進めていきますが、できれば、それらのサンプルを自分なりにアレンジして実際に動かしてみることをお勧めします。そうすることで、Objective-Cの特徴的な部分について「なぜこのような仕様になっているのか」を実感することができるからです。

Objective-Cとアプリケーション開発

 Objective-Cを学ぶことの最終目標は、やはり本格的なアプリケーションを作ることですね。特にこの言語に注目している人は、間違いなくMac OS XやiPhone/iPod touch用アプリケーションの開発に興味を持っているはずです。

 リッチなGUIを駆使した本格的なアプリケーションを作成する場合、通常はOSの開発元が提供するフレームワークを利用します。ここでいうフレームワークとは、GUIのパーツを簡単に作成したりOSの機能を利用したりするためのライブラリ群と、それらにアプリケーションからアクセスするためのAPI群、アプリケーションの実行環境などが統合されたものです。

 Mac OS Xのアプリケーション環境としては、Cocoaと呼ばれるフレームワークが主力となっています。旧バージョンのMac OSとの互換性をもたせるためにCocoa以外のフレームワークも存在するのですが、本命はあくまでもCocoaです。そして、このCocoaのAPIを利用するためにはObjective-Cの修得が必須となるのです。

 Cocoaは、実際には複数のフレームワークを含んでいます。その中心となるのは、Objective-Cの基本中の基本であるFoundationフレームワークと、GUIを表現するAppkitフレームワークです。

 iPhoneやiPod touchの場合、Foundationは同じですが、GUIに対応する部分がUIKitフレームワークとなり、Cocoaの名称もCocoa Touchとなります。

 この連載では、プログラミング言語としてのObjective-Cに着目して解説をしていくので、GUIを駆使したアプリケーションの作成方法については触れません。上記のフレームワークとしては、Foundationの部分が話題の中心となります。

 いざCocoaのGUIアプリケーション作成に取り掛かったとき、使用する言語を深く理解していれば、無理なく、堅牢でカスタマイズ性の高いアプリケーションを作成できるでしょう。そして、余裕を持って、よりユーザーに近いフロント部分の開発に意識を集中できます。魅力的なアプリケーションを作るためにも、プログラミング言語をよく理解しておきたいものですね。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。