Previous month:
February 2008
Next month:
April 2008

iPhone SDK、Objective Cが持つ「進化する能力」の遺伝子

 Objective Cの勉強から始めなければならないiPhone SDKは、いきなりコードを書き始めることが出来ない点が少しもどかしい。しかし、C++に関しては最初の商用コンパイラが出たころからの付き合いだが、Objective Cに関してはまったく付き合いがなかった私としては、結婚20年にして初めて浮気をするかのようなドキドキ感とともにObjective Cとの最初のデートに臨んでいる、という感覚。

 すなおな目でObjective Cを見なければならないのにも関わらず、ついついC++と比べてしまう私。個々のシンタックスの違いに目を奪われつつも、言語仕様の背景にある設計思想を読み取ろうとする行動は、外見だけに捕われず彼女の中身を理解しようとする行動と同じ。

 そんな中でちょっと気にかかったのが、categoryという既存のクラスを拡張する仕組み。言語仕様を見ただけでは、いまいち存在意義が伝わって来ないのだが、ここらあたりにC++とObjective Cを本質的に隔てる「何か」がありそうだが...。

 その予感が的中していたことは、Appleが提供しているUIKit(iPhone用のUIフレームワーク)のチュートリアル・ビデオを見ている最中に判明する。そこに"hello"という文字列変数(型はNSString)を表示するサンプルが出て来るのだが、そのコード、

[hello drawAtPoint:location withFont:font] // C++の hello.drawAtPoint(location, font)に相当

を見て「あれ?」と思った。NSStringは、Mac OSと共通のCocoa Foundationという下位レイヤーで定義されたクラスの一つ。それがなんでiPhoneだけに存在するUIKitという上位のレイヤー向けのメソッド"drawAtPoint"をサポートしているのだろう、と。

 その疑問は、NSStringの定義されているヘッダーファイルを見てすぐに解決した。NSStringというクラスそのものはFoundationで定義・実装されているのだが、drawAtPointというメソッドはUIKitがcategoryの仕組みを使って「追加」しているのだ。これは、RailsがRubyが提供しているシステムクラスを拡張し、jQueryがJavascriptが提供しているシステムクラスを拡張しているのと全く同じ発想だ。

 つまり、Objective Cは、上位のフレームワーク(もしくはサブシステム)で下位のフレームワークが提供しているクラスを拡張することを可能にするcategoryにより、不必要なサブクラス(例えばGraphicsAwareStringクラス)の導入や、スパゲッティコードの元凶である「下のレイヤーから上のレイヤーへの依存」なしにクラスを使う人の利便性を上げることを可能にしているのだ。

 地球上にこれだけバラエティのある動植物が反映しているのは、生物が進化の過程で「進化を容易にする」仕組みを獲得したことによる(雌雄に分かれて遺伝子を交換しあう仕組みなど)が、その意味では、このcategoryはObjective Cの進化を容易にするという意味で重要な役目を果たしているような気がする。

 考えてみれば、90年代にOSの大改造に失敗したAppleはWindows95の成功にあやうく倒産の危機にまで合うことになったが、今度はVistaでOSの大改造の失敗したMicrosoft(Microsoftは当初、すべてのシステムAPIを.Net VM配下のマネージドAPIにしようと計画していた)がAppleに大きく遅れを取っているという点は以外と気がついていない人が多い様に思う。iPhone OSはまさにその成果と言える。


iPhone SDK、第一印象

 iPhone 用のネーティブ・アプリケーションの開発が可能になるSDKがリリースされたので、早速ダウンロードしてみた。そもそもMac OS XのAPIも一切知らず、Objective Cでプログラムを一行も書いたことの無い私には目新しいことばかりだが、私がこれだけ気に入って使っているiPhone向けにアプリケーションを作れるというのに試してみないわけには行かない。 

