開始征戰CoffeeScript
最近在用clojurescript做游戲,感覺整個項目使用了很多工具來編程,但是在效率及管理上都方便很多,整個項目的發布都是通過腳本自動實現的,降低了發布過程人為因素的影響。而在項目代碼方便,大大提高了可維護性。但是對于普通的web項目來說,感覺用clojurescript有點不太合適,因此這段時間研究下coffeescript,來提供項目開發效率及代碼的維護性。

什么是CoffeeScript?
CoffeeScript 是一門小巧的語言,會編譯為 JavaScript 。它的語法風格受到了 Ruby 和 Python 影響,很多特性都借鑒于這兩種語言。
為什么選擇CoffeeScript?
不少JavaScript社群,包括JavaScript的之父Brendan Eich,也對它贊譽有加,有社群及大神的背景,加上Rails 3.1之后會把CoffeeScript編程預設支援,而對于我來說,選擇它的原因是可以使得代碼可讀性更高,而且代碼更加簡潔,提高程序的效率。而在語法上跟clojurescript有點類似。
優缺點
優點
- 程序變得更簡潔,更容易閱讀,即使是以OOP的方式來寫js,語法看起來也相當清楚。
- 經過CoffeeScript編譯出來的JavaScript,它在編譯的時候做了優化,使得程序能夠達到最佳的性能。
缺點
- 你可能得花上很長時間來學習一門新的語言,而他的語法更我們傳統的編程語言有很大的不同。不過如果你熟悉Python或Ruby的話,那就可以在短時間內上手。
FAQ
Q: 學CoffeeScript就可以取代一般的JavaScript嗎?
A: 也許可以取代,但這不代表你就不用學JavaScript,如果你不熟悉JavaScript是怎么一回事,你應該也不知道你要拿 CoffeeScript來取代什么東西。最一開始也提到,CoffeeScript就只是JavaScript而已,所以原本該花時間在學習 JavaScript的,不會因為CoffeeScript而省下來的。
Q: CoffeeScript聽說要編譯成*.js檔才能用?
A: 是的。但如果你不想編譯,透過在瀏覽器里直接引入compiler也可以讓瀏覽器看得懂*.coffee,只是實際上還是會把編成*.js檔。 BTW, CoffeeScript的compiler本身也是用CoffeeScript寫的,自己寫自己,這點光是聽起來就很酷。
Q: 改用CoffeeScript的話,是不是之前寫的JavaScript都得整個打掉重寫?
A: 也不用啦,CoffeeScript的目的并不是取代原來的JavaScript,而是用更簡單、清楚的語法來寫JavaScript, 所以原來寫好的就留著吧,除非你也覺得寫得不好,加上手癢想練功。而且如果你想在CoffeeScript里直接使用一般JavaScript的語法也是可以的,CoffeeScript可以讓你把一般的JavaScript語法embed在CoffeeScript里。