CoffeeScript是使用Ruby编写的编程语言,旨在通过简单的编码方式让开发者在Web应用中生成并使用JavaScript代码。CoffeeScript融合了Ruby的简洁和JavaScript的灵活,让开发者通过简单易读的语法来撰写逻辑规则。CoffeeScript编译器负责将代码逐行解释为等效的JavaScript程序,并保证生成的JavaScript代码与源代码在逻辑结构上一致。
较之JavaScript语法,CoffeeScript在语法设计上更为严谨。为了让代码看起来更加简洁精致,CoffeeScript使用空格缩进而非大括号来进行代码段分隔。开发者可以在CoffeeScript编程中调用任何已有的JavaScript类库,并能够与类库实现无缝集成。经编译生成的JavaScript代码,具备良好的版式和可读性,相比较开发者手写的JavaScript代码具备同等或更优的执行效率。
CoffeeScript翻译器是使用CoffeeScript语言本身编写,能够在编译的时候格式化JavaScript代码,这一点在CoffeeScript官方站点上也有所体现。站点为开发者提供了交互式的CoffeeScript在线编译环境,开发者在一侧敲入CoffeeScript代码的同时,代码被实时解释为对应的JavaScript程序,并可随时在浏览器上运行验证。
CoffeeScript自2009年12月份诞生以来,经历了一年多开发完善,前不久刚发布了1.0版本。在新版本中,CoffeeScript改进了循环体结构,并提供了简便的闭包实现。为了方便Java开发者使用,CoffeeScript还提供有一个被称作JcoffeeScript的Java类库,让CoffeeScript代码能够在Rhino环境中编译。Rhino项目由Mozilla基金会赞助,完全使用Java语言开发了JavaScript引擎,以便嵌入在Java应用中为用户提供脚本支持。
此外,CoffeeScript的拓展开发资源也很丰富CoffeeScript的方言Coco项目,在牺牲CoffeeScript代码可读性的同时,让CoffeeScript语法变得更为高效和实用,以便于应用的快速开发。在CoffeeScript的编码支持方面,Vim CoffeeScript项目为使用Vim文本编辑器的开发者提供CoffeeScript语法高亮显示,同时为开发者提供CoffeeScript代码缩进支持。
目前已有不少Web开发项目开始使用CoffeeScript生成的JavaScript来构建站点。比如提供各种新技术资讯的arstechnica.com站点,在其推出的iPad应用中,就是使用HTML和CoffeeScript为读者提供前端展示。37Signals发布的iPad白板应用Chalk也是使用CoffeeScript编写,并且能够借助Cache Manifest实现应用的离线运行。运行在浏览器端的坦克大战游戏Orona同样借助CoffeeScript实现。此外,另有有趣的站点使用CoffeeScript和JavaScript的矢量图形库工具Raphaël来演示如何随即生成各式各样有趣的图案。
本文曾发表于《程序员》杂志-2011年03期”程序天下事”栏目。