CoffeeScript 已死,CoffeeScript 万岁!

简介:

正如你可能已经听说的,JavaScript今年又准备推出一个新版本-ES6。这个名字源于它遵循了“ECMAScript”编码标准的第六个重 要版本:ECMA-262。在这个期待已久的发布中,将包括一些对绝大多数JavaScript开发者处理问题大有裨益的新特性。

CoffeeScript 已死,CoffeeScript 万岁!

一些光芒四射的流行语……类、字符串插值、生成器函数、箭头函数、迭代器与for/of循环。这些都是具有重大意义的进步,但你可能也知道,这些特 性中的许多或更多已经以CoffeeScript的形式存在了一段时间了,那是“一个被编译成JavaScript的小型语言”。

我使用CoffeeScript编码已经有一些年头。一个开发者在构建一个复杂的应用程序时,他必须在能够看到代码的同时,快速了解这段代码是做什 么的。CoffeeScript让我在进行这些工作的时候比使用JavaScript时更加高效,我爱CoffeeScript,爱它因简介的语法而来的 生产力提升,也爱它因视觉杂乱而来的自由。

ES6中新加入了很多好东西。但是,像一个被用水冲得过淡的美式咖啡,它还远没有对我的口味。作为一个CoffeeScript的粉丝,我很高兴听 到一些我喜欢的CoffeeScript新特性(如箭头函数)现在被加入到了JavaScript中。然而,他们没有使用相同的灵活性去实现,还有其他的 尴尬事情在里面。

CoffeeScript可以让你这么做:

solipsism = true if mind? and not world?

非常优雅是不是?在ES6中,你仍然不得不去处理那些畸形的东西,就像这样:

if ((typeof mind !== "undefined" && mind !== null) && (typeof world === "undefined" || world === null)) { solipsism = true; }

