您当前的位置: 首页 > 技术文章 > 前端开发

新型编译器助JavaScript搞定类型难题

作者:licqi 时间:2017-01-03阅读数:人阅读

凭借专利技术,JS++专注于编译时类型检查,但并不属于开源项目。软件供应商Onux公司意识到JavaScript中的类型安全问题,并由此开发出一种名为JS++的新语言,即JavaScript++。它能够在编译时中检查类型,而不再立足于运行时执行检查。

新型编译器助JavaScript搞定类型难题(图1)

Onux公司CEO兼JS++缔造者Roger Poon表示,“Onux JS++编译器将多种类型统一为单一类型,即统一外部类型。通过提供完善的类型系统,各经过声明的类型(例如字符串)将永远不会出现错误,从而显著提高应用的开发可靠性”。

Poon解释称,“JS++目前已经发布早期预览版本,其能够编译为JavaScript并继承一切对JavaScript的支持能力,在编译时中进行错误检查使得JS++成为一种类似于Java的语言”。

这项技术并非开源,Poon表示该公司正在为其申请专利,这一防御手段主要是考虑到Facebook的Flow与谷歌的AtScript及SoundScript都在力争解决同类问题。开发者们无需刻意使用JS++,他指出。不过Onux公司的业务模式包括销售支持服务以及针对特定用例提供附加库,例如图表与图形。标准库以免费形式发布。

Poon认为JS++的闭源特性并不会吓跑开发者。事实上,他表示企业开发者们乐于使用JS++,因为其解决了他们日常工作中的一大痛点。“他们面对着数百万行JavaScript代码,其中大部分属于遗留代码,”他表示。“而其中最大的难题之一就是类型检查。”

JS++的竞争对手为微软的TypeScript,Poon表示后者的类型系统“并不完善”。JS++符合ECMAScript 3,特定底层JavaScript的一套较早版本。Poon指出,大多数开发者都在使用ES3或者ES5。

JavaScript开发者与教育家Eric Elliott则对Onux公司的宣传提出质疑,他表示目前还没有明确的证据表明完善的类型系统能够降低bug出现机率。“事实上,反倒有证据表明复杂的类型系统有可能带来更多bug,”他在最近的一篇文章中指出。“换言之,类型正确性并不能保证程序的正确性。”Elliott个人更推崇测试驱动型开发机制。

Elliott表示,“我并没用过JS++,但我没有理由相信庞大的JavaScript社区会向其张开怀抱。在此之前,很多项目都承诺为Web平台带来更出色的安全性,包括谷歌的SoundScript、谷歌的Dart语言、谷歌的Google Web Toolkit、微软的TypeScript、Facebook的Flow以及我自己开发的rtype项目等。”

【编辑推荐】

  1. 2016 年关于JavaScript的技术栈展望
  2. 为什么说JavaScript中的DOM操作很慢
  3. 在JavaScript SDK里使用SoundCloud API
  4. 10个优化代码的CSS和JavaScript工具
  5. JavaScript发展路线图:体积更小巧更新更频繁
  6. JavaScript内存泄露的4种方式及如何避免

本站所有文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。

如果侵犯了你的权益请来信告知我们删除。邮箱:licqi@yunshuaiweb.com

加载中~
如果您对我们的成果表示认同并且觉得对你有所帮助可以给我们捐赠。您的帮助是对我们最大的支持和动力!
捐赠我们
扫码支持 扫码支持
扫码捐赠,你说多少就多少
2
5
10
20
50
自定义
您当前余额:元
支付宝
微信
余额

打开支付宝扫一扫,即可进行扫码捐赠哦

打开微信扫一扫,即可进行扫码捐赠哦

打开QQ钱包扫一扫,即可进行扫码捐赠哦