Uikit

 iPhone SDKをインストールして、サンプルアプリをエミュレータ上で走らせるところまでは簡単にできたのは良いが、読まなければいけないドキュメントが大量にあってちょっと困っている。まずは、Objective Cを理解し、それからOS Xのコア(Cocoa Foundation)を理解しなければならない。それからやっと本題のUIKit(iPhone用のUIフレームワーク、上の図参照)に取りかかれる。

 しかし、ツールにしてもドキュメントにしても、文句の付け用がないぐらいの充実ぶりはさすがソフトウェアで勝負をしているApple。ジョブズが作ったNextからAppleが継承したOSと開発環境が数年間の進化を経てついに実を結んだと言える。

 これだけ充実した開発環境を見るとつくづく思うのは、携帯電話を筆頭にした組み込み・家電の世界にもソフトウェア・プラットフォームの重要性がはっきりと見えて来た、ということ。ここまでソフトウェアが複雑になってくると、開発環境の開発とメンテナンスのコストが膨大になり、個々のハードメーカーが独自の開発環境やOSを作ることがコスト的に見合わなくなって来ている。

 実際、携帯電話の世界を見ても、ネーティブレベルの開発環境を本気で作っているのは、

  • Symbian/UIQ (Nokia/Sony Ericsson)
  • Windows Mobile (Microsoft)
  • iPhone (Apple)
  • BREW (Qualcomm)
  • android (Google) ... ただしまだ実績はなし

ぐらい。トップスリーのMotorolaですらソフトウェア開発コストの高さに悲鳴を上げたことを考えれば、Symbian/UIQを抱えるNokia/Sony Ericsson以外の携帯電話端末メーカーすべてがMotorolaと同じような悩みを抱えていることは容易に想像できる。Appleの携帯電話ビジネスへの参入が他のメーカーにとって脅威なのも当然だ。

 ソフトウェアに関してGoogleやMicrosoftに頼り切った戦略を取ればコモディティ化は避けられず中国・台湾メーカーとのコスト競争に巻き込まれ、ソフトウェアによる差別化をはかろうとするとAppleやSymbian/UIQと同レベルのソフトウェア投資を覚悟しなければならない。臨界点は近いような気がする。

 しかし、今週はMBAのクラスでカンヅメ状態だし、来週は日本出張と(オンラインでの)期末テストが重なるという過酷な状態。そんな最悪なタイミングでiPhone SDKをリリースしたアップルが恨めしいが、こうなったら日本行きの飛行機の中で一気にObjective Cをマスターするしかないか、と。


「Javascript使い」に女性ブロガーと話す絶好の機会を与えるスクリプトの話

 知り合いがちょっと面白いウェブサービスを作ったので、ここで紹介。元々はケータイ用のサービスなのだが、その一部を切り出す形でブログの装飾ツールとしてパッケージ化したもの。

 「ブログの装飾ツール」という目新しい名前を使ったのは、私自身も何と呼んで良いのか分からないからだ。ブログの一部に貼付けるブログパーツと違い、スクリプトを埋め込んでおくとブログの文章をパースしてた上でリンクやスタイルで装飾してくれる、というものだ。

 例えば以下の文章。私が書いたのは文章のみだが、このスクリプトがそれぞれの芸能人の名前を自動的に見つけ出してフォントの大きさを(盛り上がりぐあいで)変更し、アイコンを加えた上でリンクにする、ということをしてくれている(注:スクリプトは個別ページでのみ有効)。

 私が篠原涼子を最初に意識したのは、木村拓哉主演の連続ドラマ「ギフト」。毎朝、猫のようにキムタクのベッドに潜り込んで来る篠原がかならずしも典型的な美人ではないながらも妙に色っぽく、印象が強かったことを覚えている。あれ以来、順調に人気を伸ばして第一線の女優になれたのは、やはりあの妙な色っぽさが良かったのだと思う。

 次に良く覚えているのが、ムコ殿。主演の竹内結子の兄弟が、篠原涼子、小雪、鈴木杏樹という超豪華版メンバー。地味で控えめな竹内結子に、体育会系の小雪、妙に色っぽい篠原涼子、理屈っぽい鈴木杏樹が絡む、というなかなか良く出来た設定。

 アイコンの上にマウスを持って行くと、その芸能人の写真を見つけて表示してくれるところなどなかなか良く出来ているが、この手のものを使うと、まるで十代の女の子が書いた文章のようになる。まさにそこが狙いなのだろうが、ちょっと恥ずかしい(スクリプトを工夫して、指定した範囲の文章のみにこれを適用するようにしている)。

 作った人たちが書いた説明はここにかいてあるが、一番の問題はターゲットとする十代〜二十代の女性ブロガーたちに「スクリプトを貼付ける」という分かりにくいことをしてもらえるのか、という点。

 その解決策の一つとしては、これを「テクノロジーのことが分かる男たちがそんな女性ブロガーたちのブログをちょっと面白くしてあげる機会を作る」ツールとして配布するというのもありだとは思うが、それはさすがに遠回りすぎるかな?


