动态语言都是很有用的工具。用户可以使用脚本快速简洁地将复杂的系统连接在一起并表达自己的想法,而不必顾虑诸如内存管理或系统构建之类的细节。近年来,像Rust和Go这样的编程语言让程序员能更轻松地生成复杂的原生代码;这些项目也是计算机基础架构发展历程中极为重要的里程碑。但是,我们认为开发工作中有一个可以应对多种问题领域的强大脚本环境还是非常重要的。
JavaScript是应用最广泛的动态语言,只需一个Web浏览器就能在所有设备上运行。精通JavaScript的程序员数不胜数,并且社区已经为了优化JS的执行效率而投入了大量资源。在像ECMAInternational这样的标准组织推动下,JS语言得到了精心而持续的改进。我们相信,无论是在浏览器环境中还是作为独立进程使用,JavaScript都是动态语言工具链的首选。
我们在这一领域的早期项目Node.js被证明是一个非常成功的软件平台。人们发现它能很好地用于构建Web开发工具、构建独立的Web服务器以及其他许多用例。但是,Node是在年设计的,当时的JavaScript与今天的语言版本有着明显的区别。出于用户需求考虑,Node在当时必须发明许多概念,其中很多在后来都被标准组织采纳,并通过各种方式加入了JS语言规范。在“Node中的设计错误”演讲中对这一话题有更具体的讨论。