「コーヒースクリプト?うーんあれは微妙かなー」←知り合いのエンジニア8割の意見
もう二週くらいして、いろんな人のブログをよんで、自分が極端にトンチンカンな事を言わないであろう後出しじゃんけん状態になったので、季節外れの台風で嵐吹き荒れる中、のんびりとCoffeeScriptについて書こうと思います。
皆様の人生のお役に立つ情報
http://udzura.hatenablog.jp/entry/2012/04/03/175221
こちらにとても良いまとめが有りますので、この下級プログラマの稚拙な感想文など放置して、こちらのまとめを読んでブラウザを閉じる事をお勧め致します。
私とCoffeeScript
CoffeeScriptとの出会いは忘れましたが、最近iPhone向けのウェブアプリ(HTML+JSでほぼすべて動作して、Web sql databaseにデータを保存し、必要な時にサーバとJsonでやりとりする感じ)をCoffeeScriptをつかって書きました。
まあ、書いたけど、そんなすごい書いてる人ではないです。
あと、言うと全員にDisられるのであんまり言わないんですけど、coffee-script.jsをつかって*.coffeeのままページに埋め込んでます。パフォーマンス?大差ないよ!*1
先取りオチ、私のCoffeeScriptに関する感想
そろそろ「すげー!」っていわない程度には飽きたし、まわりでDisってる人が大量にいるからそろそろ止めようかな…。
私がCoffeeScriptの長所だと思う所
クラスベースで良い感じに書ける
私がCoffeeScriptつかった理由の4割はここですね。
タイプ数が少ないってのも勿論ありますけど、最初はこれでした。this周りがそれなりになるし…。
でも、クラスベース言語ってわけではないので、妙な所でハマるので、完璧ではない…。
それでも、モデル的な事を書き出したら、クラスベースじゃないと辛いじゃないですか、普段書いてる言語とにた感じで書きたいですよ。
タイプ数が減るのはすばらしい。
3割くらいこれですかね、()->いいよね。JSらしい(と言われている)関数をガンガンつくって行く、という書き方ができる。
あと、@ね。クラスベースで書き始めたら大量のthis.(またはself.)を書く事になりますし、@は重要です。
typeofとかundefinedとか大量に書かなくてもいいのも勿論です。手抜きして、後で泣かずにすむ。
かっこいい!!
CoffeeScriptとか、なんかコードみててもスマートだし、かっこいいじゃないですか!!
(あれ…こんな意見…YAMLが流行ったときも…見た事が…あるような…)
私がCoffeeScriptの欠点だと思う所
ネイティブデバッガがない
「source matchがくれば!」とかいわれてますけど、Dartniumみたいにネイティブなものが出てこない限りはいつまでもこの問題はついて回るんじゃないですかね。
コンパイル前のコードでエラー出されても、コンパイル後のコードはやっぱり見る必要がありそうですし。
エディタ環境がイマイチ
私はコードをIDE*2で書くんですけど、補完もジャンプもないとやっぱり辛い感はありますね。
うっかりオートインデントや、インデント整形やると一発でコードがオシャカになることありますし(そしてわかりづらい!!)、超怖い。
この辺りいつか改善されるかなーって思ってますけど、まあ改善されないんじゃないかな感すごい。
周りからDisられる
これは半分冗談ですけど、PHPを使ってるときみたいな、「なんでCoffeeなの?」みたいな空気がありますね。
私はPHPerなのでDisられるのはWelcomeなんですけど、普通の人は自分がつかってる言語にイチイチへんなケチが付くのは嫌なんじゃないですかね。
ただ、これは「空気」の話しでして、著名なロックスターがガッツリCoffeescriptをステマしたら空気消えるでしょうね。
仲間がいない
上の項目ともかぶるんですけど、CoffeeScriptを書ける人ってあんまいないんですよね。
喜んで書く人に至っては、もっとすくない。自分だけが書くコードならいいですけどね。
一人で書いてる物ならいいんですけど、大勢で書く時につかえないですからねえ…。
コンパイルが面倒
上級者の皆さんは、もうこんな事で悩んでないと思うんですけど、ちょっとしたバグをJS上で直した後でCoffee直して、さらに〜ってすごい面倒なんですよね。
ちょっとしたバグを直すのが自分の席ならいいんですけど、出先でちょちょっとログインしてvimで直すともう大変ですね。
Coffeeそのまま読み込ませている理由の7割はここです。なにが最新か分からなくなる。まあ私が悪いんですけどね。
Dartとかあるじゃn(検閲削除)
(検閲削除)
本音をまとめると
「まだまだCoffeeScript書いててたのしいけど、相変わらず凄い人達会話ではDisられ放題だし、たしかに段々デバッグ面倒になってきたし、まあJSでもコードかけない事もないし、そろそろ封印しようかな…。rails界隈の人は宗教上の理由からこれからガンガンやるみたいだし、まあ時期を見て戻ってこようかなー。しばらくはDartで遊ぼう!」