なるべく怠惰にWebサービスを作りたい件[前編]

一人で趣味でWebサービスを作る時、Node.jsを選択すればサーバもクライアントもJavaScriptで書けるわけですが、
JavaScriptコンパイルできる言語はいくつかあり、
特に静的型付けを必要としなければ、CoffeeScriptは第一候補に入ってくるでしょう。
CoffeeScriptは言語仕様にpythonとかrubyの流れを取り入れており、個人的にはすっきり書けて好みです。
素のjsをある程度きちんと知っていれば、困ったらコンパイル後のjsのコードを読めばそう嵌ることもないです。

そこまで大きくないプロダクトを一人で作るとき、次のような事柄を重視したいと僕は考えています。

  • DRY (Don't Repeat Yourself)
  • CoC (Convention over Configuration, 設定より規約)
  • Laziness, 怠惰

1つめと2つめについては、僕は語れるほどの実力を持ち合わせておりませんので、3つめについて注釈を付け加えると、
僕のプログラマー観は怠惰であることを美徳であるとしていて、(アルバイトでお世話になった方の考えの影響が大きいのですが)
なるべくプログラムは短く書きたいし、不必要にタイプを打ちたくない。

ただし矛盾しているようですが、怠惰であるために努力するのはOKだと思っています。
要は、プログラム全体で書く行数を減らすために、基幹部分のソースを頑張って書く。

まあ、CoffeeScriptを使おうとしている時点でそうです。単にjsで書いた方が、正直いろいろめんどくさくないです。
そこをあえてCoffeeScriptを選択し、jsへのコンパイルだとか何だとかの自動化を頑張る。
今作っているものがどっちが早く作れるかだったら、jsで書いた方が早いでしょうが、それはそれです。

前どこかで見た話で、30分かかる単純作業があるとき、それの自動化に1時間かかるなら迷わず行うべきだ、というのがありましたが、この考えと似ています。
30分の単純作業からは何も生まないが、自動化に費やした1時間は確実にプログラマーとして血肉になっているという発想です。

さて、CoffeeScriptを利用してサーバ・クライアントのコードを両方書いているうちに、ある程度形になりそうなものもあるので、
熱いうちに文書化して、冷めた頃に見返してみたいと思います。 (以上前置き)

※偉そうなことを書いていますが中の人は新卒1年目のへっぽこですので、いろいろと指摘して頂けると嬉しいです。
なおNode.jsを選択する理由はjsだからでもイベントループモデルだからでもなく、
WebSocketを利用したリアルタイムWebがやりたいからです。