しばらくiOSでプログラムを書いて気がついたこと

2011-05-06 17:18

というわけでいきなり引用。

Web開発は常にトレードオフの中にある。「沢山のユーザを獲得」しつつ、彼らを「満足させる品質」を作り上げなきゃいけない。Webは着実に良くなってはきているけど、そのスピードはあまりに遅すぎる。

Gmailが2004年にリリースされたとき、その当時私が使っていたメーラから一歩進んで十歩戻ったような有様だった。しかし今でも、Gmailの機能はここ数年のデスクトップメーラで作られてきたものの後を追っているだけだ。

いま、Webは重要な転換期の中にいると私は思う。Webはデスクトップアプリケーションと同等になるのに10年以上かかってるし、しかもイマイチだ。そしてネイティブアプリが加速していく中でWebは絶滅の危機に瀕している。

via: PosterousのCEO「Webはクソ。ブラウザはマジなんとかしろ」 - 床のトルストイ、ゲイとするとのこと

今年の一月までGUIのミドルウェアを扱う会社にいた。それはいわば

「GUIのアセンブラ」

ともいうべき仕様で、GUI表現に必要な最小構成要素を見切って実装していた。それ故仕様が小さく様々なプラットフォームに迅速にポーティングすることが可能だった。ミドルウェアの上で動くバイナリは共通だから、あるプラットフォームで動かしたアプリケーションを他のプラットフォームにもっていくことも簡単に(細かいところはあれこれ調整するとして)できた。

最近はiOSであれこれプログラムを書いている。iOSについて学びつつある段階で、以前やっていたこととiOSを比べると

・前やっていたこと:ナイフを一本もって、どこに行ってもそれで道具を作り、、、とやっていた。できることは貧弱だが、どこに行っても大丈夫だよ!

・iOS:必要なものは何でもそろっているショッピングモールを歩いている。

くらいの差があることに気がつく。
世の中の趨勢を見ると、iOSやAndroidのほうが例外的である、ということは認識している。しかしできることとそれに必要な労力の差は馬鹿馬鹿しいくらい大きい。

---------
インターネットを前提としたアプリを開発する、といったときそれを構成する要素は

・ネットで接続されたサーバー
・クライアント上で動くアプリケーション

からなるわけだ。サーバーのほうはいいとして、クライアントで動くアプリケーションをHTMLで書くのは実にバカげている、と最近思い始めている。昨日昔の情報を漁っていてこんな文章を見つけた。

HTMLの仕様は、紙の発想を根強く持っている。ネットワーク上での機能は、紙からの脱却を目指すべきだが、HTMLはそうなりきれていない。

via: 紙の発想をいまだに引きずっているHTMLの仕様

標準化がなされているのは知っている。しかしその表現力は未だに15年前から少しも進歩していない。

いや、HTML5が、、という人は一度HTML5+Javascript+CSS3でアプリケーションを書いてみるとよい。今までの「紙ベース」に少し色をつけることはできるが、それ以上のことをやろうとすると途端に難しくなることに気がつくだろう。今のところデモプログラム以外で「をを、HTML5になるとこんなことが」という例を見たことがない。

参考にしよう、とiOS上のアプリをいろいろ触ってみる。すると実に様々なUIが実現されていることに気がつく。HTMLという貧弱な仕様に拘束された世界とは隔絶している。

ここでもいろいろな端末でアクセスできること、と表現する機能のトレードオフがあるわけだが、サーバーサイドは、今までWebで積み重ねられてきた技術を使うとして、クライアントは、考え直すべきなんじゃないかな、と真面目に考えている。