10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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

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

关注

评论

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

每日一题:LeetCode-179. 最大数

Geek_4z9ami

Go 面试 LeetCode 排序 排序算法

大白话70个你必须知道的AI重要概念(二)

FN0

人工智能 AI AIGC

大白话70个你必须知道的AI重要概念(三)

FN0

人工智能 AI AIGC

实现高效人力资源管理的完美搭档,聚道云与薪人薪事合作,助力企业数字化转型

聚道云软件连接器

案例分享

全方位提升用户数字化体验的解决方案

观测云

用户体验

荣耀开发者大会 2023·一张图读懂应用分发分论坛

荣耀开发者服务平台

开发者大会 honor 分发与计算 应用市场

荣耀开发者大会 2023·一张图读懂服务分发分论坛

荣耀开发者服务平台

行业趋势 开发者大会 智慧生活 honor 分发

第七在线荣获百灵奖 Buylink Awards 2023零售圈年度卓越服务商品牌

第七在线

如何利用docker部署springboot 项目

想要飞的猪

软件测试开发丨PageObject模式:为什么是Web自动化测试必备工具

测试人

软件测试

腾讯云ES AI增强搜索:十分钟快速入门自然语言处理(NLP)与向量检索

腾讯云大数据

ES

「繁花」绽放,「她力量」引领AI新革命

极客天地

荣耀开发者大会2023 · 一张图读懂智慧人机交互分论坛

荣耀开发者服务平台

AI 交互 开发者大会 人机协作 honor

ThreadLocal真的会造成内存泄漏吗?

不在线第一只蜗牛

内存泄露 ThreadLocal

2024杭州国际智慧城市,人工智能,安防展览会(杭州智博会)

AIOTE智博会

智博会 物联网展 人工智能展 智慧城市展 杭州智博会

软件测试/测试开发/测试管理 | Page Object模式:为什么它是Web自动化测试的必备工具

测吧(北京)科技有限公司

测试

聚合收益协议 InsFi :打开铭文赛道全新叙事的旋转门

股市老人

鼓掌!阿里技术官亲荐“架构修炼宝典”,从基础到源码,一站到底

Reische

MySQL 面试 Java 面试 大厂 程序员‘

掌握这本算法宝典,轻松拿下字节跳动offer

Reische

算法 Java' 程序员‘ 算法、

阿里巴巴重磅推出:Java进阶必备宝典,从理论到实战,一册在手

Reische

MySQL tomcat Netty 「Java 25周年」 JVM’

大白话70个你必须知道的AI重要概念(一)

FN0

人工智能 AI AIGC

火了!外国网红为 KubeBlocks 打 CALL:K8s 中统一管理多种数据库用 KB 就够了!

小猿姐

数据库 云计算 Kubernetes

KubeBlocks v0.8.0 发布!Component API 让数据库引擎组装更简单!

小猿姐

数据库 云计算 Kubernetes

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