你可能听说过,今年JavaScript正在准备新版本——ES6。这个名字来源于它遵循“ECMAScript”编码标准的第六个主要版本:ECMA-262。在这个期待已久的版本中,将包含一些新功能,这将极大地有利于绝大多数处理问题的JavaScript开发人员。一些闪亮的流行语……类、字符串插值、生成器函数、箭头函数、迭代器和for/of循环。这些都是重大进步,但您可能也知道,这些功能中的许多或更多功能已经以CoffeeScript的形式出现了一段时间,CoffeeScript是“一种编译为JavaScript的小型语言”。我使用CoffeeScript编写代码已经有几年了。当开发人员构建复杂的应用程序时,他必须能够快速理解代码的作用,同时能够看到代码。CoffeeScript使我能够比JavaScript更高效地完成这些事情。我喜欢CoffeeScript,它由于其简洁的语法而提高了工作效率,并且它提供了从视觉混乱中解脱出来的自由。ES6中有很多新东西。但是,就像淡化的美式咖啡一样,它与我的口味相去甚远。作为CoffeeScript的粉丝,我很高兴听到一些我最喜欢的新CoffeeScript特性(比如箭头函数)现在被添加到JavaScript中。但是,他们没有使用相同的灵活性来实现它,并且其中还有其他尴尬的事情。CoffeeScript让您可以这样做:solipsism=trueifmind?andnotworld?是不是很优雅?在ES6中,你仍然要处理那些畸形的东西,像这样:null)){solipsism=true;}这还没有结束。在字符串插值中使用反引号(`)很奇怪,并且始终需要括号和大括号。即使在星期天。许多第一次尝试CoffeeScript的开发人员抱怨它的空格敏感性。老实说,这家伙一开始也骗过我几次。但我发现这些问题很容易避免,而且比这些小问题更重要:我的代码总能远离分号、括号、·this·关键字的污染,就像在AIGore大会上的ToyotaPrius。ES6中的许多新特性显然都受到了CoffeeScript的启发。那么为什么不接受这些变化呢?当前形式的JavaScript是由一个委员会设计的教科书示例软件,充满了相互矛盾的意见和强烈的分歧。几年前,ES6的开发前身:ES4,由于(委员会)对架构的分歧和争论不得不放弃。在这种委员会模式下,只有当大家争论不休时,软件才会发布。(委员会的)人不情愿地妥协,认输并点了披萨来庆祝他们的成就。CoffeeScript不会遭受妥协。这是对JavaScript可能是什么的一种有点乌托邦式的设想。这种狭隘的关注点可能是CoffeeScript获得如此两极分化声誉的原因。开发人员要么喜欢它,要么嘲笑它。如果你能从表面上看,CoffeeScript已经很好地达到了它的目的。它与色彩鲜艳的原始iMac一样背离了“规范”,并且与1990年代令人作呕的灰褐色PC相比,它令人耳目一新。起初,人们高呼:“没有软驱我怎么活”。当然,仅仅过了一个月左右,大家就突然意识到他们不需要软驱了。哦,就像你口袋里光滑的玻璃镜面Android手机或iPhone?我记得微软的史蒂夫·鲍尔默(SteveBallmer)大声宣称iPhone只是一个玩具,“不可能”有市场——因为它没有所有“官方”智能手机都应该有的键盘。标准只有在其自身方向上足够纯粹时才是好的。重要的是要记住,除非您使用汇编语言或机器语言本身进行编程,否则任何编程语言都是一种抽象。我们讨论了多少抽象是合适的,以及它在我们的工作中相对于事实上的标准应该扮演什么角色。这基本上是个人决定,每个开发人员和每个团队都没有正确或错误的答案。对于我们的团队来说,这个问题主要围绕协作环境,我们想拉一个大车,这个所谓的技术活动要集中到许多开发人员的工作上。可以肯定地说,我们正在进行讨论。(有很多意见,对吗?)我们的团队正在努力在坚持既定标准与为开发人员留出创新空间和选择适合他们的工具之间找到平衡。我认为CoffeeScript可能会继续伴随JavaScript并推动JavaScript的创新。毕竟,这不是一个非此即彼的命题。即使有一天CoffeeScript消失了,我认为像CoffeeScript这样的元编程语言(MetaprogrammingLanguage)也会有很高的价值,因为它可以让程序员以一种新的方式想象和理解他们的代码。这有助于提高大家的艺术水平。做一个善于交际的人,来分享吧!原文链接:http://www.oschina.net/translate/coffeescript-is-dead-long-live-coffeescript
