2011 年に新しく登場する Web 技術を先読みする

誕生後 20 年を経た現在、Web はなお発展しています

誕生して 20 年となる World Wide Web では、相変わらずさまざまな革新が続いています。しかし現在では、新しい発明よりもいかに実装するかがこれまでにないほど重要になっています。この新しい年に、開発者はより多くの時間を創造に費やすことができ、コーディングに費やす時間は少なくて済みそうです。

Martin Streicher, Software Developer, Pixel, Byte, and Comma

Author photoMartin Streicher はフリーランスの Ruby on Rails 開発者であり、以前は Linux Magazine の編集責任者でした。彼は Purdue University でコンピューター・サイエンスの修士号を取得しており、1986年以来 UNIX ライクなシステムのプログラミングをしてきました。彼は美術品やおもちゃを収集しています。



2011年 1月 11日

2010年 12月に World Wide Web は、この世に登場して 20 周年を迎えました。登場した当初の Web は 1 台のコンピューター (具体的には NeXT ワークステーション) で構成され、そこで初歩的な Web サーバーと黎明期のブラウザーの両方が実行されていました。20 年後、1 台だったマシンが 1 億台を超える機器にまでなり、その種類は従来のデスクトップ・コンピューターから携帯電話や自動車のダッシュボードに組み込まれたコンピューターにまで広がっています。もし人類が Web と同じペースで進化していたとしたら、洞窟の壁画には毛深いマンモンスを軽く油で炒めてエシャロットと赤ワインで煮込む方法が描かれていたかもしれません。

よく使われる頭文字語

  • API: Application programming interface
  • HTML: Hypertext Markup Language
  • HTTP: Hypertext Transfer Protocol
  • REST: Representational State Transfer
  • SMS: Short Message Service
  • SQL: Structured Query Language
  • UI: User interface
  • URI: Uniform Resource Identifier

登場から 20 年を経た現在も、Web での革新のペースは落ちていません。HTML5 はまだ承認されていませんが、主なブラウザーの大半で新たにサポートされた結果、ほとんどあらゆるところに、かなり急速に採用されつつあります。JavaScript エンジンやライブラリー同士が競い合うことで、ユーザーとの対話性が向上し、より優れたツールがソフトウェア開発者のために作成され、さらには高いスケーラビリティーを持った新しい形のコンピューティングさえ生まれています。そしてもちろん、優れた Web サイトが毎週のように新しく誕生し、アイデアを実現する上で Web が相変わらず素晴らしいプラットフォームであることを証明しています。

しかし、今日の Web の革新性の大部分は、新しい技術とは結びついていません。むしろ現在は実装が重視されています。ツールや手法は急速に変化し、開発者達は適切ではないアイデアを試して悪い部分を除去し、優れたアイデアをさらに改善し、そして最高の考え方をベスト・プラクティスとして確立しています。

2011年の Web 開発は、革命的なものではなく発展的なものになり、技術ではなくツールが焦点になることでしょう。そして必ず、いくつかのトレンドが新たに登場するか一層強力なものになるはずです。

ママ見て、ルート・プロンプトがないよ!

クラウド・コンピューティングは、普通の風邪を治すのに使えたり、さらには全粒粉の食パンよりも優れていたりするなど、その能力について実際よりも過剰なものとして語られています。そうした主張はクラウド・コンピューティングの可能性を誇張していますが、それほど大きく誇張しているわけではありません。クラウド・コンピューティングの影響は非常に大きなものでした。Amazon Elastic Compute Cloud (Amazon EC2) や Rackspace Cloud などのサービス、その他似たような仮想サーバー・ファームにより、マシン・ルームは時代遅れになり、高い能力を持つマシンへの資本投資は過去の話となりました。マシンをオンするためには単にマウスをクリックするだけでよくなっています。

IBM とクラウド

developerWorks の Cloud computing ゾーンでクラウド・コンピューティングを掘り下げ、IBM が提供しているクラウドのサービスについて調べてください。

