什么是first-class runtime environment?是否存在second class runtime environment?
什么是 first-class runtime environment
首先需要明确:你搜索到的“First class environments”是编程语言特性领域的标准化概念,和《Modern Full-Stack Development》一书中的表述完全属于不同语境。书中提到的「first-class runtime environment(一等运行时环境)」是工业开发领域的通俗非标准化表述,没有统一的学术定义,核心指满足以下特征的运行时环境:
- 拥有独立的系统级资源访问权限,无需依附上层宿主程序即可直接操作本地文件系统、调用操作系统原生API、访问各类数据库、处理全场景网络请求
- 生态成熟度达到工业级生产标准,有完整的工具链、类库支撑,可独立承载后端服务、桌面应用等各类重型生产级项目开发
- 性能、稳定性表现可对标Java、.NET这类传统主流服务端运行时,可作为中大型项目的核心技术栈选型
是否存在 second class runtime environment
这类表述是和「一等运行时」对应的非正式说法,一般指代能力受宿主严格限制的运行时,最典型的例子就是浏览器内置的JavaScript运行时:
- 所有能力受浏览器沙箱约束,无法直接操作本地文件、无法调用系统原生API、网络请求受同源策略限制,仅能使用浏览器对外暴露的有限接口
- 应用场景高度单一,只能用于浏览器前端逻辑开发,无法独立支撑其他场景的业务开发
书中表述的对应解释
书中的描述是把Node和传统浏览器端的JS运行时做对比:
Node是first-class runtime environment,意味着你可以用它实现与本地文件系统交互、访问关系型数据库、调用远程系统等诸多操作。过去你需要使用Java、.Net这类“正统”运行时才能完成这些工作,JavaScript在此领域并无一席之地。但Node的出现改变了这一现状,它不仅在性能上具备竞争力,还能为开发者提供同等丰富的能力,几乎可以实现所有你能想到的需求,这是此前的JavaScript无法做到的。
在Node出现之前,JavaScript只能运行在浏览器这个受限宿主中,能力、场景都有极大局限,不属于工业级通用运行时;Node出现后JS终于拥有了和Java、.NET同等级的完整运行时能力,所以作者将其称为一等运行时环境。
内容的提问来源于stack exchange,提问作者Lerner Zhang
相关产品推荐
相关产品推荐

