为什么CoffeeScript这么美?

2024-01-08 17:38
文章标签 coffeescript

本文主要是介绍为什么CoffeeScript这么美?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

先说JavaScript


JavaScript让人又爱又恨, 因为它独特, 卓越, 而且不可或缺。 尽管如此, 要说JavaScript很美, 恐怕也有些勉强。 JavaScript现在如日中天, 未来发展更是不可小觑。 但毕竟它的设计非常仓促, 有些陷阱, 有些晦涩; 要不为啥Douglas Crockford的书名字叫《The Good Parts of JavaScript》呢? (题外话: 中文翻译叫"JavaScript语言精粹", 这实在是春秋笔法, 为圣者讳:D

所以, 要是中肯的评价JavaScript: “就是不美”. 

JavaScript为什么不美


我觉得amix讲的很清楚


  • JavaScript是函数式语言;
  • 是基于prototype实现的面向对象语言;
  • 是动态语言, 更像Lisp而非C/Java; 但却使用了C/Java的语法;
  • 名字里面叫Java, 其实和Java根本不搭边;


结论就是JavaScript的诞生是个悲剧. 它是函数式+动态语言的优秀内核, 却硬被绑上了C/Java的语法; 如同高分屏贴膜, 又如同剑宗人士非摆出气宗架势; 带有这种语法的JavaScript就如同包裹石头的璞玉, 外壳和内涵大不相称. 

所以最大的别扭, 就在语法上. 

CoffeeScript为什么美


语法从Lisp系重生


CoffeeScript打 蛇打到七寸了. 它的最大功绩, 就是将JavaScript硬绑的C/Java语法抛弃了; 改为采用类似Ruby/Python的语法. Ruby/Python本来就是深受Lisp影响的, 和JavaScript算是同门师兄, 他们的语法经过了实践考验, 是更适合函数式+动态语言内核的. 

Good Parts


CoffeeScript只使用了JavaScript的"Good Parts(精粹)", 抛弃了原来JavaScript晦涩的,容易出问题的那部分东西. 比如, 全局变量声明, with 啥的. 

语法糖和ECMAScript


CoffeeScript提供了很多语法糖, 让代码更优雅可读. 去主页仔细看看CoffeeScript的语法清单, 就会发现边边角角到处是创新. 这让编程语言真的成了开发者的朋友, 而不是机器的朋友. 

CoffeeScript还提供了一个机会, 让你现在就可以使用ECMAScript里面的特性. 将来有个更多新特性, CoffeeScript也有机会在浏览器支持之前实现它们. 程序员面对的是CoffeeScript的优雅接口, 它是程序员和JavaScript之间的中间层, 脏活累活它都干了. 

八卦一下未来


CoffeeScript构建在JavaScript上层, 这让人联想起.Net和C#/F#/VB… , 以及JVM和Java/JRuby/Scala… 
在JavaScript上层做事情的, 不只CoffeeScript, 还有很多其他的. 比如lua就有通过LLVM转换成JavaScript的实现. 前段时间的JavaScript PC模拟器也证明了这种思路的威力. 
也许JavaScript就是下一个JVM, 上面会有最适用于各种场景的各种语言. 很多人盼望JavaScript成为为未来的唯一语言, 看起来这是不切实际的幻想了. 

CoffeeScript首页的一段展示代码


# Assignment:number   = 42opposite = true# Conditions:number = -42 if opposite# Functions:square = (x) -> x * x# Arrays:list = [1, 2, 3, 4, 5]# Objects:math =root:   Math.sqrtsquare: squarecube:   (x) -> x * square x# Splats:race = (winner, runners...) ->print winner, runners# Existence:alert "I knew it!" if elvis?# Array comprehensions:cubes = (math.cube num for num in list)

这篇关于为什么CoffeeScript这么美?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/584273

相关文章

使用Sublime Text 2编辑CoffeeScript

Sublime Text 2很好很强大,咱就用它来编辑Coffee代码吧。 安装Sublime Text 2过程就略过了。   CoffeeScript作者是推荐使用TextMate编辑CoffeeScript的。但是TextMate收费,并且对中文支持不好。如果你不在意这两个问题,那么强烈推荐你使用TextMate,并关注CoffeeScript作者的TextMate

怎么用Coffeescript写函数、回调函数 function in Coffeescript

如果是写匿名函数,可以省去括号 -> 1+2+3//得到这个function() {return 1 + 2 + 3;}带参数的非匿名函数 add = (a,b) -> a + b//得到这个var add;add = function(a, b) {return a + b;}; 接下来,如何使用函数呢 add 1,2//得到add(1, 2); 再来点花式变化,如果要

ASP.NET MVC配置支持前端 SCSS, Sass, LESS or Coffeescript等中间语言

ASP.NET MVC配置支持前端 SCSS, Sass, LESS or Coffeescript等中间语言 这里以在MVC4项目中添加.less文件解析支持为例 在解决方案中自定义一个文件夹来存放你的LESS文件,比如Content\Less; 使用Nuget包管理器添加.less文件支持控件dotless到你的项目中; 添加一个类实现***IBundleTransf