また、Heroku のようなターンキー・ホスティング・プロバイダーは、システム管理が不要なアプリケーション・ホスティングという、前途有望なクラウドを提供しています。つまりコードをインストールするだけでよいのです。Heroku は特に注目に値します。というのも、Heroku のコア・サービスを利用し、特定の領域に特化した家内工業的なクラウド・プロバイダーが数多く生まれているからです。検索が必要であれば、Websolr をプラグインします。グローバルな SMS が必要であれば、Moonshado を使います。「No SQL」データベースを使いたい場合には、Mongo、Redis、JasonDB から選択することができます。

ルート・プロンプトよ、さようなら。今まで楽しませてもらいました。2011年、開発者はほとんど、あるいはまったくシステム管理を必要とせず、アプリケーション・コードに集中できるようになるでしょう。


アプリケーションよ、家に電話を

Tim Berners-Lee が書いているように、新たに誕生した Web でさえ、「非常に重大な概念を提示しました。つまり Web は、誰もが、どこにいる誰とでも情報を共有できるということを実証したのです。」実際、Web とブラウザー、そして URI (今やおなじみとなった、「www」のような表記) というちょっとしたハンドルがあれば、誰でも Mumbai の現在の天気を瞬時に知ることや、同じ仲間である癌患者の苦闘や克服体験の記事を読むこと、あるいはシェイクスピアの全作品にアクセスすることなどができ、それ以外にも無限の可能性があります。Berners-Lee らによる HTML と HTTP は、十分に目的を果たしました。彼の記事へのリンクは「参考文献」を参照してください。

しかし今や Web は単なるハイパーテキスト文書ではありません。基本的に、Web はもう「読み取り専用」ではありません。実際、今のブラウザーはドキュメント・ビューアーと言うよりも、エンジンまたはオペレーティング・システムと言えます。ページ、フィード、ダウンロードは、それぞれツイート、コールバック、同期という形になってきています。新しいコンテンツは用意ができるとすぐに提供されるのが当然のことと思われています。

これまで、このダイナミズムを活かしたアプリケーションは比較的少数しかありませんでした。Apple の Push サービスや、失敗したとはいえ画期的だった Google Wave を思い出してください。それらを除けば、技術があまりにも複雑すぎたり、あるいはあまりにも独自性が強かったりしたため、普及はしませんでした。

しかし障害は解消されつつあります。HTML5 のソケットによってブラウザーは双方向の通信が可能になり、またサーバーの実装を標準化するためのフレームワークも生まれつつあります。PubSubHubbub も、新しいコンテンツのポーリングを不要とするプロトコルです。PubSubHubbub を使って単純にフィードに対する関心事項を登録すると、そのフィードが更新されるたびにサーバーがコールバックを行います。分散型の Twitter であるオープンソースの Diaspora プロジェクトも、購読という概念の普及を推し進めています。

World Wide Web というよりも Wired, Wired, Wired World (何よりもネットワーク接続を) とも言うべき 2011年、サイトは常に皆さんとつながっています。


安全と思った矢先に・・・

長年の間、開発者は複数のプラットフォームをサポートするために苦闘してきました。Mac や Windows® (そのすべてのバージョン) 用にパッケージ化されたソフトウェアをコーディングしたり、さまざまな種類の UNIX® (そして 18 種類のウィンドウ・システム) に科学プログラムをポーティングしたり、Windows Internet Explorer® バージョン 6 と他のほとんどすべてのブラウザー用に Web ページを構築したりしたことを思い出してください。そうした苦労は、相互に互換性のない機器が爆発的に増えている最近と比べれば、大したことはありません。数え上げるだけでも、Mac OS X、Apple iOS、Google Android、RIM Blackberry などの機器、標準的なデスクトップ PC があり、そして Internet Explorer があります。これほど多くの競争が喜ばしいことなのか、呪わしいことなのか、ときどき判断できなくなくなることがあります。

