7 月 30 日消息,Node.js开发团队在7月25日合并了“为 Type 添加实验性支持”的Pull Request拉取请求页面,旨在让 Node.js开发者可以通过配置实验性flag直接执行Type文件。不过此举引发争议,大量用户认为这将导致Node.js降低稳定性,相关页面甚至因为言论过激一度被锁定。
▲ 相关页面引发大量讨论,截至发稿讨论条数为 271
据悉,Type 是微软基于 Java 开发的编程语言,相对 Java,其支持静态类型系统,可以提升代码安全性及运行效率。而原本以 Java 为基础的 Node.js要支持 Type需要进行一系列转译理,在转译过程中Type 特有的类型会被丢弃(注:即“类型剥离”,Type Stripping)。
许多开发者认为相关类型剥离操作“并不简单”,需要完整的 Type 语法解析器才能实行,但 Type 语法又不断变化,因此 Node.js添加 Type 实验性支持的行为反而降低了语言稳定性,还有可能导致未来用户需要不断更新 Node.js版本才能支持 Type 的所有功能。
而Node.js开发团队则回应称他们添加 Type 实验性支持是为了照顾“社区需求”,相关改进“是推动 Node.js生态系统发展以及未来提供原生支持 Type 的重要一步”,令加载 Type 文件更为便利,而不需要安装依赖项 / 专有加载程序。
Node.js开发团队同时表示,他们早已与社区就进行一轮讨论,会在保持稳定、高性能的前提下实现类型剥离方案,目前Node.js开发团队倾向于以解耦的方式分发独立包令其获得实验性Type支持,这样既能维持Node.js核心稳定,也能够保证其持续发展。