読者です 読者をやめる 読者になる 読者になる

smellman's Broken Diary

クソみたいなもんです

Emacs実践入門 ~思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

book

技術評論社の池田様から献本をいただきました。
id:tomoya こと、とんさんが書いた「Emacs実践入門 ~思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)」です。
個人的には非常に出版が楽しみにしていた本で、Amazonで予約販売開始したのを見つけた瞬間に速攻カートに入れて購入したぐらいです。
本書の紹介の前にちょっとだけ僕の関わりを言うと、技術評論社の池田様にとんさんを紹介したのが僕でした。
とんさんが例のごとく両国に来ているというので両国にあるポパイというビールがおいしいお店で飲んでいた時に雑誌でEmacsの記事を書かないかと打診したのが僕でした。
当時、僕はEmacsを(高校の頃のMeadowを含めると)10年以上使っていたのにも関わらず、いつも設定で破綻してしまい環境をリセットしてしまいわりとデフォルトでも使えるじゃんとかいう感じでいたんですが、今の会社に入ってから周りがVimユーザばかりで僕もVimに慣れてしまってEmacsは日常的なエディタという位置から動かなくなってしまっていました。
そんな時にチャット友達であったとんさんがどんどんEmacsで面白い記事を書いていて、もしかするととんさんがEmacsの記事を書いたら僕のスパイラルは脱出できるかもと思いたち、結構強引にお話をしました。
というか、「俺のためにEmacsの記事を書いて欲しい」ぐらい言ってた気がします。なんか冷静に考えると告白みたいだなこれw
そんなわけで、紹介してからWEB+DB PRESSの特集として掲載されたときはマジでうれしかったです。もちろん、その記事がきっかけで無事スパイラルから脱出することができました。
とんさんは僕にとってEmacsの救世主です。さらに本を出版されると聞いたらテンションあがりますよね!
まぁ、そんなムダ話は置いておくとして、本書を読んだ感想を書きたいと思います。(ちなみに、読みきるまでかかったのは通勤一往復と帰宅後数分ぐらいでした。実質二時間ちょいです。)
本書は紛れも無くEmacsを使いたいと思っているエンジニアにお勧めできる本です。
エンジニアというところがポイントです。エンジニアはコード以外にも日常的にドキュメントなりを作成したりしますが、本書で想定されているターゲットはまさにそこです。コーディング以外にも使えるテクニックがかなり紹介されていて読みながら「あーこのやり方欲しかった!」の連続です。
そして、「実践入門」とあるように入門書として非常に素晴らしい出来です。
なぜならEmacsLispの説明については必要最低限なものだけを抑えた上で設定の仕方を説明していて、初心者に非常にやさしい作りになっています。
個人的にうれしいのが後半の記述で設定を評価してっていう説明の時に「(末尾でC-x C-eでしたね)」(p.202)とさり気なくそろそろ忘れてそうな思い出させてくれたりするところです。
他にも、短形選択では標準のを使わずにcua-modeを使う方法を紹介したり、etagsよりもGNU GLOBALやctagsの方をメインにしたりと、いわゆるありがちな素のEmacsを紹介するのではなくとんさんの視点で便利だというものを選んでいるところなんかも読んでてうれしいポイントでした。
そして、ただの入門書ではないと感じさせられるのがEmacs Lisp Package Archive(ELPA)の導入と実際にそれを使ったパッケージ導入例の多さ、そしてanythingを使い方へのこだわりです。僕は前者に至っては知らなかったレベルだし、両方とも早く導入したいと感じるもので非常に勉強になった。anythingはある程度カスタマイズしていたけど、やっぱりとんさんすごいわー
本書を通して強く感じたのは「環境としてのEmacs」というよりも「エンジニアが日常的に使う環境としてのEmacs」とイメージです。この視点が非常にありがたいです。よくありがちなgnusの設定とかも無いしね(昔の入門本ってこんなんだったよね...)。
そして最後のページにネタを用意してくれていたのが最高にうれしかったです。とんさんらしさ全開ですね。
全体を通して、またとんさんにEmacsを学び直させていただいたという感じです。本当にすばらしい本をありがとう!Amazonで購入したのは同僚のEmacs使いに渡しますw

Emacs実践入門 ?思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

Emacs実践入門 ?思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)