良いニュースとして、クロスプラットフォームの強固な開発ツールが実際に存在しています。例えば、Rhodes は Ruby on Rails に似たフレームワークであり、複数の機器に対するアプリケーションを生成することができます。同様に、Appcelerator Titanium は JavaScript と HTML とを組み合わせ、ポータブル機器用のネイティブ・アプリケーションを作成することができます。Titanium で Ruby、PHP、または Python を使用してデスクトップ・アプリケーションを作成することもできます。他にも、PhoneGap や MoSync などの新たな選択肢があり、ほとんどは制限の緩いオープンソース・ライセンスで提供されています。

通常、それぞれのソリューションによって、機器に組み込みの動的な Web サイトが生成されます。これらのフレームワークの多くは、ジオロケーションなどの機能を統合しているため、本当にネイティブ・アプリケーションのように見えるアプリケーションが作成されます。jQuery Mobile も一連のクロスプラットフォーム・ツールに最近加わったものの 1 つですが、同じく組み込みの Web サイトを生成することができます。

ソフトウェア・アプリケーション開発者は 1 つのプラットフォームを専門にする傾向があります。皆さんが専門とするプラットフォームが Web である場合には、これらのクロスプラットフォーム・ツールは広い世界 (Wide World) の征服に役立つ可能性があります。


JavaScript よ、安らかに眠れ

正直、JavaScript への弔辞を述べるのは時期尚早かもしれません。一部の人達には早々の終焉を望まれながら、JavaScript は相変わらず復興と繁栄の中にあります。ほとんどの開発者は JavaScript を非常に好むか、あるいは非常に嫌いますが、それは苦痛に対する彼らの忍耐力、摂取したカフェインの量、あるいは目の前にある仕事に依存します。理想的には、JavaScript はあまり風変わりでない別の言語で置き換えられるはずです。それが今年 (あるいはいずれ近いうちに) 起こる可能性は低く、この話題に関する一切のことについてノストラダムスは不思議に沈黙を守っています。

皆さんが「非常に嫌う」側の人であるなら、jQuery や Prototype、そして優れた方言の CoffeeScript など、洗練された JavaScript ツールキットに慰めを見いだすことができます。CoffeeScript のサイトの説明によれば、このプロジェクトは「JavaScript の良い部分を単純な方法で明らかにする試み」であり、その理由として「人を当惑させる大量の山括弧やセミコロンの下、JavaScript の根底には、素晴らしいオブジェクト・モデルがある」ことを挙げています。

CoffeeScript をコンパイルすると、読みやすい JavaScript が出力されます。CoffeeScript は直接ブラウザーに含めることができ、ブラウザーの中でコンパイルされ、実行されます。CoffeeScript の構文は容易に習得できるため、よく使われるようになってきています。CoffeeScript は苦いコーヒーに加えるミルクと砂糖のようなものです。


Location, Location, Location ― 何よりも場所を

不動産に関して「it’s all about “location, location, location” (何よりも場所がすべてだ)」という格言がありますが、この言葉は近い将来の Web 開発にもあてはまるマントラです。デスクトップで使われるという制約がブラウザーからなくなったことで、開発者は人々の生活に即座に影響を与えるアプリケーションを作成できるようになっています。皆さんは最寄りの地下鉄の駅、あるいは近くにある最高のタイ料理店を知りたいと思いませんか。あるいは、皆さんが立っている道沿いの各家の価格を知りたいと思いませんか。

ジオロケーションは、GPS (Global Positioning System)、携帯電話の電波を利用した三角測量、あるいは IP アドレスのいずれかを基に得られるものですが、今やほとんどあらゆるところに使われているため、無視することがほとんどできなくなっています。実際、ジオロケーションを無視するのであれば、それによるリスクを負うことを覚悟しなければなりません。


Synchronization, Synchronization, Synchronization ― 何よりも同期を

