最近在用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里。