查看原文
其他

漫画 | 为什么中国没有搞出浏览器引擎?

IT服务圈儿 2022-09-11

The following article is from 码农翻身 Author 码农翻身刘欣

作者丨码农翻身刘欣

来源丨码农翻身(ID:coderising)

文末送书!!!


注意,是浏览器引擎,不是浏览器!


浏览器引擎主要有两个功能,一个负责渲染/页面布局,另外一个是执行JavaScript。


国内搞出的浏览器挺多的,不过都是基于外国的开源引擎。 为什么没有自主的,或者主导的开源引擎呢?


回答这个问题之前,我们先看看浏览器引擎的发展历史,答案就在其中。 



1990年夏日的一天,阳光明媚,这对于寒冷的挪威来说,非常难得。


两个程序员走出办公室,步入公园,坐在长凳上享受美好的阳光。


他们俩正在用C++开发一个超声波图像程序,遇到了一个跨平台的问题。



这两个程序员,一个叫做Haavard ,另外一个叫做Eirik , 他们计划开发框架就是大名鼎鼎的QT 


经过两人几年的辛苦努力,QT于1995年发布了第一个版本。


作为一个跨平台的GUI框架,QT深受C++程序员的欢迎,被广泛地应用在汽车、消费电子、医疗、娱乐和工业自动化等领域。


Haavard 和Eirik 不失时机地成立了一个叫做Trolltech的公司,专门开发QT, 并且提供专家咨询服务。


让我们把目光再转向德国,1996年,一个德国大学生Matthias Ettrich在使用Unix桌面时候,觉得非常不爽。 



他当然不能从零开始开发,一番调查研究之后,Matthias 发现了QT这个宝藏


Trolltech公司的大力支持让他下定决心采用QT来开发一个Unix的桌面:KDE


也许是对QT太喜欢了, Matthias在1998年干脆加入了Trolltech公司。


与此同时,Trolltech公司也有很多员工参与到了KDE的开发当中,甚至成为领导者,Trolltech和KDE可真是一对好基友。


在大西洋另一边的美国,Web已经成为最热门的发展方向,风起云涌,英雄辈出。


网景率先推出Navigator,拔得头筹。


微软不甘落后,搞出了Explorer


IE靠着和Windows捆绑策略,后来居上,统治了浏览器市场。



KDE作为一个桌面环境,自然也不能落伍, 也开发了属于自己的浏览器:Konqueror


Konqueror(其实是Conqueror,KDE的项目都以K开头)  从名称上看就野心勃勃



Konqueror并没有实现征服,因为Unix/Linux在桌面市场的占有率实在太低了。


但是Konqueror的两个重要组件:渲染引擎KHTML和JS引擎KJS却在后来大放异彩。



2001年,苹果想为自家的Mac OS X开发一个浏览器, KHTMLKJS进入了他们的视线。



苹果的开发人员对KHTML和KJS做了一个分支, 移植到了OS X上,改名为WebCore JavaScriptCore


2003年,乔布斯在Macworld Expo 上正式发布了浏览器Safari 和WebCore。



但是KHTML团队和Apple团队之间的关系却日趋紧张




两个团队分裂了,开始独立发展。


2005年,Apple 把WebCore和JavaScriptCore打包到Webkit中,作为一个开源软件向公众发布


Webkit 是个优秀的浏览器引擎, 小巧、灵活又十分强大。


它率先实现了CSS3和HTML5的功能, 受到业界的喜爱, 围绕着它有很多浏览器发展起来。



Webkit的成功引起了Google的注意,作为一个互联网领域的巨无霸,它也要占据流量的入口,实现自己的浏览器。



不过,Google 对当时的Web有着深刻的洞察力,它认为Web和之前已经完全不同了。




这些在浏览器中运行的应用程序基本上都是JavaScript来实现的,JavaScript引擎必须极为强劲才行。


既然JavaScriptCore不能满足需求,那就自己造一个吧!


当然,布局和渲染引擎还可以用Webkit 的WebCore。 



2009年,搭载着WebCore和V8的Chrome问世了, Chrome界面简洁、稳定, V8引擎极为强劲,引发了下载的狂潮,并迅速成为了浏览器的霸主!


此后,Google也fork了Webkit的源码,并且花了大功夫梳理,使得使得可读性更好,编译效率更高,2013年形成了一个新的开源浏览器引擎Blink


这几个浏览器引擎的关系是这样的。




再加上Firefox的Gecko , 三大浏览器引擎正式形成!



当然,我们不能忘了曾经的浏览器霸主IE和它的引擎Trident



终于可以回到文章开头的问题了:为什么国内的IT巨头不搞出一个浏览器引擎呢?


回顾这些浏览器引擎的发展历史,它们几乎都起源于90年代, 当时国内软件业非常薄弱, 错过了浏览器开发的这一波浪潮。


随着Web标准的不断发展和完善,浏览器引擎也变得极为复杂,代码量动辄就是千万行级别,工作量巨大。


浏览器引擎需要经年累月的积累,没法弯道超车。


即使是强如Google、Apple 也都是站在别人的肩膀上,加上自己的创新, 慢慢发展起来的。


国内的互联网巨头又专注于商业模式,主要在应用层折腾,对底层技术重视不够。把别人的浏览器引擎拿过来,包装一下,形成自己的浏览器,这是性价比最高的做法。


但是,我们要提出一个问题:当你用了别人的东西,是不是也要做出贡献呢?有没有可能自主创新后搞出自己的分支、然后占据主导地位呢? 


end


👇👇👇
留言的朋友均有机会获得书籍呦~

今日书单 | 包邮送

推荐理由:以基础知识和实例相结合的方式,成体系地介绍鸿蒙应用程序开发的常用技术。《鸿蒙应用程序开发/计算机技术开发与应用丛书》定位为鸿蒙应用程序开发的入门图书,成体系地介绍鸿蒙应用开发的基础知识,面向所有对鸿蒙操作系统感兴趣的学生、开发者和相关从业人员。

推荐理由:本书以Python数据处理工具和深度学习的基本原理为切人点,由浅人深地介绍TensorFlow的使用方法。由原理着手到代码实践,内容从最基本的回归问题开始,到近年来广泛流行的卷积神经网络和生成式模型。本书省去大量烦琐的数学推导,以通俗易懂的语言和示例阐述深度学习的原理。 推荐理由:使用深度学习进行人脸识别是近年来AI研究的热点之一。该书使用TensorFlow 2.1作为深度学习的框架和工具,引导读者从搭建环境开始,逐步深入代码应用实践中,进而达到独立使用深度学习模型完成人脸识别的目的。推荐理由:本书从Python数据分析的基础知识入手,结合大量的数据分析示例,系统地介绍数据分析与可视化方法,带领读者逐步掌握Python数据分析的相关知识,提高解决实际问题的能力。。推荐理由:详细讲述无人机的飞行原理、飞行安全、遥控飞行、编程飞行、编队飞行和场景应用等知识,并将这些知识融入近100个项目式的探究活动,可使读者通过实验探究和无人机编程活动体验飞行的乐趣。



活动规则:我们将从精选留言中随机抽取 12名 伙伴赠书,中奖者可在上方书单中任选一本图书,我们包邮赠送。书籍有限,中奖后先选先得。
  • 《鸿蒙应用程序开发(计算机技术开发与应用丛书)》 *2

  • 《TensorFlow计算机视觉原理与实战》 *2

  • 《TensorFlow人脸识别实战》 *2

  • 《Python数据分析与可视化(第2版)-微课视频版》 *3

  • 《大疆TT教育无人机从入门到精通》 *3


留言要求:
  • 内容与本文核心信息相关 & 想要的书籍名称

  • 每人仅限精选一条留言(用心留言更容易上墙)

  • 为了大家都有机会中奖,每个小伙伴每个星期只能中一次奖哦~


截止时间: 2021 年 9 月 7 日 16:00 整兑奖时间: 2021 年 9 月 9 日 16:00截止

每天 17:30 不见不散!



1、“要源码上门自取”,结果人真上门了!国内企业再惹争议

2、因未完成任务,大量小米用户被踢出MIUI内测资格:粉丝怒了

3、知名国产浏览器插件翻车!劫持用户、监视用户访问页面、疯狂弹广告

4、高中Up主200天肝出偷懒机器人!可拎包,全场景跟随,已获百万播放

点分享

点点赞

点在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存