こぶたのラッパ » 2011 年 6 月 4 日

Daily Archives: 2011 年 6 月 4 日

コンピュータ

Webプログラミング史

Published by:

このドキュメントについて

Webプログラミングの歴史はせいぜい10数年と浅く、古くはPerlを使ったCGIやJavaアプレット、最近ではHTML5やスマートフォン向けのアプリ開発などに話題が集まっています。
Webの進化の歴史は、2000年ごろに検索サービスを開始したGoogle検索の歴史とも重なるため、キーワード検索を使って過去の文献を探すこともできますが、時系列に沿ってWebの進化をまとめた資料というものは意外に多くありません。
そこで、1999年ごろからWeb開発に興味を持ち続けている当事者の観点からWeb開発の歴史を残しておくことは、多少なりとも意味のある試みと思い、この度「Webプログラミング史」としてまとめることにしました。

Webプログラミング史

黎明期(~1999年)

私自身がWebプログラミングをはじめた1999年より以前については、正直多くを語ることができませんが、Perlを使ったCGI(アクセスカウンタ、掲示板)や、JavaScriptを使ったページのにぎやかし程度だったように思います。

当時はWebプログラミングよりは、OSインストール型のソフトウェアがほとんどで、お気に入りのソフトをインストールしては、ローカルPC上で利用するという考え方が一般的でした。

開発環境や実行環境も整備されていなかったため、数多くのバッドノウハウが生まれ、Perl職人、JavaScript職人といったある種の特殊技能として見られることが多い時期でした。

検索エンジンシステム大流行の巻(2000年~2002年)

Google以前はどうやって情報を検索していたのでしょうか。

コンピュータを2000年以降に使い始めた方には考えられないかもしれませんが、Google登場以前は、「キーワード検索」という概念が実質ありませんでした。
現在でいうアルファブロガーのような方たちが、有用なサイトのURLを集めて、リンク集を作成し、そこからツリー上にたどっていく方法が一般的でした。
Yahoo!はそこに商機を見出し、各Webサイトオーナーに有料でリンクを販売し、カテゴリ別にあらゆるサイトへのリンク集を用意することで、一大ポータルサイトの座を獲得するにいたりました

キーワード検索機能を提供するWebサービスもあるにはありましたが、精度は低く、対象サイトも少なく、一回の検索に5~10秒近くかかるような代物だったため、一般的なサービスとしては認識されていませんでした。

Googleが登場したのは、まさにそんな状況だったのです。
あらゆる情報をコンマ数秒で表示してくれるGoogleに世界は熱狂し、検索エンジンブームが到来。猫も杓子も検索エンジンを作成する時期が続きます。
コンピュータ雑誌では検索エンジンの作り方を特集し、特に日本ではNamazu(当時最先端の日本語全文検索システム)を使えないとモグリ的な風潮が広まりました。

サーバーサイド・プログラミング大流行の巻(2003年~2004年)

このころには、動的なコンテンツを表示するためのWeb用言語として、PHP、Perl、Java Servletが出揃い、それぞれが猛烈な勢いで進化していきました。

PerlではCPANサイトの利用が活発化し、PHPはユーザープログラマの要望にこたえてありとあらゆる機能が組み込み関数化され、Java Servletではデザインパターンを駆使した開発スタイルが大流行しました。

それらの開発言語とは別に、データ構造としてのXMLや、分析・設計言語のUML、HTMLにデザインを適用するCSSなど、関連技術が毎月のように登場し、発展し続けたため、開発関係者はとにかく勉強しまくって、エンジニア30代限界説などがまことしやかにささやかされ始めたのもこのころです。

サーバーサイド・プログラミング洗練期(2004年~2005年)

開発言語としてRuby on Railsの採用が増え始め、PHPはPearやZend Frameworkといったフレームワークの利用が一般的になり、データベースへのアクセスはO/Rマッピングで行うといった、一から全部を作らず、これまで培われてきた技術や方法論を集約し、誰でも同じようにコーディングするような開発スタイルが定着してきました。

Javaの開発においても、アスペクト指向やDI(依存性の注入)という画期的な「発明」により、これまでに蓄積されたServlet開発の問題点を一掃することに成功しました。

Web開発の未来としては、プログラミングの自動化やメタ言語・メタメタ言語による設計など、より抽象的な方向に進むかのように思われていました。

Ajaxの台頭(2005年~2006年)

2000年にWebの世界を一変させたGoogleが、今度はWebの進化の方向を、誰も考えていなかった分野へ切り替えてしまいました。
それが、Googleマップのリリースです。

