2020年6月5日

一种浏览器模型的设想

作者 C哥

除了操作系统以外,恐怕浏览器是这个世界上最复杂的通用软件了。应该超过了字处理、电子表格和幻灯片。他的复杂之处,除了前面3项办公软件本身的渲染和交互的复杂之外,还多了一个网络模型和安全的问题。

我始终在想一种可能性,把网络层拆出来,作为一个独立的软件存在,浏览器只是一个渲染和交互的工具。

其实,把浏览器做为一种通用的应用程序外壳的思路,已经有过多种实践了,有的比较成功,如chm阅读器、各种app内嵌页面,也有失败的案例,如微软的HTA文件,mozilla的promise(一个开源应用程序框架,已经在官网消失了)。包括很久以前的IDE里就可以集成WebView这样的控件,基本都是做为一个内嵌浏览器来使用的。

但对于应用程序开发而言,大多数时候只是需要一个 WebShader, 至于html文件,css文件,js文件从哪里来,应该是由开发人员控制的。但最终是应为浏览器层的无法分拆,最后都用成了反问本地文件(file:///).

这个情况在v8解释器出现之后,才有了一点改观。浏览器本身是3个核心工具的集成:渲染器、js解释器、网络管理器。v8解释器是第一个脱离于浏览器独立使用js解释器,由此诞生了一大批可以在服务器端执行的js脚本(node.js系列)。如果,再能把web渲染器分拆出来,并制定合适的同js解释器、网络管理器进行通讯的协议,我相信会再次爆发出大批的应用。包括word、execl、powerpoint都会浮现出在服务器端执行的无界面版本。毕竟渲染可以是只计算不绘制。

先写这么多。还有很多思路并不成熟,慢慢完善。

2020.06.05