写点什么

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

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

关注

评论

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

命令执行相关的web题

w010w

命令行 CTF 每日一题 10月月更 web基础

大数据开发培训学习方法

小谷哥

rdd pair reduce

小东

代码质量与安全 | 关于糟糕代码的那些事

龙智—DevSecOps解决方案

代码质量 代码安全

1024,节日快乐

未来智安XDR SEC

【文本检测与识别白皮书】第三章 - 第三节:算法模型 2

合合技术团队

人工智能 深度学习 大数据 文字识别

1024程序员节 | 畅聊名“猿”之路,重磅视频预告

小谷哥

LeaRun低代码开发平台 助推物联网应用快速落地

力软低代码开发平台

RFO SIG:openEuler AWS AMI 制作详解

openEuler

Linux 开源 Kubernetes 云原生 AWS

机器学习在基于 URL 的客户端监控分析中的优化和实践

Shopee技术团队

机器学习 数据分析 url 客户端 数据监控

BizWorks应⽤平台基于KubeVela的实践

阿里云E2企业云服务

阿里云 中台 插件 企业架构和云服务 api 网关

生产数据实时分析,产品质量高效管控|打造面向工业4.0的智能工厂02

EMQ映云科技

云原生 物联网 IoT 边云协同 10月月更

TPU演进十年:Google的十大经验教训

OneFlow

人工智能 深度学习 TPU

代码质量与安全 | 入门必备:什么是自动化测试?

龙智—DevSecOps解决方案

代码质量 自动化测试 测试质量

SAP | 如何使用内部表

暮春零贰

SAP 10月月更 内部表

SAP | 聊一聊必不可少的Debug

暮春零贰

debug SAP 10月月更

新手剪辑师秒变大神 高级感视频剪辑的几种常用技巧

懒得勤快

软件测试面试真题 | 显式等待与隐式等待的区别?与强制等待的方式分别是什么,有什么区别?

测试人

软件测试 面试题 测试开发 测试工程师

如何规范App广告的隐私获取,让用户拥有更多知情权?

HarmonyOS SDK

广告sdk

分布式事务Seata框架的AT模式

C++后台开发

分布式 微服务 后端开发 C++开发 Seata框架

低代码平台 - 危险的赌注

世开 Coding

软件开发 低代码 开发框架

持续引领产业发展,华为云桌面连续6年位居国内市占率第一

路过的憨憨

华为

你好

小东

第一次

MDAP:可观测性数据分析平台设计与实践

Shopee技术团队

数据分析 APM 性能 终端 数据监控

倒计时第2天!2022 XDR网络安全运营新理念峰会即将开幕

未来智安XDR SEC

网络安全

前端培训学习完之后可以从事的工作方向

小谷哥

一文读懂云渲染“串流”全链路时延及优化策略

阿里云CloudImagine

阿里云 云渲染 云游戏 串流

Wallys /IPQ4019 IPQ4029 ,HTTPS / all the modules of Quectel/Indoor Aluminium alloy material

wallys-wifi6

IPQ4019 ipq4029

HTML基本知识学习笔记

虾仁疙瘩汤

html 前端 10月月更

版本控制 | 游戏开发企业如何高效远程协作?

龙智—DevSecOps解决方案

版本控制 游戏开发 版本管理

web前端培训学习能找到工作吗

小谷哥

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