写点什么

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

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

关注

评论

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

c#12 实验特性Interceptor如何使用的一个简单但完整的示例

八苦-瞿昙

dotnet

弘扬传统文化,百度百科AI非遗馆亮相中国非物质文化遗产博览会

Geek_2d6073

从循序渐进转型到AI创新探索,天顺风能数智化走稳每一步

用友BIP

Jira Service Management:国内市场的使用评估和替代选项

爱吃小舅的鱼

一个基于 SourceGenerator 生成 从 dbReader转换为 class 数据的性能测试实验

八苦-瞿昙

C# dotnet csharp

用友BIP超级版:成都公交数智化的核心引擎

用友BIP

高清图解28个高并发之数据结构/数据结构场景匹配技巧分析(高并发精通篇三)

肖哥弹架构

Java 容器 数据结构

大模型时代,云原生数据底座的创新和实践

Baidu AICLOUD

数据库 大数据

尝试让查询更简单

八苦-瞿昙

dotnet

怎么开发体育直播平台软件:现成系统源码搭建流程

软件开发-梦幻运营部

如何使用贝锐花生壳DDNS,实现OA、ERP、CRM等办公系统远程访问?

贝锐

远程运维

Kubernetes 节点问题可观测最佳实践

观测云

Kubernetes

李彦宏眼中的AI之路:泡沫不可避免,要成为1%

脑极体

AI

万界星空科技:智能称重打标系统

万界星空科技

mes 电子称重系统 万界星空科技 称重打标 称重

9岁小学生、51岁退休阿姨闯入百度英伟达AI大赛

Geek_2d6073

SourceGenerator 生成db to class代码优化结果记录 二

八苦-瞿昙

dotnet

探索一下 Enum 优化

八苦-瞿昙

dotnet

解锁用户体验的深层法则:从定律到卓越设计的实践之旅

inBuilder低代码平台

UX 用户体验

使用ETL进行数据接入的方式

RestCloud

ETL 数据集成 数据接入 数据同步工具

供应链大变革:低代码技术助力企业数字化转型!

快乐非自愿限量之名

低代码 供应链

让查询可以使用 json path

八苦-瞿昙

dotnet

鸿蒙应用示例:记录小规模真机内测方案

zhongcx

朋友吐槽我为什么这么傻不在源生成器中用string.GetHashCode, 而要用一个不够优化的hash方法

八苦-瞿昙

dotnet

百度智能云千帆 ModelBuilder 大模型服务及开发解读

Baidu AICLOUD

LLMOps LMops

“好房子”的智能化探索,华为和保利为行业做了示范

Alter

扬帆出海!九章云极DataCanvas公司惊艳亮相迪拜GITEX Global 2024

九章云极DataCanvas

通义灵码上线一周年:超 600 万下载量,国内用户规模第一,新功能有奖测评

阿里云云效

阿里云 云原生 通义灵码

亮相QCon2024,火山引擎边缘云揭秘云原生操作系统与HTTPDNS技术实践

火山引擎边缘云

云原生 边缘计算 DNS 云 原生云 CTO #DNS

敏捷工具助力团队高效运作实践

顿顿顿

Scrum 敏捷开发 敏捷管理 敏捷项目管理

SourceGenerator 生成db to class代码优化结果记录

八苦-瞿昙

dotnet

Mysql中常用函数 分组,连接查询

不在线第一只蜗牛

MySQL 数据库

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