(define -ayalog '())

括弧に魅せられて道を外した名前のないプログラマ

JavaScript: The Good Partsを読んだ。

読みました。昔から苦手意識のあったJavaScriptだけど、この本を読むことによって面白い言語だなって思えるようになりました。
HaxeとかTypeScriptのようなaltJSだと、JavaScriptを勉強する意味があるのかわかりませんが、CoffeeScriptを書くなら普通にためになると思います。

とりあえず、さらっと目次紹介。

1章 良いパーツ
2章 文法
3章 オブジェクト
4章 関数
5章 継承
6章 配列
7章 正規表現
8章 メソッド
9章 スタイル
10章 美しい機能たち
付録A ひどいパーツ
付録B 悪いパーツ
付録C JSLint
付録D 鉄道ダイアグラム
付録E JSON

てな感じです。

知れば知るほどカオスだなっていうのがまず第一。言語機能として使ってない単語とかが予約語に入ってるあたり笑えるし、ひどいパーツとか悪いパーツの話は知っておけば転ばぬ先の杖として機能するけど、それにしても良くもまあこんなにもカオスになったものだなぁと。
今まで「連想配列」だと思っていたものが、実はただの「オブジェクトリテラル」だったりとかっていうのは、JavaScriptに関する書籍を読んだこと無いしょしんしゃなので地味に驚いたです。

この本の一番の山場は僕的には3章から5章だと思っていて、あとは付録A,Bかな。8,9章は取ってつけた感が結構あって、そんなに面白いことは書いてない感じ。

この本、どういう層にオススメかというと「サイ本は読みたくないけど、実用的なJavaScriptのコードが書けるようになりたい」人にはいいかな。それでいて、何かしらプログラミング言語の経験が1つ以上あれば読める。ただ、サイ本の小さいリファレンス本は欲しいかも*1

どうでもいい話

僕はJavaScriptがずっと苦手だった。というか「苦手意識」を持っていたという方が表現としては正しくて、前職在籍中の僕にとってのJavaScriptというのは、document.getElementByIdで画面の値を取得して入力チェックをするためにあって、 変数宣言にvarをつけたり付けなかったりで意味が変わったり、関数を呼び出すときに引数の数があってなくても呼び出せたりするという不思議言語の代表格だった。Lisp触ったこともない人が「Lispは括弧が多い」といって倦厭するようなもんですね。

まぁなんというかサイ本を読まないとJavaScriptを理解することは出来ないんだと思っていたし、さすがにあんな分厚い本*2読みたくないなって思っていたのもある。それにjQueryとか使ってるコードを見ると結構カオスじゃないですか。普通に無名関数使っているし、セミコロンを入れる位置がパッと見分からないし…。

<script><!--
$(document).ready(function(){
  $('#navi > h4').click(function(){
    $(this).next().slideToggle('slow');
  });
});
//-->
</script>

それにWeb上にあるJavaScript情報って普通に素人が調べると腐った情報しか出てこなくて、体系的に学ぶというのが難しかったのもある。クラスベースの言語しか触ったこと無いというのもひとつハードルが高い原因だったかも。
まぁそんな感じだったんだけど、今はChromeデベロッパーツールもあるし、CoffeeScriptもあるしだいぶやりやすくなったなっていう気はする。今の印象は悪いとこに目をつぶれば、パワフルでいい言語だなっていう印象。生のJavaScriptは書きたくないけど。

*1:生憎持ってないけど、JavaScriptの機能とかを少し調べるのにはきっと必要

*2:第1版とかから比べると第6版めちゃくちゃ厚くなってるんですよね…