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

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

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

[[167453]]

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项目等。” 

责任编辑:王雪燕 来源: 51CTO
相关推荐

2014-05-04 12:51:21

Javascript编译器

2021-06-25 10:38:05

JavaScript编译器前端开发

2013-06-13 10:02:36

JavaScriptJavaScript编

2010-01-19 13:01:32

C++数据类型

2010-01-18 10:34:21

C++编译器

2022-11-09 08:12:18

操作系统CPU编译器

2017-03-20 18:01:55

编译器汇编

2009-08-10 17:12:54

C#编译器

2013-03-29 10:02:37

编译器语言编译开发

2010-01-21 09:11:38

C++编译器

2010-03-23 11:17:16

Python 动态编译

2010-10-20 13:43:37

C++编译器

2019-08-06 08:20:07

编译器工具开发者

2011-05-18 11:06:25

java编译器

2013-12-30 11:21:31

Go编译器

2010-09-16 15:57:25

Java编译器

2022-03-28 10:25:27

前端文件编译器

2010-02-02 17:08:26

Python静态编译器

2009-08-06 14:59:36

C#编译器

2010-02-02 17:08:26

Python静态编译器
点赞
收藏

51CTO技术栈公众号