簡単JavaScript入門
- 2017/10/22 第1版 技術書典3 頒布予定 (80P前後, 1000円)
- 2017/10/17 試供用PDF 10-17 rev2を配布しています。第二章まで載っています。
誰か売り子を手伝っていただけないでしょうか?一日中ブースにいるとトイレにいくタイミングが無くてしんどいので、お手伝いできる方いたらTwitter @erukiti にでもご連絡ください。
あと前回の経験上おそい時間だと売り切れ完売の可能性が高そうなので、取り置き希望の人はこれまた Twitter などでご連絡ください。
コンセプト
この本はJavaScript ASTの入門書です。ASTとはソースコードを扱いやすいように加工されたデータ構造のことです。ASTを操作すると、ソースコードの変更・削除・挿入や解析ができます。JavaScriptにおいてはASTは難しいものではありません。ASTを使ってお手軽にJavaScriptをハックできるツールを作ってみましょう。
本来のASTはコンパイラの内部表現に過ぎないため言語利用者の大半には縁のないものですが、JavaScriptは他の処理系とは違う歴史を持っているためASTが身近です。それはブラウザの互換性との戦いの歴史から、トランスパイル、つまりソースコードをソースコードに変換するのが一般的という特殊な事情です。トランスパイルで有名な Babel は、ECMASCript2017 (JavaScriptの最新言語仕様) や TypeScript その他をウェブブラウザ上で問題無く動作するように変換します。AST はその過程で大活躍するのです。プラグインで自由に AST を操作できますし、Babel はトランスパイラというツールであり、便利なライブラリ群でもあるのです。
また、Babel以外にも有力なASTエコシステムがあります。構造が多少違いますが、ある程度の標準仕様があること、考え方がほとんど同じです。そういった AST のエコシステムがとても成熟しているため、他の言語では考えられないくらい簡単に AST を使えて、ソースコードの解析・加工などができてしまうのです。
ところが、ASTというと「難しい」という印象をお持ちの方も多いのでは無いでしょうか?ASTはとても可能性を秘めているというのに、ほとんどのJavaScriptプログラマがASTを触ったことがないのです。分厚いコンパイラの本を読む必要もありません。是非本書を読んで、カジュアルにJavaScriptをハックしてみましょう。
対象読者
簡単!専門知識不要!
JavaScriptをハックするようなツールを書きたい、Babelプラグインを作りたいという人向けです。
難易度はなるべく低くなるようにしています。コンパイラ関係の本はゴツいものばかりなので、お手軽な同人誌として書いてみたかったのが筆者のモチベーションです。