拥有专利技术,JS++专注于编译时类型检查,但它不是开源项目。软件提供商Onux意识到了JavaScript中的类型安全问题,并开发了一种称为JS++或JavaScript++的新语言。它在编译时启用类型检查,而不是在运行时检查。Onux首席执行官兼JS++领导者RogerPoon表示,“OnuxJS++编译器将多种类型统一为一个类型,即统一外部类型。通过提供完整的类型系统,每个声明的类型(例如字符串)将始终是没有错误,这显着增加了应用程序开发的可靠性”。Poon解释说,“JS++已经发布了一个早期的预览版。它可以编译成JavaScript,并继承所有JavaScript支持的能力。编译时的错误检查使JS++成为一种类似于Java的语言。”这项技术不是开源的,Poon说公司正在为它申请专利,主要是因为Facebook的Flow和谷歌的AtScript和SoundScript试图解决同样的问题。他指出,开发人员不需要特意使用JS++。但Onux的商业模式包括销售支持服务和为特定用例提供附加库,例如图表和图形。标准库是免费分发的。Poon认为JS++的闭源特性不会吓跑开发者。事实上,他说企业开发人员很乐意使用JS++,因为它解决了他们日常工作中的一个主要痛点。“他们正在处理数百万行JavaScript代码,其中大部分是遗留代码,”他说。“最大的问题之一是类型检查。”JS++的竞争对手是微软的TypeScript,Poon表示后者的类型系统“并不完美”。JS++符合ECMAScript3,这是一组较早的特定底层JavaScript。Poon指出,大多数开发人员都在使用ES3或ES5。JavaScript开发人员和教育家EricElliott质疑Onux的说法,称没有明确的证据表明健全的类型系统可以减少出现错误的机会。“事实上,有证据表明复杂的类型系统有可能引入更多错误,”他在最近的一篇文章中指出。“换句话说,类型正确性并不能保证程序的正确性。”Elliott个人更喜欢测试驱动开发机制。Elliott说,“我没有用过JS++,但我没有理由相信庞大的JavaScript社区会拥抱它。在此之前,许多项目承诺为Web平台带来更好的安全性,包括谷歌的SoundScript、谷歌的Dart语言、谷歌的GoogleWebToolkit,微软的TypeScript,Facebook的Flow,还有我自己开发的rtype项目。”
