« ココログの右サイドバーを隠すJavaScript試作版 | トップページ | ココログの背景色を変えるJavaScript v02 »

2013年6月24日 (月)

David Flanagan「JavaScript 第六版」オライリージャパン 村上列訳

 本書は、JavaScript 言語と、Web ブラウザが実装する JavaScript API を学習するためのものです。少なくとも何らかのプログラミング経験があり、JavaScript を学びたい読者と、すでに JavaScript を使っているけれども JavaScript への理解を深め、 JavaScript 言語と Web プラットフォームを本当に極めたいプログラマ向けに書かれています。

【どんな本?】

 Web 環境には欠かせないプログラミング言語となった JavaScript の、最も本格的な解説書。おなじみ O'Reilly の例に漏れず、この本も網羅的かつ本格的で、文法や言語仕様を原理から説明する理論的な構成であり、「手っ取り早く動くモノを作りたい」人には向かない。が、後半ではプロに必須の JQuery や XMLHttpRequest に章を割くなど、開発の現場で必須な情報の糸口も充分に紹介しており、職業的に JavaScript を使いたい人には必読の本だろう。

【いつ出たの?分量は?読みやすい?】

 原書は JavaScript : The Definitive Guide SIXTH EDITION, by David Flanagan, 2012。日本語版は2012年8月15日初版第1刷発行。単行本ソフトカバー横一段組みで本文約788頁。8ポイント48字×38行×788頁=約1,43,7312字、400字詰め原稿用紙で約3594枚。長編小説7冊分の大ボリューム。

 O'Reilly の本にしては、日本語は比較的にこなれている部類だろう。問題は、内容のレベル。詳しくは後述するが、少なくともプログラミング初心者向きではない。

【構成は?】

  訳者まえがき/はじめに
 1章 JavaScriptの概要
第Ⅰ部 コアJavaScript
 2章 字句構造
 3章 型、値、変数
 4章 式と演算子
 5章 文
 6章 オブジェクト
 7章 配列
 8章 関数
 9章 クラスとモジュール
 10章 正規表現パターンマッチング
 11章 JavaScriptのサブセットと拡張
 12章 サーバーサイドJavaScript
第Ⅱ部 クライアントサイドJavaScript
 13章 Webブラウザに組み込まれたJavaScript
 14章 Windowオブジェクト
 15章 ドキュメントの制御
 16章 CSSの制御
 17章 イベント処理
 18章 HTTPの制御
 19章 jQueryライブラリ
 20章 クライアントサイドストレージ
 21章 メディアとグラフィックスの制御
 22章 HTML5 API
  索引

 第Ⅰ部はプログラミング言語としての構造や原理をじっくり解説する。第Ⅱ部は、大きく分けて2種類に分かれる。一つは実用的な内容で、ドキュメントやプラウザの制御・イベント処理・便利で普及しているライブラリなど、今すぐに必要なモノで、19章まで。もうひとつは、将来的にブラウザがサポートする予定だが、現在はまだ不安定な、未来的な機能の紹介。