Web アクセスに使用される機器の種類が増えただけではなく、非常に多くの機器がオンライン接続されるようになっています。2010年には、ラップトップ・コンピューターと携帯電話、場合によっては電子書籍リーダーを個人が持ち運ぶことはごく普通のことになっており、それぞれの機器がネットワーク接続機能に加え、ユニークな機能と目的を持っていました。しかしスパイダーマンの言葉を言い換えて表現するなら、多大な便利さには多大な混乱が伴います。つまり同じアプリケーションを複数の機器で使う場合、どのようにして情報を同期させるのでしょう。

機器がネットワークに接続されたままの状態を保持できるのであれば、サイトやサービス側でデータを保持することができます。そうでない場合には、機会を見て、そして理想的には自動的に、データを同期させる必要があります。Apple の MobileMe はシームレスな同期を実現しています (それが最大のセールスポイントです)。しかしこのサービスは Mac OS X と iOS 専用であり、年契約の利用料金が必要です。一部の開発者達はコンテンツやデータを同期するための独自ツールを作成しています (接続用のプロキシーとして動作するオフラインの「ウィジェット」など)。単純にローカルでデータを入力し、ネットワークに接続できるときには必ず同期されるようでなければなりません。その一例が Harvest 時間管理アプリケーションです。このアプリケーションの Apple iPhone 版では、ネットワークに接続されていない間の作業を保持しておき、接続されると、そのすべてを Harvest の Web サービスに転送します。

こうしたことから、一貫性が次第に不可欠になりつつあります。この点に関しても、HTML5 にはローカル・ストレージのための新機能が用意されています。しかしローカル・インスタンスとリモート・インスタンスとが互いにピアとして複製し合うスタンドアロンのアプリケーションでは、おそらく「少しずつ一貫性を備えていく」データベースが望まれるはずです。そうしたデータベースの 1 つが CouchDB であり、Riak も同様です。どちらのデータベースも、RESTful な API を持っているというメリットがあります。

頻繁に場所を移動するユーザーを対象にする場合には、同期のためのツールを検討する必要があります。


改めて「ユーザー・インターフェース」の観点から「ユーザー」について考える

最後に触れるのは、これらの多様なツールがあるからと言って、Web アプリケーションを DOS プロンプトに似せる必要はないということです。Web 上にきれいに表示するための技術は昨年のうちに現実のものとなりました。そのため、美しく有効に機能するナビゲーション、情報アーキテクチャー、フォーム、対話機能などのためのベスト・プラクティスや材料には事欠きません。現在のブラウザーは当初の意図を大幅に超えて拡張されていますが、相変わらずあらゆる変化に対応しています。

しかしブラウザーは 1 つの媒体にすぎず、ある 1 つのブラウザーで適切に動作するアプリケーションや、接続されたキーボードとマウスは、どんな環境でもそれに対応するものがあるとは限りません。例えば、マウスがない場合にはホバリングを使うことができず、ドラッグ・アンド・ドロップは小さな画面の端末や、指が大きい人の場合には困難です。

製品責任者、開発者、デザイナーは、各対象機器の機能に対応して、アプリケーションをシンプルで直接的かつ、操作しやすいものにするために、より一層努力する必要があります。つまり対象とするユーザー、そして対象とする機器を考慮して設計する必要があります。


Web とは一体何ですか

ある意味で、Web アプリケーションを Web アプリケーションと呼び続けることは誤りとも言えます。アプリケーションや情報は、Web 以外のプラットフォームや機器から直接的、あるいは間接的にアクセスされることがますます多くなっています。Web 開発のことを、インターネット開発、サービス開発、あるいは単にアプリケーション開発とした方が適切かもしれません。どのような手段でアプリケーションが利用されるかは次第に重要ではなくなっています。

しかし以前と同様に、アプリケーション開発では相変わらず多種多様な事項をマスターする必要があります。データ構造は今でも変わらず重要で、ストリングの構文解析はごく当たり前の作業であり、対話動作の設計や表示には十分な注意と思慮深さが欠かせません。アプリケーション開発にあらためて多くの機器や多くのオペレーティング・システムが関係するようになると、作業のための適切なツールを選択することが非常に重要になります。2011年には、膨大な選択肢が現れることでしょう。もはやルート・プロンプトは必要ありません。

