2011-06-02
■[essay]JavaとJavaScriptは何も争っていない。
「JavaとJavaScriptの20年戦争」 http://wise9.jp/archives/2245
20年戦争って…Javaは汎用言語。JavaScriptはブラウザ内で動くマクロ言語。お互いの領域が異なるのだから20年間の間に争ったことはない。
JavaにとってJavaScriptはブラウザでValidateを行ったり、メッセージを表示させたりするためのマクロ言語。
JavaにはJavaScriptプログラムとしてWEBアプリを生成するGWTなどのツールキットも存在しているし、互いに補い合って使うのが便利。
気になったのは次の部分。
JavaScriptではまだそのへんのノウハウが少ないため、下手な奴を仲間に入れると致命傷になりかねない(あまりに強力すぎるが故の問題とも言える)。
ノウハウの有無ではなく、大人数が協調して開発するだめの機能がJavaScriptに備わっていないことが問題。
JavaはC言語の反省から、その辺りのライブラリ制御機能が充実し簡単に使えるようになっています。JavaScriptはクラス名などの衝突も回避できないレベルだと思ったけど…。
Javaに関する説明があまりにブラウザ寄りになっているので、↓に記憶から掘り起こしたJavaの歴史を上げてみました。
- 1996年頃
Windows95の大ブーム。Sun、WindowsとUNIXのプログラム環境を自社製品で統一すべくJavaを開発。無料で配布する。
オブジェクト指向、C言語に似た文法、豊富なライブラリ、強力なセキュリティ機構などを備え、UNIXとWindowsの両方で動くプログラムを作成できる無料のJava SDKに大勢のプログラマが飛びついた。
- 1998年頃
Window98の大ブーム。
XMLや暗号などのライブラリがJavaに追加される。
JSPやEJBなどを組み合わせたJavaエンタープライズ規格Java EEが制定されたことで企業でもJavaの利用が広まると思ったらVisualBasicが大流行する。
この頃、Javaアプレットはサンドボックス内で実行されるため、安全性が必要とされる場所のみで使われていた。
JavaScriptはブラウザごとに違うコードを書いて、同じ表示をさせるテクニックを競うことが流行していた。
- 2000年頃
WindowsXPが発売。
Javaの仮想マシンに動的再コンパイルとJITが追加され高速化される。
JavaEEの規格が複雑怪奇になり、多くのプログラマを苦しめる。
JavaのIDE、Eclipseが流行し、多くのプログラマを救う。
Strutsフレームワークが流行。Strutsを改良・改悪したフレームワークも数多く出回り、多くのプログラマを苦しめる。
ブラクラの流行により、JavaScriptは切っておくのが紳士のたしなみとなる。
JavaScriptはフォームのValidateやメッセージの表示させるために使われる。
- 2005〜2008年頃
ADSL網が広まり、ネットワークが高速化・低価格化される。
LINUXが流行。UNIXベンダー、SUNも含めて壊滅状態に。
タブブラウザが流行。
J2SE5.0でJavaの言語仕様が拡張される。
JavaScript、Ajaxが再発見され流行したのをきっかけに数々のAjaxライブラリが開発される。
各種携帯電話にJavaが搭載される。組み込み用と銘打っていたもののJavaアプレットの焼き直しのようだった。
JavaのGUIがネイティブアプリと遜色が無いくらいまでに高速化される。
JavaでDIコンテナーが流行し、数々のフレームワークが開発される。
Ajaxを利用したWEBアプリが増える。
WEB APIを提供する企業が増える。
- 2009〜2010年頃
iPhone、Androidが登場。両者ともブラウザエンジンにWebKitを採用し、HTML5が共通の標準となる。
JavaEE 6の実装が出始める。多くのプログラマがこれで楽になると喜んだ。
JavaScript、DOMモデルと親和性の高かったJQueryがデファクトスタンダートになる。
- 2011年頃の予想
WebKitを取り込んだJavaFX 2.0によりJavaがクライアント領域に再挑戦。
サーバーサイドはWEB APIを提供できるならば、どんな言語でも問題なし。強力なフレームワークと各種DBへの接続環境を持つJavaの優位性は変わらず
- 7 http://b.hatena.ne.jp/entry/wise9.jp/archives/2245
- 6 http://www.google.co.jp/url?sa=t&source=web&cd=1&ved=0CBkQFjAA&url=http://d.hatena.ne.jp/m-prog/20110503/1304427509&rct=j&q=Ricty windows7&ei=q1frTYzxC42ivQOHzo3XDw&usg=AFQjCNGRot-9BbGWhE50HcUrfy0fK7RgUw&sig2=Vlj4KbSthcZdUZxaDRLqmg&cad=rja
- 5 http://d.hatena.ne.jp/JavaBlack/20110601/p1
- 4 http://bit.ly/mPBLCV
- 4 http://reader.livedoor.com/reader/
- 3 http://pipes.yahoo.com/pipes/pipe.info?_id=02db597254ec68550537866a2fca2ce6
- 3 http://www.google.co.jp/
- 3 http://www.google.co.jp/search?q=jQuery逆引きマニュアル+:+Webデザインの現場で役立つ基本と実%
- 3 http://www.google.co.jp/url?sa=t&source=web&cd=14&ved=0CC0QFjADOAo&url=http://d.hatena.ne.jp/m-prog/20110407/1302146463&rct=j&q=mysql-server gem&ei=0DLzTf5miPq_A_v1zekG&usg=AFQjCNE2EF_zi9OZh__yNu-TiX8dMKjFig
- 3 http://www.google.co.jp/url?sa=t&source=web&cd=2&ved=0CB8QFjAB&url=http://d.hatena.ne.jp/m-prog/20110306/1303264137&rct=j&q=アンドロイド javaを使ったヘ??%