浏览器|自研浏览器内核?早已不会有厂商再犯傻了

【 浏览器|自研浏览器内核?早已不会有厂商再犯傻了】编者按:本文转自微信公众号三易生活(ID:IT-3eLife),作者:三易菌,创业邦经授权转载。
最近几天,关于华为要自研浏览器内核的消息可谓是传得沸沸扬扬。甚至有微博大V援引华为浏览器资深经理的话,“大概再过两年我们就可以看到更好的华为浏览器问世”,并表示现在的浏览器四大内核都是美国技术,我们在这方面还是盲区,期待华为能够一步一个脚印的做好华为浏览器。
如此暧昧的表述,字里行间几乎都透露着华为打算研发浏览器内核的意思。然而在经过了数天的发酵后,近日根据新浪科技的相关报道显示,来自接近华为的消息人士透露,“华为并没有在自研浏览器内核,只是在原来的浏览器基础上做了一些算法创新和修正,后续还会在安全、可信、用户隐私保护等方面加强”。
事实上,无论华为是否对外公开回应,如今研发浏览器内核其实都是一件收益与成本完全不成比例的事情。做浏览器这件事,对于华为乃至其他企业来说,都是一件吃力不讨好的事情,甚至用难如登天来形容都丝毫不过分。
浏览器|自研浏览器内核?早已不会有厂商再犯傻了
文章插图

开发浏览器、而不是浏览器内核有多难呢?此前360方面曾在《中国为什么没有自主研发的浏览器内核?》一文中,透露了几个原因。其中,此前谷歌在开发Chromium内核时调集了超过千名程序员,一年的工资近3亿美元;其次,仅一套浏览器内核的代码就已接近2400万行,从项目规模来说,已经达到了半个Windows操作系统的量级。
为什么浏览器需要如此大规模的代码来支持,原因就在于浏览器内核或者说渲染引擎是负责对网页语法的解释并渲染网页,既需要兼容各种网络协议和网络组件,同时还要保证性能。
更为重要的是,在经过了将近30年的发展后,浏览器早已走向了操作系统化,其中谷歌的ChromeOS就是典型,浏览器的底层结构也已往操作系统架构的方向在不断发展。如今的浏览器已经极度复杂化,一个函数执行栈、一个事件队列、一个微任务队列是标配,同时还需要引入多种编程语言的支持、简化渲染流程,使得渲染过程更加高效。
浏览器|自研浏览器内核?早已不会有厂商再犯傻了
文章插图

所谓的四大浏览器内核Trident、Gecko、Webkit、Blink,其实从严格意义上来讲只有两个源流,而且也不都是美国的技术。Trident内核的代表是微软的IE、Gecko的代表是Firefox,但两者其实都是Netscape(网景公司)技术的产物。
Trident内核是在1997年的IE4中首次被采用,同时也是微软在Mosaic代码的基础上修改而来。而在1993年问世的Mosaic浏览器,则是Netscape创始人在伊利诺伊大学NCSA(美国国家超级计算应用中心)时期的作品。Gecko内核则是Netscape的遗作,并且推出Firefox的Mozilla也是一批Netscape前员工建立的。
由谷歌与Opera共同开发的Blink内核,则是Webkit内核的硬分叉产物,而Webkit内核的前身是KHTML。开发于1998年的KHTML,则要追溯到挪威公司Trolltech的QT项目。在Trolltech公司的楼上则是推出Presto内核、发明CSS的Opera,并且两家公司的联系十分紧密,甚至KTHML与Presto的代码都有部分是共享的。
所以无论Mosaic还是KHTML,其实都是上世纪90年代的产物。而彼时正是互联网的早期,这些浏览器内核同时也是如今网页标准的定义者。
即便如此,技术原因也只是阻挠商业公司开发浏览器内核的次要因素。浏览器内核作为一个系统工程,最大的难点就是其所承载的网页有着高度的不确定性,需要不断地测试各种环境、各种情况,是一个需要时间的水磨功夫,但只要有钱、有人、有时间,做出一款浏览器内核也是可行的。