BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

AtScript:又一门编译成JavaScript的语言

| 作者 谢丽 关注 11 他的粉丝 发布于 2014年10月29日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

JavaScript有一个庞大、繁荣的社区,已经成为事实上的浏览器语言。但它缺少一些功能,使它难以应用于大型应用程序的开发。正是由于这个原因,才出现了TypeScriptDart。近日,AngularJS创建者Misko HeveryDurandalJS创建者Rob Eisenberg联合发布了《AtScript入门(草稿)》。该文指出,AtScript的目标同样是增加JavaScript缺少的功能。它从以下几个方面对JavaScript进行了增强:

  • 类型注解
  • 字段注解
  • 元数据注解
  • 支持注解的类型内省

该过程遵循如下几项原则:

  • 以ECMAScript 6为基础
  • 向后兼容——ES6/ES5是AtScript的严格子集,上述增强都以不破坏ES6/5的现有语法或语义为前提。对于任何编写过ES6/5代码的开发人员而言,AtScript很容易使用。他们常用的代码不做任何更改就可以用于AtScript。
  • 熟悉的语法——一些符号的意义与其它语言相同。如在AtScript 中,“@”用于指示元数据注解,Java、Dart及其它一些语言也有同样的用法。
  • 语义无关——“语义探讨(semantic discussion)”及断言系统不在AtScript范围内。

为了开发出更易维护、更易理解的Angular代码,Angular团队一年前开始研发AtScript。目前,他们正基于AtScript语法进行Angular v2的开发。正在进行中的工作包括:Traceur转换编译器和RTTS库。其中,前者是基于traceur构建的AtScript编译器,它能将AtScript代码编译成ES5及Dart代码。

虽然同为JavaScript的超集,同样都编译成JavaScript,但TypeScript与AtScript相比有以下几点不足:

  • 只能进行静态类型分析
  • 缺少元数据注解
  • 没有提供运行时访问注解的机制

此外,Dart的开发初衷也是弥补JavaScript的不足。但相比之下,Dart从语义上就与JavaScript完全不同。Dart2JS代码与JavaScript代码互操作性很差,开发人员无法在Dart中使用现有的JavaScript库。

除了构建Angular外,AtScript的开发目标还包括使Angular用户可以使用AtScript构建他们自己的应用程序。AtScript独立于Angular,也可以用于非Angular项目。后续,Angular团队会考虑将它提交给标准组织。


感谢郭蕾对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

“又”字是多么地传神啊 by fate minstrel

还嫌不够多啊

继续坚持野生野长的coffee by wen bob

继续坚持野生野长的coffee

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT