JavaScript 的替代品
JavaScript 几乎无处不在,HTML5 的出现,使得 JavaScript 达到了前所未有的高度。如今,JavaScript 已经开始向移动应用开发领域渗透,成为开发跨平台应用不可或缺的语言。
如果你不会 JavaScript,或者你对 JavaScript 的语法不满意,这一点都不影响你的 web 应用的开发工作,相反,你可以使用其他语言来代替 JavaScript。尽管目前的浏览器尚不支持这些语言,但你可以将它们编译成为 JavaScript 代码。
比如,如果你更喜欢经典的面向对象方式,并想要一些语法糖,那么你可以试试 CoffeeScript;如果你希望有一个更严格的类型系统,那么你可能会发现 Dart 或 TypeScript 更有趣一些;如果你更喜欢函数式编程,那么 ClojureScript 或 Roy 可以帮助你。
下面就是一些 JavaScript 的替代方案。
1. CoffeeScript(官方网站 / GitHub)
CoffeeScript 是一个使用纯 Ruby 编写的编程语言,创建者 Jeremy Ashkenas 戏称它是“JavaScript 的不那么铺张卖弄的小兄弟”。优势如下:
- CoffeeScript 只使用了 JavaScript 的“精髓”,抛弃了原来 JavaScript 晦涩、容易出问题的那部分东西,如全局变量声明、with 等。
- CoffeeScript 提供了很多语法糖,让代码更优雅可读。
- CoffeeScript 还提供了一个机会,让你现在就可以使用 ECMAScript 的新特性。
2. Dart(官方网站)
Dart 是谷歌推出的一种基于类的可选类型化编程语言,主要用于创建 Web 应用程序。谷歌称,Dart 的设计目标是为 Web 编程创造结构化但又富有灵活性的语言;编程方法一目了然,符合程序员的自然习惯,易于学习;能在所有浏览器和不同环境中实现高性能。
Dart 代码以两种方式执行,一种是原生虚拟机,一种是 JavaScript 引擎,用编译器将 Dart 代码翻译成 JavaScript 代码。这允许程序员在 Dart 中创建 Web 应用,编译后在任何浏览器上运行。
3. TypeScript(官方网站)
TypeScript 是微软开发的开源编程语言,它是 JavaScript 的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。TypeScript 扩展了 JavaScript 的句法,所以任何现有的 JavaScript 程序可以不加改变的在 TypeScript 下工作。TypeScript 是为大型应用之开发而设计,而编译时它产生 JavaScript 以确保兼容性。
4. ClojureScript(GitHub)
ClojureScript 是由 Clojure 的创建者 Rich Hickey 推出的,目标是“做 Javascript 所能做到的事情”。它是 LISP 和 Java 技术结合的产物,兼具函数编程和 Java 平台的优势,聚焦于低错和易用的并发编程,同时足以完成一个通用编程语言的各种任务。你可以通过 ClojureScript 使用 Clojure 语言编写代码,然后将其编译为 Javascript。
一个可将 Ruby 代码转换为 JavaScript 的编译器。
6. IcedCoffeeScript(官方网站 / GitHub)
这是 Coffeescript 语言的扩展集。iced 解析器是标准 coffee 解释器的非正式替代方案,因为它能解释所有现存的 Coffeescript 程序。它添加了 2 个关键字:await 和 defer,为浏览器和服务器两者提供了强大的异步控制功能。
LiveScript 是 Coco 的一个分支,是 CoffeeScript 的间接子集,并在面向对象和命令式编程方面进行了诸多改进。其代码可以编译成 JavaScript。
Kaffeine 是 JavaScript 语法的扩展,与 JavaScript 非常类似,代码可以直接编译成 JavaScript。
Roy 是一个以 JavaScript 为目标的试验性的编程语言,试图融合 JavaScript 语义和静态函数语言的一些特点,如 Damas-Hindley-Milner 类型接口、缩进语法、编译时元编程、模式匹配、Monad 语法等。
Via Jster