ポエム
歴史

「今後必要になるプログラム言語」を読むに当たって

今後必要になるプログラム言語を読む前提知識

時代背景と当時の知識がないと読むのが非常に難しいので、僕の知っている範囲内の前提知識を書いておこうと思います。

当時の背景

当時というのは、ここでは 2000 年前後の Java 黎明期を指します。
僕個人で言えば PostPet 2001 などの開発に携わっていた頃のことです。

この少し前にインターネットの世界ではウェブブラウザが誕生しました。
そして、元々はセットトップボックス用に開発された言語 Java (Oak と呼称されていた)も開発されていました。

誕生間もない Java と誕生間もないウェブブラウザが出会うのは必然だったかもしれません。
この2つが出会ったことで、ウェブブラウザ上に動的なコンテンツを表示する Java Applet という技術が誕生しました。

Netscape Communications と Sun Microsystems

次に、Java とウェブブラウザを作っていた企業の話です。

Netscape

Netscape Communications は Netscape というウェブブラウザを開発していました。
後に AOL に買収され Mozilla へ繋がって行く企業です。

Sun Microsystems

Sun Microsystems はワークステーションや CPU, OS を作るなどコンピューター全般を業務範囲とする企業で早くからインターネットに注力していました。
この Sun がセットトップボックスという新しいハードウェアを作るに当たって生み出されたのが Java です。
Sun は後に Oracle に買収され Java も Oracle が所有します。

LiveScript

Netscape はその頃自社のブラウザで動作する動的コンテンツ環境を実現するために LiveScript というスクリプト言語を開発していました。
このとき、Netscape と Sun は業務提携していた関係もあり LiveScript を JavaScript という名称に変更しました。
当時から Java Applet との連携が考えられていたのかもしれません。

Java Applet と JavaScript

Java Applet と JavaScript は以下の2つの事象によって結びつきます

  • Ajax 以前の世界では、JavaScript 単体でサーバと通信するプログラムを作るのが難しかった
  • Java Applet も awt などで構成されていたため GUI 構築が煩雑で面倒だった

この解決をするために HTML + JavaScript + Java Applet という仕組みが考案されました。

技術名 役割
HTML 文書
JavaScript UI の構築
Java Applet Java が用意する豊富なライブラリへのブリッジ(UI 構築には使っていない)

この仕組みを使ったウェブページが主に官公庁系 SIer によって量産されました。

動的データの取得方法

Java Applet を用いた通信のため Java Servlet を使うのが一般的でした。

具体的には

  1. JavaScript から Java Applet の機能を呼び出す
  2. Java Applet は Java Servlet にアクセスする
  3. Java Servlet は SQL を使って DB にアクセスし、データを Java Applet に返す
  4. Java Applet はデータを JavaScript に返す
  5. JavaScript は、そのデータを使って UI を構築する

という流れです。

こうしてみると、著者が Java を前提にし、JavaScript と Java を混同(JS から Java のライブラリを呼べるので)し、それ以外をサブルーチンと呼ぶ意味がわかるかと思います。.
また、突然 SQL が言語欄に出てくるのも自明です。

まとめ

あの記事は HTML + JavaScript + Java Applet + Java Servlet を使う Java 黎明期の知識がないと読むのが難しいと思います。
恐らく、この辺りで時代が止まっている物と思われます。
MSDN が C++ と主張しているのも、この時代にはまだ C# が無く Win32 API のオンライン・リファレンスな意味合いが強かったため、と思われます。

これらを頭に入れてから、もう一度読んでみてください。
…やっぱり全然わかりませんね!!

追記
コメント欄はわりかし読めるようになってるかも

追記2
元記事はアカウント停止で読めなくなったようです