写点什么

引入 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:425902
用户头像

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

关注

评论

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

🎅Less快速学习(上)🎅

空城机

CSS 大前端 less 11月日更

HAProxy适配openGauss使用指导书

Android C++系列:Linux文件IO操作(二)

轻口味

c++ android jni 11月日更

盲盒app开发源码搭建小程序app

自定义View:ViewGroup与View的事件传递

Changing Lin

11月日更

2021年10月云短信报告出炉,腾讯云蝉联冠军

博睿数据

直播预告:智能云分支(Cloud Smart Branch)场景和解决方案介绍

阿里巴巴 阿里云

openGauss内存管理初探

盲盒app开发盲盒小程序开发

openGauss以科技加速走向高效,低碳环保之路

OpenInfra基金会年度用户调查报告已出炉!OpenInfra软件应用需求激增

Python代码阅读(第59篇):根据value查询字典key值

Felix

Python 编程 阅读代码 字典 Python初学者

腾讯WeTest即将亮相MTSC2021中国互联网测试开发大会

WeTest

模块四作业

panxiaochun

架构实战营

一文搞定前端错误捕获和上报

GrowingIO技术专栏

Web js 数据采集 错误处理

Windows音频引擎架构汇总

grolier

Windows 音频引擎

助力政企自动化自然生长,华为WeAutomate RPA是怎么做到的?

我就获取个时间,机器就down了

安第斯智能云

Linux 后端

盲盒开发盲盒系统开发定制

盲盒app开发小程序源码定制

openGauss社区理事会正式成立!3大运营商、7大头部银行等18家理事单位加入

Hadoop实战篇-集群版(2)

进击的梦清

大数据 hadoop zookeeper

盲盒开发盲盒源码搭建系统开发

盲盒开发盲盒小程序源码搭建app

直播预告:云智能分支(Cloud Smart Branch)方案介绍和演示

阿里巴巴 阿里云

直播预告:云智能分支(Cloud Smart Branch)网络运维研究

阿里巴巴 阿里云

patroni For openGauss高可用方案基本原理

华为发布5G专网集成与边缘DC解决方案2.0,奏响5G toB大合唱

盲盒开发蛋趣芒趣一番赏源码搭建

盲盒一番赏APP开发源码搭建

DB4AI:使能数据库原生AI计算,助力数据湖场景业务成功

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