スティーブ・ジョブズ、「Flashは重すぎて、Flash liteは使えない」と発言

As my colleague Tom Krazit reported Tuesday afternoon, Jobs used the Apple shareholders' meeting to publicly dismiss the the full-blown PC Flash version as "too slow to be useful" on the iPhone. He then went on to describe the mobile version--Flash Lite--as "not capable of being used with the Web."【Adobe bites its tongue after iPhone Flash jab | Coopより引用】

 この発言で、AppleがiPhoneにFlashを載せない理由が明確になった。「大きすぎて載せられない」のだ。

 このスティーブ・ジョブズの発言は、Adobe Flashの問題点を端的に語っている。最新バージョンのFlash(Flash 9)はパソコン向けのアプリを作るにはすばらしい開発環境だが、メモリを大量に消費するためにモバイル・組み込み端末には適していない。一方でFlash LiteはFlash9とは全く異なる古い環境で、非同期のデータバインディングを駆使したウェブ・アプリケーションを作るのには適していない。

 組み込み端末向けの案件でSIベンダーがパソコン上のFlashで作ったプロトタイプで仕事を取ったは良いが、いざ実装しようとすると実機上のFlashは全然パフォーマンスが出ず、やむなくネーティブ(C++)で作ることになり地獄を見る、なんてことは良くある話。

 うちの会社(UIEvolution Inc.)はAdobeと直接競合することはないが、Flashを担いだ組み込みベンダーとソリューションレベルで比較されることはしばしば。カタログスペックでFlash9と比較されたりすると当然UIEngineの方が非力だが、Flash7ですら重すぎて走らない非力なデバイスでUIEngineが軽々と動くところをデモして見せて「おおっ」と言わせる、という営業戦略は手間はかかるけど結構効果がある。

 本来なら「非力なデバイスでも動いてしまう」点を数値で示せれば良いのだが、それがなかなか難しい。これからは、このジョブズのセリフを営業で使わせてもらおうかな、と。


おもてなしの経営学の表紙が決定

Omotenashi 表紙そのものは結構地味だけど、帯のデザインがなかなかイケテルと思う。後は本屋さんが「平積み(ひらづみ)」にしてくれかどうか。

 しかし、これで本屋に行って自分が書いた本が目立たないところに置かれていたら、「目立つところに動かしたい!」という衝動に駆られるだろうな、絶対。

 何気なく
  手に取ったフリで
   平積みだ


UIEngineを使ったセキュリティシステムのデモ

 UIEvolutionのビジョンは「私たちの身の回りにあるあらゆるデバイスに究極的に軽くて移植性の高いユーザーインターフェイス用ミドルウェアを提供すること」にある。デバイスの話になると、どうしても携帯電話だとかテレビなどの派手なデバイスの話ばかりしてしまう私だが、応用範囲としてはコインロッカーや自動販売機の液晶画面から使い捨て液晶付きのクリスマスカードまで想定して設計してあるところがUIEngineの強み。

 その意味では、4月4日より東京ビックサイトで開催されているIC Card Worldでパートナー企業のITAccess社がソリューションとしてデモしているセキュリティシステム(参照)なんかは格好の例。派手さはないけど、今まで「おもてなし」がないがしろにされて来たこういう端末でこそ本領発揮である。

 UIEJのメンバーが撮影して来たビデオがYoutubeに上がっているのでここに貼付けておく。


「パラダイス鎖国」と「レイオフのないリストラ」と