这还没完。在字符串插值中使用反撇号(`)还只是普通的怪异,圆括号和花括号在任何时候都是必需的。甚至是在星期日。

许多第一次尝试 CoffeeScript 的开发者会抱怨它的空格敏感特性。说实话,这家伙在一开始也坑了我几次。但我发现这些问题是很容易避免的,而且与这些小问题相比,更重要的是:我的代码能 够始终远离分号,括号,·this·关键字的污染,就像在 AI Gore 会议上的丰田普锐斯。

ES6 中很多新特性明显受到 CoffeeScript 的启发。所以为何不敢拥抱这些变化?当前形式的 JavaScript 是由委员会设计的教科书式的样例软件,充斥着委员们冲突的意见和强烈的分歧。几年前,ES6 的开发前身:ES4,由于(委员们)在架构上的意见分歧和争论不得不被放弃。在这个委员会模式中,这个软件只有当每个人都厌倦了争论时才能发布。(委员会 的)人们不情愿地妥协了,认输了,然后点了一份比萨庆祝他们的成果。

CoffeeScript 不会受到妥协的拖累。它是人们对于 JavaScript 能够是什么样的有点乌托邦式的愿景。这种狭窄的关注点大概是CoffeeScript获得如此两极分化名声的原因吧。开发者对它要么爱不释手,要么嗤之以 鼻。如果你能够就它的表面价值而接受它,CoffeeScript 就已经出色地完成了它的使命了。

这是一次对“标准”的背离,就像最初的亮彩色的 iMac 一样,是对20世纪90年代时, 那些清一色令人厌恶的灰褐色PC一次令人耳目一新的背离。一开始,人们强烈哭诉:“我没有软驱怎么活”。当然啦,每个人只有在经历了1个月左右的时间后, 才会猛然意识到他们根本不需要软驱。哦,好像你口袋里平滑玻璃镜面的 Android 手机或者 iPhone 也是这样?我记得微软的 Steve Ballmer 曾大声宣称 iPhone 只是个玩具,“不可能”有市场——因为它没有所有‘正式’智能手机应该有的键盘。标准只有在它们自己的方向上足够纯粹,才是好的。

记住它是至关重要的,除非你正在使用汇编语言编程或者机器语言本身,但任何编程语言都是一种抽象。我们讨论的是,有多少抽象才是适量的,以及在我们 的工作中应该有什么作用与实际上的标准相干。这基本上可能由个人来决定的,对于每位开发人员与每个团队来说,都没有对与错的答案。

对于我们的团队来说,这个问题主要是围绕在一个协同环境与我们想猛拉大马车,这种所谓的技术活中来关注诸多开发人员的工作。可以有把握的说,我们有 一个正在进行的讨论。(诸多意见,对吗?)在坚持既定的标准之间,我们的团队正努力找到一种平衡,同时留有余地的提供给开发人员来创新和选择为他们工作的 工具。

我想CoffeeScript可能会继续伴随着JavaScript,并推动JavaScript的创新。毕竟,这并不是一个非此即彼的命题。即使 有一天CoffeeScript消失了,我想就像CoffeeScript一样的元编程语言(Metaprogramming Language)也会有很高的价值,因为它让程序员以一种新的方式去想象和理解他们的代码。这有助于提高每个人的艺术层次。

做一个善于交际的人,快来分享!


来源:51CTO

相关文章
|
3月前
|
人工智能 JavaScript 前端开发
我心目中的第一编程语言——JavaScript,你呢?
我心目中的第一编程语言——JavaScript,你呢?
15 0
|
4月前
|
前端开发 JavaScript 编译器
掌握 Babel:让你的 JavaScript 与时俱进(上)
掌握 Babel:让你的 JavaScript 与时俱进(上)
掌握 Babel:让你的 JavaScript 与时俱进(上)
|
4月前
|
JavaScript 前端开发 编译器
掌握 Babel:让你的 JavaScript 与时俱进(下)
掌握 Babel:让你的 JavaScript 与时俱进(下)
掌握 Babel:让你的 JavaScript 与时俱进(下)
|
JavaScript 前端开发 API
12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!(上)
12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!(上)
122 0
12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!(上)
|
XML SQL JavaScript
12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!(下)
12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!(下)
179 0
12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!(下)
|
JavaScript 前端开发
几个毫无节操纯属恶搞的JavaScript插件
fartscroll.js,为放屁而生 你知道么,有了这个js库,你的页面就可以——————————放屁勒! 打开下面的演示地址,然后滚动页面。 在线演示:http://theonion.github.
831 0
|
JavaScript 前端开发 Ruby
Y分钟学CoffeeScript
CoffeeScript是逐句编译为JavaScript的一种小型语言,且没有运行时的解释器。 作为JavaScript的替代品之一,CoffeeScript旨在编译人类可读、美观优雅且速度不输原生的代码, 且编译后的代码可以在任何JavaScript运行时正确运行。
|
移动开发 小程序 JavaScript
看得我目瞪口呆的 JavaScript 代码技巧
看到一个让我开眼界的回答,分享给大家,以下是正文:
156 0
看得我目瞪口呆的 JavaScript 代码技巧
|
Web App开发 JavaScript 前端开发
JavaScript之父谈语言诞生记
导读:原文来自阮一峰的网络日志,作者从历史的角度,给大家讲述Javascript到底是如何设计出来的。文章内容如下: 两周前,我谈了一点Javascript的历史。 今天把这部分补全,从历史的角度,说明Javascript到底是如何设计出来的。
1388 0
|
Web App开发 缓存 JavaScript
Javascript 模块化指北
前言 随着 Web 技术的蓬勃发展和依赖的基础设施日益完善,前端领域逐渐从浏览器扩展至服务端(Node.js),桌面端(PC、Android、iOS),乃至于物联网设备(IoT),其中 JavaScript 承载着这些应用程序的核心部分,随着其规模化和复杂度的成倍增长,其软件工程体系也随之建立起来(协同开发、单元测试、需求和缺陷管理等),模块化编程的需求日益迫切。
1642 0