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を知ろう バックナンバー
| 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をスムーズに切り替えるには? |
|
- PHPでGAE上に社員検索アプリを作る (2010/3/18)
GAEの制約により使うことができなかったテンプレートエンジン。PHP4GではSmartyが使えるようになった - 構造体の便利な用途、インターフェイス入門 (2010/3/10)
継承機能を排除したインターフェイス機能でダックタイピングが可能となった。サンプルで確かめてみよう - プライベートモードの履歴状態 (2010/3/1)
仕事に集中できるときと、なかなかできないとき、ありますよね。状態遷移図で考えてみよう - Goのswitch文で解くFizzBuzzと構造体のイントロ (2010/2/25)
Goではif文と同等の制御構造をswitch文で表現できる。試してみよう
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
| 「いつかは壊れるサーバ」そんな故障に 迅速で安価に手軽に対応する方法とは? New! |
| 「特権ユーザー」の事件を防げ! 万能権限を持つユーザーの管理方法とは? New! |
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | TomcatやJBossなどAPサーバ環境に関する 情報を集約! “業務”用APサーバ大百科 New! |
| ◆ | 一気に解説! 最新のクラスタストレージ 「RAIDを超えたストレージ基準」……など New! |
| ◆ | クラウド的ユーザー体験の変化は脅威か? 仮想化技術を使いこなす運用管理術を紹介 New! |

| ◆ | 上司や部下、部署内メンバーとの情報共有 を“ガラッ”と変えるコラボツールとは? New! |
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |

| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |
| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |

| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |
| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |

| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |







