Nolan Lawson 表达了对将 JavaScript 工具用所谓“更快”的语言重写持怀疑态度。尽管 Rust、Zig、Go 等语言有其优势,但他对 JavaScript 有深厚的情感,因为他在 JavaScript 的理解、优化和调试方面投入了大量的时间和精力。 Lawson 认为 JavaScript 工具的性能提升空间尚未完全挖掘,例如 Marvin Hagemeister 展示的 ESLint 和 Tailwind 中的性能提升潜力。在浏览器中 JavaScript 已经足够快,而 WebAssembly 主要用于特定的 CPU 密集型任务。
新工具(如 Rolldown、Oxlint、Biome)可能因为性能考量和 API 设计的成熟而更快,并非仅仅因为使用了更快的语言。Lawson 引用了 Ryan Carniato 的观点,即重写本身可能带来性能提升,因为开发者在重写时更加关注性能。 Node.js 脚本缺乏浏览器提供的字节码缓存和 JIT 编译器的优势,这可能是 JavaScript 工具与非 JavaScript 工具性能差异的一个原因,Node.js 正在获得编译缓存功能,这可能会改善性能。
JavaScript 是一种易于学习和调试的语言,拥有庞大的开发者社区。如果工具由更难的语言编写,这可能会增加调试和修改的难度,从而影响社区的贡献。他认为,JavaScript 是一种“工薪阶层”的语言,它对类型宽容,易于上手,并且由于浏览器的支持,有大量的人熟悉它。如果 JavaScript 库的作者使用不同于 JavaScript 的语言,这可能会使得开发者感到无助。
尽管新一代工具的出现是好事,但他不认为 JavaScript 本质上慢,或者我们已经穷尽了改进 JavaScript 的可能性。如果 JavaScript 工具开发变成只有少数 Rust 和 Zig 开发者能理解的领域,可能会让普通开发者感到无助。他呼吁社区考虑重写工具的长远影响,并思考是否有更少风险、更接近相同结果的路径。 Lawson 表达了对 JavaScript 未来的担忧,认为我们可能正走向一个未知的道路,而这条路可能带来意想不到的后果。
#JavaScript #思考
https://nolanlawson.com/2024/10/20/why-im-skeptical-of-rewriting-javascript-tools-in-faster-languages/
新工具(如 Rolldown、Oxlint、Biome)可能因为性能考量和 API 设计的成熟而更快,并非仅仅因为使用了更快的语言。Lawson 引用了 Ryan Carniato 的观点,即重写本身可能带来性能提升,因为开发者在重写时更加关注性能。 Node.js 脚本缺乏浏览器提供的字节码缓存和 JIT 编译器的优势,这可能是 JavaScript 工具与非 JavaScript 工具性能差异的一个原因,Node.js 正在获得编译缓存功能,这可能会改善性能。
JavaScript 是一种易于学习和调试的语言,拥有庞大的开发者社区。如果工具由更难的语言编写,这可能会增加调试和修改的难度,从而影响社区的贡献。他认为,JavaScript 是一种“工薪阶层”的语言,它对类型宽容,易于上手,并且由于浏览器的支持,有大量的人熟悉它。如果 JavaScript 库的作者使用不同于 JavaScript 的语言,这可能会使得开发者感到无助。
尽管新一代工具的出现是好事,但他不认为 JavaScript 本质上慢,或者我们已经穷尽了改进 JavaScript 的可能性。如果 JavaScript 工具开发变成只有少数 Rust 和 Zig 开发者能理解的领域,可能会让普通开发者感到无助。他呼吁社区考虑重写工具的长远影响,并思考是否有更少风险、更接近相同结果的路径。 Lawson 表达了对 JavaScript 未来的担忧,认为我们可能正走向一个未知的道路,而这条路可能带来意想不到的后果。
#JavaScript #思考
https://nolanlawson.com/2024/10/20/why-im-skeptical-of-rewriting-javascript-tools-in-faster-languages/