参考文献

学ぶために

  • Amazon EC2 のホームページよれば、Amazon EC2 は「真の仮想コンピューティング環境を提供します」。マシンのブートに必要なものはマウスのクリックのみです。
  • Web development ゾーンは Web ベースのさまざまなソリューションを解説した記事に特化しています。
  • Technology bookstore には、この記事や他の技術的な話題に関する本が豊富に取り揃えられています。
  • developerWorks の Technical events and webcasts で最新情報を入手してください。
  • Tim Berners-Lee による記事「Long Live the Web: A Call for Continued Open Standards and Neutrality」を読んでください。
  • developerWorks On demand demos をご覧ください。初心者のための製品インストール方法やセットアップのデモから、上級開発者のための高度な機能に至るまで、多様な話題が解説されています。

製品や技術を入手するために

  • Appcelerator Titanium は無料でオープンソースのアプリケーション開発プラットフォームであり、モバイル、タブレット、デスクトップ用のネイティブ・アプリケーションを既存の Web 技術を使って作成することができます。
  • JavaScript は好きでも JavaScript の構文が嫌いな人は、CoffeeScript を試してみてください。CoffeeScript は JavaScript の良い部分を単純な方法で示しています。
  • Diaspora はプライバシーを重視したオープンソースで分散型のソーシャル・ネットワークです。誰でも Diaspora サーバー (またはシード) をホストすることができ、また情報は承認されたシーズの間でのみ共有されます。Diaspora のコードは Github でホストされています。
  • Google Wave はメッセージやメディアを共有するためのリアルタイムのコラボレーション・プラットフォームです。
  • Ruby 専用のホスティング・プラットフォームである Heroku を利用すると、システム管理を必要としないコンピューティング・リソースを実現することができます。
  • jQuery Mobile を利用すると、よく使われるモバイル機器プラットフォームすべてに共通の、統一された UI を作成することができます。jQuery Mobile は jQueryjQuery UI の上に構築されています。
  • MongoDB (この名前は「humongous (異様に大きい)」に由来しています) は、スケーラブル、ハイパフォーマンス、オープンソース、そしてドキュメント指向のデータベースです。
  • 奇妙な名前ながら便利な PubSubHubbub は、Atom と RSS のための、単純かつオープンソースの、サーバー対サーバー、パブリッシュ/サブスクライブ型のプロトコル拡張機能です。フィードの関心事項を登録すると (サブスクライブ)、そのフィードに新しいコンテンツが登場したときに PubSubHubbub が通知してくれます (パブリッシュ)。
  • Moonshado は単純かつオープンで、サーバー対サーバー、そして Web Hook ベースのパブリッシュ/サブスクライブ型プロトコルであり、Atom と RSS を拡張することができます。
  • Rackspace Cloud は Amazon EC2 とまったく同じように、瞬時にオンし、ホスト、ファイル・ストレージ、ターンキー Web サイトを含む仮想コンピューティング・リソースを提供します。
  • Redis は高度な key-valueストアです。RedisMemcached と似ていますが、データは消失せず、値はストリング、リスト、集合、順序付き集合が可能です。
  • Rhodes を利用することで、スマートフォン用のネイティブ・アプリケーションを短時間で作成することができます。
  • Websolr サービスは Solr インデックスをホストしています。API には Windows .NET 用、PHP 用、Python 用、Ruby 用があります。
  • IBM 製品の評価版をダウンロードするか、あるいは IBM SOA Sandbox のオンライン試用版で、DB2®、Lotus®、Rational®、Tivoli®、WebSphere® などが提供するアプリケーション開発ツールやミドルウェア製品を試してみてください。

議論するために

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Web development
ArticleID=621422
ArticleTitle=2011 年に新しく登場する Web 技術を先読みする
publish-date=01112011