JavaScript本

技術評論社から昨年秋頃発売になった本「パーフェクトJavaScript」を読みはじめました。本の題名や表紙デザインが俗ぽっくて、初心者向けの印象をうけましたが、内容は充実していると思います。とくにJavaScriptの動きは早いのでNode.jsなどの記述もあり重宝します。

いまいちなのは、難しい部分になってくると、繰り返し屁理屈のような記述が多くなり(はじめから読んでいる人にはうんざり)、重要な部分がぼやけてしまっている点です。難しい部分なので宗教論うんぬんよりも、素直に説明を書いて後でコラムなどでまとめて欲しかった気がします。
またjavascriptは凄いし、メジャーだからやらないと損するよなどと脅迫的な部分がある気がします。ボクはjavascriptは創世記的な言語という気がします。とにかくトリッキーな部分が多い(イディオム)。例えばdartのほうが利点を感じます。言語仕様がシンプルかつ自然なためです。時勢もそれを望み始めているのではないかと思います。それを防ぐためにjavascriptは大きな変革が間近な気もしているので(5版が出たとしてもproperty attributeなどが書きにくい)、なおさらそう目につきました。

いろいろな意味でDavid Flanaganのサイ本は必要だと思います。しかし、現時点では第6版の日本語がないため、買いにくい書籍になっています。技術書の英語がよめるならば、英語版を入手するほうがいいかもしれません。1000page以上ありますが、そのうちリファレンスが300pageぐらいあります。 各文書は英語らしく明確でわかりやすいと思います。Server-side JavascriptはRhino(当たり前かw)とNodeについて短めですが書いて有ります。

仕上げにJavaScript Patternsがあればいいでしょう。  javascriptのベースはしっかりし、頭が言語になじんできます。 いまのところjavascriptの本では一番好きな本です。その後は現実的なJQueryやNode.jsのソースを読んでいく流れがいいと思います。尚、JavaScript The good partsも良書だと思いますが、残念ながらECMAScript5が出来る前のため、そのことが考慮されていませんので多少混乱します。改正版が待たれます。その他、上の3冊は考慮されています。
その他、参考:Google JavaScript Style Guide

http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml


http://cou929.nu/data/google_javascript_style_guide/



パーフェクトJavaScriptの中で使われているmsjsをインストールするには(Linux版)
SodierMonkey(ECMAScript第5版に準拠 Javascript1.8.5)
https://developer.mozilla.org/en/SpiderMonkey
Release note
https://developer.mozilla.org/En/SpiderMonkey/1.8.5

Build 方法

cd js/src
./configure
make

実行方法
./js

これでsmjs(Javascript1.8.5)が試せる。

Ubuntuの場合、尚、将来Node.jsやRhino(共に独自のjsコマンドが有)を試したいことを考えれば本書のように~/bin/にln -sでsmjs作ればコンフリクトもなく便利

P.S.1
Googleのv8のshellは矢印キー上下のhistoryがないので不便、標準の意味を込めてsmjsのほうがいいか。ただし、v8ではUTF-8の漢字文字が正常に表示される長所もある。
これを使うならばGoogle Chrome上でControl+Shift+Jでコンソール表示し、利用したほうがいいかも。
P.S.2
sudo apt-get install rhinoでもjsをインストールできるが、こちらはあくまでjava上の/usr/bin/rhino。java上でjavascriptを動かすため、多少重さを感じる。またJavascript1.7である。

試したのはUbuntu11.10。


$ cat /usr/bin/rhino
#!/bin/sh


JAVA_CMD="/usr/bin/java"
JAVA_OPTS=""
JAVA_CLASSPATH="/usr/share/java/js.jar:/usr/share/java/jline.jar"
JAVA_MAIN="org.mozilla.javascript.tools.shell.Main"


## Fix for #512498
## Change Bootclasspath when using OpenJDK because OpenJDK6
## bundle his own release of Rhino.
## References:
## <https://bugs.launchpad.net/ubuntu/+source/openjdk-6/+bug/255149>
## <http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=179>
## <http://www.openoffice.org/issues/show_bug.cgi?id=91641>
isOpenJDK=`$JAVA_CMD -version 2>&1 | grep -i "OpenJDK" | wc -l`
if [ $isOpenJDK -gt 0 ]
then
JAVA_OPTS="-Xbootclasspath:/usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar"
fi




$JAVA_CMD $JAVA_OPTS -classpath $JAVA_CLASSPATH $JAVA_MAIN "$@"



コメント

このブログの人気の投稿

日本でコンピュータサイエンスを学ぶ難しさ

UML tool Dia