【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
Cocoaの素、Objective-Cを知ろう

Objective-Cは特殊な言語?

竹下 肯己
株式会社 qnote

2008/9/9

Smalltalkの影響

- PR -

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

2/2
 

Index
Objective-Cは特殊な言語?
  Page1
コードの「見た目」から入る
C言語を「拡張」するということ
Page2
Smalltalkの影響
Objective-Cはマニアックか
Objective-Cとアプリケーション開発
Cocoaの素、Objective-Cを知ろう

 Mac OS X関連記事
プログラマーを引き付けるMac OS Xの魅力
続々移行するそのワケとは
 Mac一筋という熱狂的なユーザーだけでなく、「面白いことをしたい」と考えるエンジニアもMac OS Xを利用し始めている。いったいなぜだろう
Mac OS XでAMP構築
3通りの方法で整備できる開発環境
 Mac OS Xの上にWebアプリケーションの定番、AMP(Apache+MySQL+PHP)環境を3通りの方法で導入してみましょう
Mac OS Xで動かす軽量プログラミング言語
導入からPHP拡張モジュール組み込みまで
 Leopardでは、インストール直後からいくつかの軽量プログラミング言語が利用できます。早速試してみませんか?
Objective-Cは特殊な言語?
Cocoaの素、Objective-Cを知ろう(1)
 iPhone用アプリケーション開発で注目を集める言語「Objective-C」。C++とは異なるC言語の拡張を目指したこの言語の基本を理解しよう
Mac内にPHP4、5、6を同居させるコツ
Mac OS X+PHPでオールインワン環境(インストール編)
 PHP4の開発は終了したが、移行の問題は残されている。異なるバージョンのPHPをスムーズに切り替えるには?
  Coding Edgeフォーラムフィード  2.01.00.91

Coding Edge フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています