当前位置: 首页 > Web前端 > JavaScript

Node.js 创始人:Javascript 容器是简化服务器抽象的“先驱”践行者

时间:2023-03-27 00:31:54 JavaScript

Node.js创始人:Javascript容器是简化服务器抽象的“先锋”实践者——Javascript是通用脚本语言的“未来”,Javascript容器是简化服务器抽象的“先锋”实践者。众所周知,大多数服务器程序都运行在Linux系统上,Linux系统由文件系统、一些可执行文件、一些共享库组成,它们可能与systemd或nsswitch等系统软件进行交互。但由于服务器软件通常依赖于许多系统资源和配置,因此部署它在过去一直是一个挑战。Linux容器的出现很好的解决了这个问题。尤其是在Docker进一步普及了Linux容器的使用之后,OS级的虚拟化提供了一个极好的分发服务器软件的机制,每个容器镜像都是一个没有依赖关系的ready-to-runpackage。根据RyanDahl的说法,类似的封闭环境可以在浏览器JavaScript中找到,尽管是在更高的抽象层次上。直到2018年,Cloudflare的ZackBloom才推出了Workers服务,这“促使我们思考JavaScript本身是否可以提供一种新型的自给自足的服务器容器”——“我们越能消除不必要的抽象,就越接近对于“网络就是计算机”的概念。JavaScript是通用脚本语言的“未来”RyanDahl认为技术很难预测,但万维网(WorldWideWeb,WideAreaNetwork)将肯定会在10年内出现。随着越来越多的人类基础设施通过web应用连接起来,构成web的标准,HTTP,HTML,CSS,JavaScript,肯定会在10年内出现。因此,“我相信JavaScript将不断发展和完善”。我们知道,网络是人类信息的基本媒介,而脚本语言就像推动网络发展的“基石”。其中,JavaScript是不同于其他编程语言,因为它与这个基础设施紧密相连。脚本语言对许多服务器端问题有意义,允许更快、更便宜地编写业务逻辑,但大多数正在编写的代码不受计算量的限制,而是受生产力的限制——编写速度和开发人员的金钱成本。脚本语言(Python、Ruby、Lua、Shell、Perl、Smalltalk、JavaScript)非常相似,在语法和API上存在差异,但没有什么可比较的。在这一点上,相信用过Rust或者C的人都能理解脚本语言的感觉。RyanDahl得出结论,脚本语言很有用,但它们几乎都是一样的,“JavaScript的使用范围更广,而且未来证明。因此将JavaScript视为通用脚本语言是有道理的”。服务器软件的高级容器:JavaScriptSandboxJavascript中的沙箱不是传统意义上的沙箱,它是一种语法上的hack,指的是Javascript中处理模块依赖的闭包。JavaScript沙箱的“容器”本身并不是为了解决Linux容器所针对的问题而设计的,它的出现源于它的简单性——最小化Web服务业务逻辑的样板,它与浏览器共享概念,减少程序概念开发人员需要知道的(比如在编写Web服务时,很可能任何systemd配置都只是不必要的样板)。说到JavaScript浏览器API,相信每个Web开发者都知道,因为JavaScript容器抽象是建立在同一个浏览器API上,所以开发者所需的经验总量会减少。这正是因为Javascript的通用性降低了它的复杂性。性别。在这个新的服务器抽象层中,JavaScript取代了shell,比Bash/Zsh更适合脚本编写。JavaScript沙箱可以调用Wasm而不是像shell那样的Linux可执行文件。概述不可否认的是,JavaScript是一种通用的脚本语言,也正是因为JavaScript的无处不在,才出现了一种新的类容器抽象——JavaScript容器,它简化了服务器。JavaScript容器的出现并不意味着Linux容器“死了”,这个抽象层次总是有用的。尤其是对于编写大量“业务逻辑”的开发者来说,当你搭建一个网站时,或许大部分的“Web服务”都可以通过使用JavaScript容器而不是Linux容器来简化。目前,在试图从根本上简化服务器抽象,并进一步探索这些想法的过程中,JavaScript容器可能是实践者的“先驱”。你有同感吗?欢迎在评论区留言互动。