スティーブ・ジョブズが一度アップルを追い出されてNeXTを作ったからこそ存在するiPhone OS
2008.04.30
ここのところブログの更新がさっぱりなのは、iPhone向けのアプリの開発で大忙しだから。4月15日にApple Desng Awardの件がアナウンスされてから二週間、ようやくAward向けのアプリも形になって来たので一息つける。締め切りの5月12日まではまだ少し余裕があるが、締め切り寸前にプログラムを変更するのが大嫌いな性分の私はこのくらいの段階で「今日出そうと思えば出せる」ぐらいのクオリティに仕上げておかないと気が済まないのだ。後は徹底的なテストと、見た目の微調整。「ベータ版」としては十分のできだ。
iPhone SDKもbeta4になり、ようやくチューニング用のinstrumentsも安定して動き始めたので、今日はメモリー・リークの徹底的なチェック。非同期通信だらけなのと、Objective-C覚えたての時に書いたコードが混ざっているため、予想通りリークだらけだったが、このツールのおかげて順調にリークを直すことができた。ガベージ・コレクションのないiPhone OSの場合、自分でリファレンスカウントの管理をちゃんとする必要があるが、非同期通信をきちんとサポートするためには、Model-View-Controllerのアーキテクチャ徹底した上で、それぞれのライフサイクルをきちんと考え抜いてノーティフィケーションのメカニズムを作らないと安定しては動いてくれない。このあたりのノウハウに関しては、一度ちゃんとまとめて書いてみたいが、少なくともiPhone SDKのNDAの呪縛が解けてからのことだ。
ちなみに、3月からはじめたObjective-Cにもすっかり慣れたが、これはすばらしい言語である。スクリプト言語なみの自由度を持ちながら、必要なところはstrong-data-typeな部分を活用して「つまらない人的ミス」を減らすことができる。C++やJavaよりは明らかに開発効率が良く、JavaScriptやActionScriptよりも遥かに自由度と完成度が高い点が私としてはたまらなくうれしい。
しかし何と言ってもすごいのが、iPhone OSと開発環境の充実度。Interface Builderまでもがきちんと動くので、「組み込み系の開発環境」としてはブッチギリでNo.1だ。数年前からこの分野でプラットフォームを提供している、Sun Microsystems、Microsoft、Qualcomm、Symbianがここまであっさりと抜かれると誰が予想できただろう。まあ、それもこれも、スティーブ・ジョブズが一度アップルを追い出され、NeXTを作ったからこそiPhone OSが存在するというのは何と言うドラマだろう。
NeXTです!間違いは認めません!
Posted by: * | 2008.05.01 at 00:28
PalmOSはもう名前すら出てこなくなってしまって寂しい限り
がんばれACCESS・・・
Posted by: 通りすがり | 2008.05.01 at 04:47
>NeXTです!間違いは認めません!
ご指摘ありがとうございます。修正しました。
Posted by: Satoshi | 2008.05.01 at 05:18
MacOSX以前のMacOSはとんでもない失敗作でしたから。
Illustratorなどを使ってたデザイナーの間では、いつフリーズするかわからないので、バックアップを頻繁にしながら作業してました。
プリエンプティブになったのもWindowsよりずっと後でしたし。
Posted by: うらの | 2008.05.01 at 08:17
中島さん、いつも楽しく読んでます。
昨日、書籍も読み終えました。
最近の雨後の竹の子状態なアップル関連の書籍の中ではダントツ面白かったです!
現在、日本法人で働き始めて早5年。
今、アップルジャパンに必要なのは中島さんや古川さんみたいな人達です。
Posted by: Hoijya | 2008.05.01 at 10:25
はじめまして。組み込み系(交換機やルータ)の元開発者です。
NeXTStepはいい計算機でしたね。製造中止になってからも、日本の「Software Design」という雑誌でコアなファンのかたが関連記事を何年も連載し続けてました。
WilTelという会社(いまのウィルコムの前身)が米国でATM(Asynchronous Transfer Mode)ネットワークを駆使して構築するデータ通信網に機器を納入してましたが、そこではATMスイッチと共に、1,000台のNeXTを並列稼動させてサービス提供をおこなおうとしていました。その時NeXTアプリの開発の話もあってちょっとだけObjective-Cをかじりましたが、あれは良い言語だと思いました。当時はオブジェクト指向なアプローチというものが未だあまり理解されていなかった時分だったのですけれども、そういうオブジェクティブなアプローチが少なくともC++よりは自然に可能でしたし、強力なCとしても使用可能(この部分はC++と同じ)でした。
あれ(Objective-C)がなぜ流行らなかったのか、いまでも不思議に思います。
Posted by: さるすべり | 2008.05.01 at 18:21
Objective-Cが流行らなかったのは、処理系が出なかったから。ただそれだけ。
Posted by: うらの | 2008.05.03 at 00:08
私はオブジェクト指向言語はSmall Talkから入ったので、Objective-Cはそれに一番近く、とっつき易いです。当時はまだJavaもなく、C++ もSTLが無い状態でした。「オブジェクト同士がメッセージをやり取りして協調して働く」というのがよく理解出来る言語だと思います。
> MacOSX以前のMacOSはとんでもない失敗作でしたから。
> プリエンプティブになったのもWindowsよりずっと後でしたし。
最近「イノベーションのジレンマ」を読みましたが、まさにその状態でしたね。
> あれ(Objective-C)がなぜ流行らなかったのか、いまでも不思議に思います。
プログラマって結構保守的な人が多いと思います。そういう人達には、C++の方がとっつき易かったからではないでしょうか。初期のC++プログラムの中には、クラスを一つだけ作って、その中に普通のCと同じ様に関数を並べただけというのがありました。
Posted by: じびき | 2008.05.07 at 07:51