ソフトバンクの孫正義社長が最近のインタビューの中で「今は、パソコンは使わず、iPhoneとiPadだけで、99.9%の仕事をこなしていますし、日常生活においてもそうです」と発言し、話題を呼んでいる(週刊ダイヤモンド誌の記事)。

 ポジショントークや誇張だとは思わない。筆者もiPhoneとiPadの両方を使っているが、原稿執筆とプログラミングとニコニコ動画の視聴以外は概ね事足りているからだ。今のペースでiPhoneやiPadが機能強化していけば近い将来、パソコンというものの存在感は大きく後退し(Windows 95かWindows 3.1登場以前のように、一部専門家やSE、プログラマ、および愛好者だけのものとなる)、一般のオフィスや家庭ではiPadのようなタブレット型端末が主流になっていくのかもしれない。

 そこで使われるOSは、現在の状況から推測するならば、iPhone/iPadが採用する「iOS」と、米Googleが中心となって開発が進んでいる「Android」である可能性が高い。ひょっとすると、AV機器やゲーム機でさえも、将来はAndroidを採用する可能性がある。

 このトレンドをプログラマの立場から考えてみよう。いや、考えるまでもなく自明なことなので、再確認してみよう。

 サーバー側の技術は持続的に進化していくだろうが、クライアント側は劇的に変化する。開発環境の主役はiOS SDK(ソフトウエア開発キット)とiOSのアプリケーション開発言語であるObjective-C、Android SDKとその開発言語であるJava、そしてHTML5だ。それ以外のテクノロジーは徐々にプレゼンスを失っていくだろう。要するに、長年に渡って大きなシェアを持ってきたWindows系のクライアント技術が、次の時代にも主流であり続けるとは限らない情勢なのである。

 とすれば、クライアントOSの多くがiOSとAndroidになるかもしれない未来に備えて、iOS、Android、HTML5のプログラミングを今から学んでみてはいかがだろうか。プログラミングは本質的には言語やOSに依存するものではないが、とはいっても特定プラットフォームへの“慣れ”は重要である。

 実際に体験してみると、iOSやAndroidのプログラミングは非常に面白い。iOSのObjective-Cは表記こそ独特だが、少し慣れると普通のオブジェクト指向言語であることがわかる。両OSともカメラやGPS、加速度センサー、電子コンパスといったデバイスを手軽に扱えるし、マルチタッチの処理やジェスチャーの認識も面倒ではない。Androidに至っては「FaceDetector」という顔認識用のクラスまで用意している。高度な機能を持つアプリケーションをいとも簡単に作れてしまうのだ。iOSやAndroidが99.9%を占めるかもしれない世界は、決してプログラマを不幸にはしないだろう。