最後に生き残るのは{{br}}JavaScriptかもな

えとこういちろう (Rubyist)

JavaScriptと私

  • JavaScriptハカーというよりも…
    • どちらかというとRubyist
    • qwikWebというWikiエンジンを作ってます
    • JavaScript使ってるけど実践的な話じゃない
  • どちらかというと概念的な話
    • どちらかというと昔話
    • JavaScriptとのつきあいは(すげー)長い

10年前のJavaScript

  • JavaScriptとのつきあいは10年前に遡る
  • 「ネット・トラヴェラーズ'96」
    • 「ネット・トラヴェラーズ'95」の続編です
    • 始めてのネット・サブカル本
  • JavaScriptの記事を書いた
    • 日本最初の「JavaScript入門」 (たぶん)

JavaScript不遇の時代

  • でもJavaScriptでやることといえば…
    • ポップアップウィンドウを表示
    • ステータス欄にマーキーを表示
    • ブラクラ

JavaScript暗黒の時代

  • 「JavaScriptをオフにしてください」
  • 「JavaScriptで個人情報抜かれる」
  • 「JavaScriptは悪」
  • まるで今のWinnyみたいな扱い

JavaScript絶望の時代

  • ブラウザ戦争最大の被害者
  • それぞれにまったく違うドキュメントモデル
  • 意図的に仕込まれた非互換性
  • ブラウザ毎の記述を余儀なくされた
  • そして荒野となった

そして希望の時代へ

  • 絶望の後には希望だけが残された

10年後…

  • JavaScriptは生き残った
  • 他のプレイヤーは死に絶えた
    • Javaアプレットは死んだ
    • Shockwaveは死んだ
    • Flashはかろうじて生き延びた
      • Adobeに買収されちゃったけど…
  • でも実はFlashもJavaScriptじゃん!

クライアント界を征覇

ユビキタス言語JavaScript

  • おやこんなところにJavaScriptが
  • Windows Scripting Host
    • Windowsの制御をJavaScriptから行える
  • Adobe Photoshop, Illustrator
    • JavaScriptから制御できる
  • 萌ディタ,JavaScriptで制御できるエディタ

JavaScriptのこれまでの10年とこれからの10年

  • これまでの10年でクライアントサイドを征覇した
  • これからの10年でどこまで領域を広げるか

Webアプリで必須の存在に

  • Webアプリの構成
    • サーバサイド言語 + クライアントサイド言語
  • これまでは
    • サーバサイド言語 + HTML + CSS
  • これからは
    • サーバサイド言語 + HTML + CSS + JavaScript
  • 普通のWebアプリ開発者にも必須の存在となる

サーバ側でのJavaScriptの利用

  • サーバサイド言語から手軽に利用できるように
  • RJSのようなテンプレート化が普及するはず
    • しかしJavaScriptはデータではなく言語
    • 一定以上の規模になると破綻

サーバサイド言語への進化

  • Web開発者が覚える言語
    • サーバサイドの言語 + HTML + CSS + JavaScript
  • 人は少しでも楽をしたい
    • HTMLを変形させるのはJavaScriptの得意技
  • 言語の大統一理論
    • JavaScript + HTML + CSS + JavaScript

JavaとJavaScriptの再連携

  • Mustang(JDK6.0)ではJavaScript(Rhino)が標準塔載
  • JavaScriptからJavaの機能が簡単に使える

JavaScriptでWebサーバ

importPackage( java.io );
var server = Packages.com.sun.net.httpserver.HttpServer.create(
  new java.net.InetSocketAddress(8000), 5);
var context = server.createContext("/", rootHandler);
server.start();

JavaScriptでブログ

  • Ajax Pages
    • JavaScriptだけでMovableTypeみたいな画面遷移を実現

JavaScriptはLL?

  • いまいち爽快感が無いような…
    • 「俺ってばスゲー感」が皆無…
    • どちらかというと「orz感」の方が多いかも…
  • これじゃだめだ!
    • ライブラリ重要! requireが必要!
    • テストケース重要! ユニットテスト書けるように!

まとめ

  • この10年でJavaScriptはクライアント界を征覇した
  • 次の10年でサーバサイドに進出するかも
  • JavaScriptはLLに進化する
  • 最後に生き残るのはJavaScriptかもな
Last modified: 2006-09-05