三菱電機は、現在販売中の機種を最後として、携帯電話の新規開発を終了すると発表した。...(中略)...携帯電話端末部門のスタッフ約600名は、基本的に同社内の他部署に再配置される予定。【三菱電機、携帯端末事業から撤退より引用】

 なぜ三菱電機が携帯電話から撤退しなければならないかを理解するには海部さんの「パラダイス鎖国」を読んでいただくのが一番良いと思うが、こういうアナウンスを見るたびに思うのは日米の会社経営スタイルの違い。

 日本の場合、よほどの事情がなければレイオフ(会社側の事情による解雇)を避けるのが常識。特に、他の部門が黒字を出しているのにも関わらずレイオフなんてしたら「非情な経営者」と避難を浴びる。「他部署に再配置」でお茶を濁すのは常套手段だ。

 米国の場合は逆に、この手の事業撤退と同時にレイオフによるコストカットをするのが常識。もちろん優秀な人は別の部署に配置転換されるが、そういう人たちは例外。不採算部門を切り捨てる一番の理由はコスト削減なんだから、それが出来ない経営者は無能扱いされる。

 米国のように「会社は株主のもの」と割り切って資本主義をとことん突き通すのか、それとも日本のように労働者を保護するのか(その意味では日本は社会主義に近い)は、その国それぞれのポリシーなので、どちらが正しいなどということは無いが、日本的な経営をしていると「余った人たちの受け入れ先が見つからない」という理由で思い切った経営判断ができないことがあり、それが日本企業の国際競争力を奪うこともあるので気をつけなければならない。

 何年か前からソフトウェアを共有しているNECとPanasonicの携帯電話端末部門はそろそろ合併しても良い頃だと思うが、「合併の目的=コスト削減」である限りは人員削減が必須。しかし、上記の理由でレイオフはできないので、社内の他の部門に受け入れ先を見つけなければならない。つまり余剰人員の受け入れ先が見つけられない限り合併もできない、というジレンマに陥るわけである。

 こういう経営の仕方も日本の中だけでビジネスをしていれば良いのであればかまわないが、SamsungやNokiaやAppleが、今がチャンスと日本に押し寄せて来ている今、「日本的な経営」をいつまで続けることができるかはいささか疑問。

 そう考えると、携帯端末事業をさっさと切り離してエリクソン携帯端末事業部門とくっつけたソニーの経営判断はとても正しかったと言える。モトローラの携帯端末事業が合併先を探しているらしいが、日本のメーカーには少し荷が重そうだ。結局はLGあたりとくっついて、Nokia・ソニエリ・Samsungとの4強時代を迎えるのかな、と。


Ajaxian が UIEvolution について書いてくれたのはいいんだけど

I have seen the huge batches of cell phones that companies keep around to test their applications on. Companies like UI Evolution have come along to try to help out the madness of getting something that works across more than a couple of them.【Ajaxian » Google Gears for Mobile Releasedより引用】

 "UI" と "Evolution" の間にスペースが入っちゃてるのがちょっと不満だけど、宣伝になるので良しとしよう。

 Windowsが独占状態のパソコンと違い、モバイルデバイスのマーケットはプラットフォームが乱立しており、アプリケーションの開発・メンテナンスコストがバカにならない。

 しかしそういう問題点があるからこそビジネスチャンスが生まれるわけで、そこにミドルウェアを提供しているのが、UIEvolution。

 androidというOSを提供しながら、Google Gearsを出して来るGoogleは少し矛盾をはらんでいるが、あの手の大きな企業が必ずしも一枚岩ではないのは、Googleに限った話ではない。私がGoogleのモバイル部門のトップだったら、androidには手を出さずに、Webkit+Google Gears+バリバリにチューニングしたJavascript VMで徹底攻勢にでるけどな、と。

 ちなみに、「モバイルプラットフォームの数を知っているだけ言ってください」と言われたら、あなたは幾つ言えるだろうか。

 モバイル業界に少しでも関わっている人なら、OSとして

 BREW, Symbian, (embedded) Linux, μ-iTron, Windows Mobile

ぐらいまでならスラスラと言えなければいけない。それに、VMを加えると

 J2ME/DoJa, J2ME/MIDP, p-Java, J2SE

となる(まあp-Javaはほぼ終わったに等しいが)。これに、OS/VMのハイブリットとして、

 Android, Danger OS

があるが、Danger OSまで知っている人はかなりマニアック。そして、忘れてはいけないのは、まもなくSDKが公開されるはずの、

 OS-X(iPhone)

しかし、ケータイ以外にもモバイル端末はあるので、それも含めると、

 VxWorks, PTOS, ubiquitous OS, Pocket PC/WinCE)

なども忘れてはならない。あと、絶対数だけならすごいのがゲーム端末。

 Nintendo DS, PSP

きりがないのでこの辺で切り上げるが、これだけ沢山のプラットフォームがあると、 それぞれのアプリを移植していてはコスト的に全く見合わない。そこでUIEngineのようなミドルウェアの出番となるわけだが、たとえミドルウェアとは言え、これだけの数のプラットフォーム向けのUIEngineを維持・管理するのは並大抵の努力ではできない。

 にも関わらず、「android版のUIEngineまだできないの〜」「早くiPhone上で動くUIEngine見たいな〜」と勝手なことばかり言っている私である。


