DIARY :: AROUND THE CORNER :: 20101214001
「Cocoa」の醍醐味

DIARY :: AROUND THE CORNER :: 20101214001

「Cocoa」と言った時に、何をイメージされるでしょうか。たいていの方は、カカオを原料とするあの美味しい飲み物のことを思い浮かべることでしょう。しかし、私を含め、Mac 系のプログラマーにとっては、それは、第一義的には、Mac 用のアプリケーションを開発する上で欠かすことのできない「フレームワーク」を意味しています。ちなみに、iPad、iPhone、iPodTouch 用のアプリケーション開発に必須となるフレームワークは、「Cocoa Touch」と呼ばれています。ソフトウエア開発における「フレームワーク」とは、それを単体としてミクロ的に捉えると、「プログラミングを容易にするために用意された、プログラムのルール、ツール、パーツのセット」であると言えますが、それが複数のプログラマーやユーザーに共有されるという側面から、マクロ的に捉えると、一種の「フォーマット」である、と言うことができるでしょう。例えばスポーツにおいては、野球やサッカーやマラソン等の個別的・具体的競技が、各々「フォーマット」に当たります。スポーツ選手は、自ら選択した「フォーマット」の中で、そのルールに基づき、それが可能とする手段や道具を用いてプレーします。「フォーマット」の制約を受けつつ、「フォーマット」が提供する手段(=そこで開発・蓄積されてきた戦略・戦術・技術・道具等)を享受・利用して、「フォーマット」特有の醍醐味をプレーとして表現し、それを求める観客に応えるわけです。サッカーであれば、具体的には、制約とは、「11人でプレーする」「手を使ってはいけない」「オフサイドはダメ」等であり、手段とは、「組織=システム」「個人技=ドリブル、パス、シュート、タックル」「道具=ボール、シューズ」等であり、特有の醍醐味とは、「組織の連動性」「卓越した個人技」「不屈の闘志」等となるでしょう。「Cocoa フレームワーク」においても同様に、プログラマーはその「フォーマット」の中で、そのルールに基づき、その制約を受けつつ、それが提供する手段を享受・利用して、「フォーマット」特有の醍醐味をアプリケーションとして具現化し、それを求めるユーザーのニーズに応えることになります。具体的には、そこでの制約とは、「Objective-C というプログラミング言語を使う」「開発には Mac を使う」等であり、手段とは、「Apple 社のプログラマー達が設計・記述してきた膨大なプログラムに関するルール、ツール、パーツ」等であり、特有の醍醐味とは、「Mac の優れた操作性」「アプリケーション特有の機能やユーザー・エクスペリエンス」等となるでしょう。先日の日記「FIFAクラブワールドカップで「ほんもの」について考える」にも書きましたが、FIFA クラブワールドカップの開幕戦では、ヘカリ・ユナイテッドの選手達は、サッカーという「フォーマット」を通じて素晴らしい醍醐味・経験を表現してくれました。彼らの表現に大いに刺激された私も、心意気としては、Cocoa という「フォーマット」を通じて、それに匹敵し得る醍醐味・経験を表現できればなあ、などと考えています。

※ソフトウエア開発における「フレームワーク」がどのようなものかということについては、コラム「Drupal はウェブ・アプリケーションの夢を見るか」において、その内容面として、「プログラミングを容易にするためのプログラムのパーツ(部品)やツール(道具)のセット」である、と説明していました。しかし、今では、正確を期すために、上記のように、そこに「プログラムのルール」という言葉を追加すべきであると考えています。

※Cocoa フレームワークの制約として「Objective-C というプログラミング言語を使う」という点を挙げましたが、「Cocoa Bridge」という特殊な機能を利用することにより、Objective-Cの代わりに、RubyやPython等の他のプログラミング言語を利用することも可能となっています。その意味で、Apple 社は、Cocoa フレームワークの制約を低減させようと努力しているようです。


TAG 1 ::
DIARY :: AROUND THE CORNER :: Mac OS
TAG 2 ::
DIARY :: AROUND THE CORNER :: Soccer
TAG 3 ::
DIARY :: AROUND THE CORNER :: TransNetCreation
ARCHIVES 201012