在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

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

  • 2010-12-29
  • 本文字数:979 字

    阅读完需:约 3 分钟

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

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

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

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

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。不仅仅是这两种语言,在主页上我们也可以看到 Python Lua 也有一些已经翻译完毕的运行时 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

2010-12-29 17:425953
用户头像

发布了 90 篇内容, 共 39.4 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营第 1 期第 10 周作业

owl

极客大学架构师训练营

week6-命题作业

未来已来

Appium上下文和H5测试(二)

清菡软件测试

智慧公安大数据可视化分析系统搭建

t13823115967

我是如何使计算时间提速25.6倍的

Python 代码优化 Numpy 代码加速

第六周-作业

jizhi7

如何高效的使用并行流

Silently9527

java8 java 并发

第四代Express框架koa简介

程序那些事

nodejs 异步编程 koa Express 程序那些事

Python进阶——如何正确使用yield?

Kaito

Python

身为程序员还记得C语言经典算法(附带答案)吗?

ShenDu_Linux

c c++ 算法 编程语言

week6-学习总结

未来已来

第六周-总结

jizhi7

极客大学架构师训练营

第06周 CAP 原理

Airship

极客大学架构师训练营

2020双11,Dubbo3.0 在考拉的超大规模实践

阿里巴巴云原生

阿里云 开源 云原生 dubbo

腾讯云轻量应用服务器 SSH 配置

邵俊达

SSH 轻服务器

Effective go 笔记-01

邵俊达

Effective-go Go 语言

CAP原理

智慧公安二维码定位报警系统开发

t13823115967

shell脚本的使用该熟练起来了,你说呢?(篇一)

良知犹存

Linux shell脚本编写

云算力矿机系统开发,区块链挖矿平台搭建

薇電13242772558

区块链 云算力

架构师训练营第 1 期第 10 周总结

owl

极客大学架构师训练营

极客时间架构 1 期:第 10 周 模块分解 - 学习总结

Null

成千上万个站点,日数据过亿的大规模爬虫是怎么实现的?

穿甲兵

Python redis 爬虫

架构师训练营第十周学习笔记

一马行千里

学习 极客大学架构师训练营

除了梦里什么都有之外,我想可以让现实生活中也可以有点什么。

叶小鍵

日本 健康 川村昌嗣 瘦身 走路 运动

第 06 周学习总结

Airship

极客大学架构师训练营

40 张图带你搞懂 TCP 和 UDP

苹果看辽宁体育

计算机网络 计算机基础 计算机

解密智联招聘的大前端架构Ada

智联大前端

Serverless 大前端 开发工具

第十周课后练习

饭桶

架构师训练营第十周命题作业

一马行千里

极客大学架构师训练营 命题作业

极客时间架构 1 期:第 10 周 模块分解 - 命题作业

Null

引入JavaScript虚拟机的语言:CoffeeScript 1.0、StratifiedJS、利用C/C++的Emscripten和Python_Java_Werner Schuster_InfoQ精选文章