読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

"Smooth CoffeeScript"


Eloquent JavaScript: A Modern Introduction to ProgrammingCoffeeScript版です。他のプログラミング言語の知識を前提としない形で書かれており、初めてプログラミングをしてみようという人にも読めるようになっていますが、関数プログラミングや探索、オブジェクト指向正規表現とプログラミング経験者も満足いく良書と感じました。


豊富な実例による本文も素晴らしいですが、著者が選定したpreludeライブラリが素晴らしい。関数型ライブラリUnderscore, HTMLマークアップCoffeeKup, サーバーサイドWebSockets ws, Quick-Checkテストライブラリ qcで構成されていて、CoffeeScript + preludeはまるでRubyHaskellのいいとこ取りしたような言語に見えます。

ここ最近、JavaScriptRubyHaskellを行ったり来たりしているので、CoffeeScriptこそ未来のプログラミング言語に見えてきました。


2週間ほど前に初めてプログラミングしてみようという高校生と一緒にプログラミングしてみました。どの言語にしようかとあれこれ眺めて、HSPを使いました。
変に思われるかも知れませんが、繰り返しを説明するのにgoto文を使わずに、for/whileを説明する自信がなかったんです。さらに、再帰とか数学的帰納法なんて口に出した瞬間、興味失う子が多い気がするし。

今ならCoffeeScriptで行きますね。goto文はないですが、loop文があるので。while trueと一緒?。一緒ですけど違います。条件判定がない。そこが説明しやすいと勝手に思っています。


入門しやすくて、オブジェクト指向関数プログラミングまで行けて、JavaScriptと見れば普及率の面での実用性も問題なしですから、こんなに素晴らしいことはありません。


RubyHaskell風の関数プログラミングをしようとするとちょっと辛かったりします。
CoffeeScriptも同じような辛さがあるかもしれませんが、その辺りが体感できるまでしばらくCoffeeScriptでプログラミングしてみようと思いました。