社区编辑申请
注册/登录
新型编译器助JavaScript搞定类型难题 译文
开发 前端
JS++目前已经发布早期预览版本,其能够编译为JavaScript并继承一切对JavaScript的支持能力,在编译时中进行错误检查使得JS++成为一种类似于Java的语言。

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

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
相关推荐

2022-04-11 11:38:44

Python代码游戏

2022-04-26 10:11:16

开发工具JavaScript

2022-05-03 22:25:57

Python浏览器语言

2022-05-17 16:56:33

开发工具前端

2022-04-28 09:46:20

Nginx文件Linux

2022-05-12 14:44:38

数据中心IT云计算

2022-05-20 16:50:33

区块链Web3加密资产

2022-05-02 16:27:01

JavaScriptHTMLPython

2022-05-02 08:30:46

网络Wi-Fi

2022-04-29 08:22:22

数据中心绿色低碳

2022-04-26 09:23:07

Hare编程语言C

2022-04-27 09:48:56

JS前端开发

2022-04-09 11:53:52

供应链攻击

2022-03-31 16:25:07

数据中心华为云

2022-05-10 09:53:45

数据治理数据开发DataOps

2022-03-22 15:04:20

中间件分布式软件鸿蒙

2022-04-13 08:00:00

Hilla开发Java

2022-05-07 07:26:05

PyScriptHTMLPython 代码

2022-04-28 08:41:53

JavaScript数组

2022-04-13 09:28:19

JavaScripiframe开发

同话题下的热门内容

有人问,如何找到适合的Python库?让程序员心动的11种新编程语言提升Java字符串编码解码性能的技巧为什么 NodeJS 是构建微服务的最佳选择?Flutter vs ReactJS:2022年应该选哪个?API类型和集成规范指南JavaScript 中 Fetch 是如何工作的再有人问你什么是分库分表,直接把这篇文章发给他

编辑推荐

太厉害了,终于有人能把TCP/IP协议讲的明明白白了!牛人5次面试腾讯不成功的经验HBase原理–所有Region切分的细节都在这里了Javascript如何监听页面刷新和关闭事件如何搭建一个HTTPS服务端
我收藏的内容
点赞
收藏

51CTO技术栈公众号