Intel Atomの登場で顕著になるMicrosoftのジレンマ

Intel_atom

All of this on a chip that measures less than 25 mm², making it Intel's smallest and lowest power processor yet.1 Up to 11 Intel Atom processor die -- the tiny slivers of silicon packed with 47 million transistors each -- would fit in an area the size of an American penny. 【Intel Announces intel® Atom™ Brand for New Family of Low-Power Processors

 インテルがAtomというモバイル端末向けのチップをアナウンスした。今まで「1つのチップに出来るだけ沢山のトランジスタを詰め込む」ことでビジネスを伸ばして来たインテルとしては、戦略の大転換である。これを、AMDなどの競合企業ではなく、インテルが先にしたところは高く評価できる。

 これで、100ドルパソコンの実現に大きく近づいたし、Smart PhoneとモバイルPCの垣根が取り払われる。次世代のiPhoneにこのチップが採用される可能性すら出て来た。

 それにしても納得出来ないのは、ウィルコムの端末。

具体的なスペックとしては、インテルが次世代モバイル機器向けに開発を進めている最新CPU「Intel Atomプロセッサ」を搭載。これはSilverthorneという開発名で呼ばれていたもので、45nmプロセスのチップ製造技術を採用し、高い処理性 能と低消費電力の両立をめざしたものだ。さらにマイクロソフトの「Windows Vista」をOSとして採用。【 あのIntel新プラットフォーム搭載ウィルコム端末、機能の片鱗が明らかに:モバイルチャンネル - CNET Japanより引用】

 いくらAtomが高性能だからと言って、Windows Vistaはいくら何でもオーバースペック。これじゃあ、せっかくトヨタのプリウスを買ったのに、ハイオクを積んで高速を140キロですっ飛ばすみたいなものだ。

 Windows CEは持っているものの、せっかくならライセンス料の高いVistaを売りたいというマイクロソフトの気持ちも分からないでもないが、こんな中途半端なことをしては、アップルやLinux陣営に付け入る隙を与えてしまう。

 マイクロソフトの一番の弱点は、稼ぎ頭であるWindowsやOfficeビジネスに影響を与えそうな分野に思い切った投資が出来ないこと(典型的なイノベーションのジレンマ)。戦略的に見ればここはWindows CEに思いっきり力を入れて、Intel Atom向けのOSのデファクトを取りに行くべき。Vistaでは100ドルパソコンのデファクトOSの地位は取れない(不必要に複雑で、重すぎて、値段が高い)。インテルがここまで大きく舵を切ったのだから、ここはマイクロソフトも乗るべきだと思うんだが...


Office 2008 for Mac を買うなら「ファミリー&アカデミック」がお得

 メインマシンをMac BookにしてからもしばらくはWindowsアプリを走らせるためにPararellsのお世話になっていた私だが、Office 2008 for Macをインストールして以来、その必要がほとんどなくなってしまった。近いうちににMacBook Airに切り替えようと考えているのだが、その時にはPararellsなしで行けるかも知れない。

 ちなみに、驚いたのは150ドル(2万円弱)の「Office 2008 for Mac ファミリー&アカデミック」に3台分のライセンスが付いてくること。そんなことは知らず購入したのだが、ディスクケースにプロダクトIDがなぜか三つ書かれていることを発見。そこで説明書を読むと3台のパソコンにインストールして良い、という気前の良さ。

 別のところでも書いたが、少なくとも米国では、エンタープライズはWindows、個人ユーザーはMacという強い流れが出来つつある。その意味では、どのみちMicrosoft Officeに300ドルなどまず払わない個人ユーザーと学生をターゲットに、実質一台あたり50ドルで販売するというのは、需要曲線的に考えても正しい行動なのかも知れない。

 私自身「そろそろGoogle Docsで十分じゃない?」と思っていたところなので、この大胆な価格設定は絶好のタイミング。これで少なくともここ数年は、Microsoft Officeのお世話になりそうだ。

 ということで、Microsoftの大胆な価格設定を賞賛する意味でも、「Office 2008 for Mac ファミリー&アカデミー」には3台分のライセンスが付いて来ることを少し広めようと思ったしだいである。