JavaScript 应该分裂成两种语言吗?谷歌新提案引发争议
谷歌工程师提出将 JavaScript 分裂成两种语言的提案,引发了开发社区的热烈讨论。 这项提案建议将 JavaScript 分成一个由运行时引擎实现的核心语言,以及一个更强大的变体语言,后者依赖于编译器将其转换为核心语言。
这项提案的核心是将 JavaScript 语言的复杂性与性能、安全性和稳定性之间的权衡进行平衡。 提案认为,近年来,JavaScript 的新特性不断增加,导致语言变得过于复杂,给引擎实现者带来了巨大的负担。这不仅增加了安全漏洞的风险,也影响了性能和稳定性。
提案的作者认为,将 JavaScript 分裂成两种语言可以解决这一问题。 核心语言将专注于提供基础功能,而变体语言则可以包含更高级的特性。这种分离将简化引擎实现,提高性能和安全性,并使开发人员可以选择最适合其需求的语言版本。
提案中提出的核心语言被称为“JS0”,而变体语言被称为“JSSugar”。 提案建议,未来所有的新特性都应该在 JSSugar 中实现,而 JS0 则保持简洁和稳定。
这项提案已经引起了开发社区的广泛讨论。 一些开发人员支持该提案,认为它可以解决 JavaScript 的复杂性问题,提高性能和安全性。他们认为,将 JavaScript 分裂成两种语言可以使语言更易于维护和发展。
然而,也有一些开发人员反对该提案。 他们担心,将 JavaScript 分裂成两种语言会导致语言的碎片化,并增加开发人员的学习成本。他们认为,目前已经存在许多工具可以帮助开发人员管理 JavaScript 的复杂性,例如 TypeScript 和 Babel。
提案的争议点在于,它可能会导致JavaScript 语言的生态系统发生变化。 许多流行的 JavaScript 工具和库依赖于现有的 JavaScript 语法和特性。如果提案被采纳,这些工具和库可能需要进行调整才能与新的语言体系兼容。
这项提案的最终命运尚不明朗。 提案需要经过Ecma International 的 TC39 委员会的讨论和投票才能最终确定。
以下是该提案引发争议的一些主要观点:
- 支持者认为:
- 将 JavaScript 分裂成两种语言可以简化引擎实现,提高性能和安全性。
- 这种分离可以使开发人员选择最适合其需求的语言版本。
- 提案可以促进 JavaScript 的长期发展和维护。
- 反对者认为:
- 将 JavaScript 分裂成两种语言会导致语言的碎片化,并增加开发人员的学习成本。
- 提案可能会破坏现有的 JavaScript 生态系统。
- 提案可能导致语言的复杂性转移到工具实现者身上,而不是引擎实现者。
总的来说,谷歌提出的这项提案是一个大胆的尝试,它旨在解决 JavaScript 语言发展中面临的挑战。 提案的最终命运将取决于 TC39 委员会的决定,以及开发社区的反馈。这项提案的讨论将继续进行,并可能对 JavaScript 的未来发展产生重大影响。
Views: 0