気まぐれメモランダム / でたらめフィードバック

久野靖『入門JavaScript(My UNIX Series)』 - ソフトウェア技術書温故知新(その1)

公開: / 最終更新日:

諸般の事情により業務の学習で購入した書籍を整理することになり、けっこうな量をチャリポン経由で処分しました。しかし中には内容が out of date になっていても愛着があって手放せないものもあります。またそれらを見ていたら以前処分した本のことなどもいろいろ思いだしたりしました。そこでせっかくなのでいくつかを何回かに分けて紹介したいと思います。題してソフトウェア技術書温故知新、第一回はこちら、2001 年に出版された久野靖『入門 JavaScript(My UNIX Series)』(株式会社アスキー)。

https://www.amazon.co.jp/入門-JavaScript-My-UNIX-久野/dp/4756138713

2001 年と言えば Netscape 6 の時代、Chrome 登場のはるか前。JavaScript はすでにブラウザで動作する標準言語としての地位を確立し、Windows は Active Scripting によって互換言語の JScript がコマンドプロンプトのバッチよりも高度な(しかし記述が面倒な)スクリプティング(Windows Scripting Host)や Web サーバーのサーバーサイド処理(Active Server Pages, ASP)を可能としていました。とはいえマイクロソフトが VBScript を対抗として打ちだしていたくらいなので JavaScript の言語ポテンシャルがいまよりもはるかに低く見積もられていたことはまちがいありません。
 そんな状況の中で出版されたのがこの本。日本語で書かれた JavaScript の本で言語仕様を正面から取りあげ、解説は簡潔にして的確、200 ページ強のコンパクトさでありながらオブジェクト指向プログラミングにまで言及するものは私の知るかぎりではこれがはじめてでした。クラスベースのオブジェクト指向言語のことしか知らなかった身としてはプロトタイプベースのそれは奇妙に思えましたが(*)、いま思えばこれは単に私のほうの知識が足りなかったため。その違和感を除けば、JavaScript でもオブジェクト指向プログラミングができることに興奮したのを覚えています。

(* その後 JavaScript もクラスベースの構文が標準になっていくわけですが、プロトタイプベースの可能性を突き詰めていく手もあったんじゃないかとは思わないでもありません)

ちょうどそのころ業務で Windows Server(IIS + SQL Server)で Web アプリケーションを作成する案件があったので、これ幸いとばかりに ASP(ASP.NET ではありません) + JScript(JavaScript でも JScript.NET でもありません)でオブジェクト指向プログラミングを前面に押しだして構築したものです。なにしろ当時 MS はWindows DNAなどと言ってビジネスロジックは COM または SQL Server のストアドプロシージャで記述せよなどとのたまっていたわけですが、誰が COM でオブジェクト指向プログラミングを好き好んでやりたいものですか。渡りに船とはまさにこのこと。
  JScript の非互換性のせいか継承まわりですこし苦労しましたが(これは私のほうで「継承よりもコンポジション」が身についてなかったせいもあります)、それ以外では JavaScript をオブジェクト指向言語として使うことの固有の困難はなかったと記憶しています(通常のシステム開発の苦労はもちろんありました)。いまとなっては知る由もありませんが、サーバーサイドで JavaScript をオブジェクト指向言語として利用したケースとしては日本ではかなり早期の部類になるのではないかと思います(<-自画自賛)。その後 ASP.NET が登場してサーバーサイドで JavaScript を利用するメリットは当面なくなるわけですが。

いまでは JavaScript によるオブジェクト指向プログラミングは誰でもあたりまえに行っていることでしょうし、初期 JavaScript(ECMAScript)を対象にしているのであらためて読む価値はあるとは言えません。でももし手に取る機会があったとしたら、当時の状況におけるその先進性に思いを馳せてもらえればと思います。

なお著者の久野靖氏のことはなぜか職場にあった雑誌『bit』のバックナンバーの記事で存じていました。研究室の学生が卒業研究で OS を CLU で作る話の第一回で、プロジェクト管理的な部分まで含んでいたため業務にも参考になりました(CLUって何? というレベルでしたが)。

関連コンテンツ

Pick up work

最近のエントリ

アーカイブ

ブログ情報