BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

引入JavaScript虚拟机的语言:CoffeeScript 1.0、StratifiedJS、利用C/C++的Emscripten和Python

| 作者 Werner Schuster 关注 6 他的粉丝 ,译者 杨晨 关注 0 他的粉丝 发布于 2010年12月30日. 估计阅读时间: 3 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

JavaScript虚拟机现在发展非常迅速,而且也不断变得普适化 - 这是语言设计者和实现者都喜闻乐见的事情。期望运行于JVM或者.NET平台的语言也吸引了很多目光,但是最近一些新的语言还是主要围绕JavaScript做文章。

JavaScript的主要缺点就是语言本身,所以开发者着手创建一种能够编译JavaScript的新语言

CoffeeScript刚刚发布了1.0版,这门语言希冀于能够在整理JavaScript的基础上加入一些有用的特性。CoffeeScript编译器是使用CoffeeScript语言本身编写,可以在编译的时候格式化JavaScript代码。

它是使用空格缩进而不是花括号来分隔代码段 - 这个功能引起了社区不小的争论,虽然其他语言,例如CSS3扩展SassHaml等也是这样做的。

CoffeeScript已经开发了近一年时间,但是直到最近才为一些项目所采用。ArsTechnica的iPad应用就是使用HTML和CoffeeScript编写,在PhoneGap的帮助下作为原生应用运行。37Signal也发布了Chalk,这是一个运行在iPad上的白板应用,并且使用了例如Cache Manifest这样的HTML5特性来支持离线运行。它同样也使用了CoffeeScript

StratifiedJS是JavaScript的一个超集,它加入了一些并发相关的关键字来解决异步编程的冗长拖沓。可以阅读关于StratifiedJS以及浏览器实现Apollo背后的动机的采访来获取更多信息。

Emscripten项目使用了另外一种方法。它尝试将使用LLVM编译器的语言引入到JavaScript虚拟机中。LLVM可以将代码编译成比特码,然后Emscripten将其翻译成JavaScript。它使用一个堆数组和一个自定义的malloc版本在某种程度上支持手动内存管理。

Emscripten也可以翻译C和C++代码,我们可以看到它的主页上已经有了一些已经翻译好的C和C++库的demo。不仅仅是这两种语言,在主页上我们也可以看到PythonLua也有一些已经翻译完毕的运行时demo。

不只是这些新语言和运行时,已有语言仍然可以翻译成JavaScript,例如Haskell,Steve Dekorte的lo语言也可以在Skulpt项目的帮助下翻译成Python。

仍然需要时间来证明哪种语言将会是最有用和最成功的。但是,有一件事情是肯定的,那就是:即便Emscripten这样的解决方案能够流行起来的话,JavaScript VM、JIT和GC开发者仍然需要不断地改进性能。

查看英文原文:Languages Come to Javascript VMs: CoffeeScript 1.0, StratifiedJS, C/C++ with Emscripten, Python

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT