当前位置: 首页 > 科技观察

漫画-为什么中国没有开发浏览器引擎?

时间:2023-03-20 02:18:43 科技观察

注意,是浏览器引擎,不是浏览器!浏览器引擎主要有两个功能,一个是负责渲染/页面布局,另一个是执行JavaScript。中国生产的浏览器相当多,但都是基于国外的开源引擎。为什么没有独立或主导的开源引擎?在回答这个问题之前,我们先看看浏览器引擎的发展史,答案就在其中。那是1990年夏天一个晴朗的日子,这对于寒冷的挪威来说是非常难得的。两个程序员走出办公室,走进公园,坐在长椅上享受美丽的阳光。两人在用C++开发超声成像程序时遇到了跨平台的问题。这两个程序员,一个叫Haavard,另一个叫Eirik,他们计划开发的框架就是大名鼎鼎的QT。经过两年的努力,QT于1995年发布了第一个版本。QT作为一个跨平台的GUI框架,深受C++程序员的喜爱,广泛应用于汽车、消费电子、医疗、娱乐、工业自动化等领域。Haavard和Eirik不失时机地成立了一家名为Trolltech的公司来开发QT并提供专家咨询服务。让我们再次将目光转向德国。1996年,一位德国大学生MatthiasEttrich在使用Unix桌面时感到非常不自在。当然,他不可能从头开发。经过一番研究,Matthias发现了QT的宝藏。Trolltech的大力支持让他下定决心使用QT开发Unix桌面:KDE可能是太喜欢QT了,Matthias在1998年2000年干脆加入了Trolltech。同时,奇趣科技的很多员工都参与了KDE的开发,甚至成为领导者。Trolltech和KDE真是好朋友。在大西洋彼岸的美国,Web成为最火热的发展方向,风起云涌,英雄辈出。Netscape率先推出了Navigator,而且它一马当先。微软也不甘示弱,推出了Explorer。IE依靠与Windows的捆绑策略后来居上,称霸浏览器市场。KDE作为桌面环境自然不能落伍,并且还开发了自己的浏览器:Konqueror。Konqueror(实际上是Conqueror,KDE的项目都是以K开头的)从名字上就雄心勃勃。Konqueror没有实现征服,是因为Unix/Linux在桌面市场的占有率太低。但Konqueror的两个重要组件:渲染引擎??KHTML和JS引擎KJS却在后来大放异彩。2001年,Apple要为自己的MacOSX开发浏览器,KHTML和KJS进入了他们的视线。Apple开发人员制作了KHTML和KJS的分支,将其移植到OSX,并将其重命名为WebCore和JavaScriptCore。2003年,乔布斯在MacworldExpo上正式发布了浏览器Safari和WebCore。但KHTML团队与Apple团队的关系日趋紧张,两个团队分道扬镳,开始各自独立发展。2005年,Apple将WebCore和JavaScriptCore打包成Webkit,作为开源软件对外发布。Webkit是一个优秀的浏览器引擎,小巧、灵活且非常强大。它率先实现了CSS3和HTML5的功能,深受业界喜爱,许多浏览器都围绕它开发。Webkit的成功引起了Google的注意。作为互联网领域的巨头,它也会占领流量入口,实现自己的浏览器。但是,当时的谷歌对Web有着深刻的洞察,认为Web已经和以前完全不同了。这些运行在浏览器中的应用程序基本上都是由JavaScript实现的,JavaScript引擎一定是极其强大的。既然JavaScriptCore不能满足需求,那就自己建一个吧!当然布局和渲染引擎也可以使用Webkit的WebCore。2009年,搭载WebCore和V8的Chrome问世。Chrome界面简洁稳定,V8引擎极其强大,引发下载狂潮,迅速成为浏览器霸主!之后Google也fork了Webkit的源码,费了一番功夫整理,使其可读性更强,编译效率更高。2013年,新的开源浏览器引擎Blink成立。这些浏览器引擎之间的关系如下。再加上Firefox的Gecko,三大浏览器引擎正式成型!当然,我们不能忘记曾经的浏览器霸主IE和它的引擎Trident。最后,我们可以回到文章开头的问题:为什么国内的IT巨头没有拿出浏览器引擎?回顾这些浏览器引擎的发展史,几乎都起源于1990年代。当时国内的软件产业非常薄弱,错过了这一波浏览器的发展。随着web标准的不断发展和完善,浏览器引擎变得异常复杂,代码量动辄上千万行,工作量巨大。浏览器引擎需要多年的积累,不可能弯道超车。即便是谷歌、苹果这样的强者,也是站在别人的肩膀上,加入自己的创新,慢慢发展。国内的互联网巨头也都专注于商业模式,主要在应用层,对底层技术的重视不够。把别人的浏览器引擎拿来,打包,形成自己的浏览器,是最省钱的方法。但是,我们想问一个问题:当你使用别人的东西时,你一定要做出贡献吗?自主创新后是否可以创建自己的分支,然后称霸?你看到的只是冰山一角!