【感想は?】

 最初にお断りしておく。私はプロとして JavaScript を使っているわけじゃない。プロとして使う場合、おそらく最も大きな問題は「ブラウザなどクライアントの環境により使える機能や動作が変わる」ことだろうが、その点について私は全く判断能力がない。また、最新のライブラリについてもほとんど知らないので、その辺についてはご期待に添えない。つまり、あまり信用のおけない評価者である事をご了解願いたい。

 まずは、この本の想定読者。以下の条件を全て満たす人が対象。

  • HTML と CSS を知っている。テキスト・エディタなどで文字の色を変えるタグを埋め込む程度の事はできる。
  • プログラミング経験がある。継承が使える程度にオブジェクト指向を知っていて、「変数のスコープ」や「無名の関数」が出てきてもビビらない。
  • コマンド・プロンプトや Terminal で HTTP リクエストを送受信できる程度には TCP/IP や HTTP を知っている。
  • 「本に書いてあるからといって実装されているとは限らない」と割り切れる。

 「手軽に使える JavaScript でプログラミングを覚えたい」とか、「動くモノを手っ取り早く作りたい」と考える人には、向かない。著者は、恐らくこんな使い方を想定している。

  • ある程度のプログラミング経験があり、かつプログラミング言語の構造を知っている人が、JavaScript の言語構造を学ぶために熟読する。
  • 仕事で JavaScript を使う人が、聖書代わりに机に置き、折に触れて参照する。
  • 見栄を張りたい人が、これ見よがしに本棚に並べて見せびらかす。

 目次では、いきなり「字句構造」や「型、値、変数」なんてのがダラダラと続く。これを見て「ああ、そういう本なのね」とピンとくる人向けだ。全部を一気に熟読できるほどヒマな人は滅多にないだろうから、基本的な読み方はこんな感じだろう。

  1. まず、全体を軽く流し読みする。c や java の経験がある人は、字句構造などはパラパラとめくる程度で充分だろう。意味が分からない部分があったら、「後で読む」印として付箋をつけておく。「どうやっているか」より、「何ができるか」を重点的に読む。長いサンプルコードは飛ばす。
  2. 人によっては試したくなってウズウズするかもしれない。が、この時点でいきなりコードを書き始めると、大抵は時間の浪費に終わる。実際に浪費した私が言うんだから間違いない←をい
  3. 必要になったら、関係ありそうな部分をじっくり読み返す。大抵はアチコチをめくり返しながら読み返す羽目になる。

 いやホント、どれだけ時間を浪費したことやら。私が数時間かけて書いたコード、jQuery だと1行で済むんだもん。でも、書いてる時は楽しかったから、まあ、いっか。

 所々にある軽いコラムが、意外と使えるのも、この本のいい所。JavaScript はクロージャを使いこなすとカッコいいんだが、アセンブラでスタックを弄ってたような人だと、かえってクロージャはわかりにくい。その辺をp195で解説してくれてる。また、p414のコラム「<script>要素中のテキスト」では、かつてのBASIC小僧なら「DATA/READが出来るじゃん!」と感激するだろう。

 分量が多いんで、一気に読むのはさすがにしんどい。全般としては面白いし役に立つ本で、JavaScript の日本語資料としては最高峰だろう。コード中の注釈も日本語に訳してある心遣いも嬉しい。その上で、敢えて幾つかイチャモンをつけてみる。

  • サンプル・コードが豊富なのはいいが、全てのフォントが同じなのは辛い。予約語やライブラリ提供のメソッドなど「ユーザが勝手に綴りを変えられないモノ」と、変数名などユーザが定義したシンボルはフォントを変えてほしい。
  • O'Reilly 本にありがちなのだが、例えばクラス定義の方法が複数出てくる。ちゃんと読めば、説明の手順として必要なのはわかるが、「コノ方法がオススメ」みたく「著者が好む書き方」をハッキリと示してもいいんじゃないか。

 読み終えて実際にコードを書こうとすると、「JavaScript リファレンス第6版」が欲しくなるし、見栄えのいいサイトを作るには「CSS 完全ガイド第2版」は必須。DOM(Document Object Model)も理解せにゃならんし、jQuery も使いこなしたい…などと考えると、本棚がドンドン埋まっていく。今のプログラマは大変だなあ。

 この本では動作検証用の環境として Firefox を勧めている。私も Firefox を主に使っているが、chrome も試してみる価値あり。しつこいバグに悩んだら、開発環境を変えるのも一つの方法。最後に「この本を読んで何ができるか」を示しておこう。ここ数日頑張って、なんとか出来たのが次の記事

【関連記事】

|

« ココログの右サイドバーを隠すJavaScript試作版 | トップページ | ココログの背景色を変えるJavaScript v02 »

書評:科学/技術」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/201750/57638589

この記事へのトラックバック一覧です: David Flanagan「JavaScript 第六版」オライリージャパン 村上列訳:

« ココログの右サイドバーを隠すJavaScript試作版 | トップページ | ココログの背景色を変えるJavaScript v02 »