Googleマップのリリース日以降、開発者たちは新種の珍獣でも見つけたかのように、GoogleマップのHTMLソースを調べまくりました。
そこにFlashのswfファイルが読み込まれておらず、JavaScriptによって作られていることを発見してからは、オンライン・オフラインを問わずいたるところでGoogleマップ勉強会が催され、「Ajax」という用語が作られてからはすさまじい勢いで関連サービスが生まれました。

JavaScriptは90年代からJavaScript職人によって利用されていたものの、ブラウザ間の仕様の不統一がたたって、ほとんど黙殺され続けてきた不遇の言語ですが、Googleマップ以降は2011年現在にいたるまで、重要言語としての地位を保ち続けています。
ただ、ブラウザ間のJavaScriptエンジンの実装の差異は大きく、統一的にコーディングを行うためのフレームワークの登場が望まれ続け、この時期開発されたPrototype.jsが最初のデファクトスタンダードとなりました。

Web2.0という用語が新聞に載り始めたのもこのころで、新たな商機を見出した企業が作って作って作りまくりました。

Webの進化が止まった?(2007年~2008年)

Web2.0という用語が大衆化し、サーバーサイド・プログラムの画期的な進化も現れず、クライアント・プログラム用のライブラリとしてはPrototype.jsに代わってjQueryの一人勝ちが見え始めてきたこのころ、「もう新しいWebサービスは生まれないのではないか」という問いかけがちらほらと聞かれるようになりました。

ゼロベースから新サービスを立ち上げるのではなく、GoogleやAmazonなどが提供するAPIを呼び出して、それらのAPIから受け取った情報を組み合わせたマッシュアップサービスこそが新しいWeb開発のスタイルかのように喧伝されました。
Web開発者も、APIが生まれるたびに使い方を学ぶ羽目になるという状況が続きました。

クラウドという用語が生まれたのもこの時期で、Web開発そのものがブラックボックス化している様子をうまく表していると感じられました。

つぶやきを中心に世界が回る(2009年~2011年)

2006年にサービスが開始したTwitterの可能性を、マッシュアップに明け暮れていた企業は見逃し続けていましたが、「ツイート」の魔力は2009年ごろにはもう抵抗できないくらいの勢いになっていました。

世界中のありとあらゆる情報が140文字のトークンとなり、すべてTwitterというブラックホールに吸い込まれていきました。
その影響もあってか、ブログなどでのまとまった形のコンテンツが相対的に減少したように、個人的には感じています。

さらに、TwitterやiPhoneの登場に呼応して、Webアプリという市場が形成され始めました。
Apple社のApp Storeという名称には、商標登録無効を訴える騒ぎが持ち上がるほどに、「アプリ」というキーワードがWeb開発のトレンドになっています。

これまではスケーラビリティー(拡張性、発展性)というキーワードの元に拡大・発展を続けてきたWebが、Twitterやアプリなどのように縮小を始めてきているのは何を示しているのでしょう。
これは未来になってみないと誰にも分からない問いなのかもしれません。

to be continued..

過去Webの歩き方

発行・更新年を意識した検索方法

この文書で見てきたように、Webの開発は二順も三順もしています。
2005年くらいまではキーワードだけによる検索も有効でしたが、サーバーサイド開発が盛り上がった2005年以前の情報は玉石混淆で、本当に現在使うべき方法を見つけることはなかなか難しいものです(クライアントサイド開発に関しては現在がその状況です)。

たとえば、Javaのプログラムでユーザーが入力した文字列の空白チェックをしたいと思います。
検索キーワード「java 空白 チェック」でGoogle検索すると、検索結果の1ページ目に出てくるのは、現在では不適切な情報ばかりだったりします。

代わりに、「java 空白 チェック 2011」と西暦を指定して検索すると、1ページ目の最初の10件のうち、3~4件は有用な情報を見つけることができるようになります。

西暦指定をしても、過去の情報が出てくる場合がありますので、かならずいつ書かれたドキュメントなのかを意識して参考にすることが肝心です。

Q&Aサイトは比較参考程度に

こと開発に関する情報ソースとして、Q&Aサイトで解決できることは稀です。
プロフェッショナルの回答者は少なく、「ググってコピペ」タイプの方が多いため、古い情報を転載していることが非常に多いためです。

アメリカでは専門家がアンサーしてくれるQuoraというWebサービスが2010年にに開始しましたが、上記のような問題を解決しうるのか注目されています。

著者略歴

smilkobuta
プログラミング大好きな九州男児。

最初に作ったプログラムは時間計算プログラム。自作音楽テープを作る際、A面・B面に無駄なく曲を詰め込むために作成した。
開発環境は、父のワープロにおまけでついていた表計算ソフト。

幼いころからの夢であったフランス料理のコックを目指して、調理師専門学校卒業後に渡仏。
その後、製菓の勉強のため上京するも、PCの楽しさに目覚めてSEに転身。

いろいろあって今にいたる。