<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          漫畫 | 為什么中國沒有搞出瀏覽器引擎?

          共 2456字,需瀏覽 5分鐘

           ·

          2021-09-01 04:10

          這是「進擊的Coder」的第 467?篇技術(shù)分享作者:碼農(nóng)翻身劉欣來源:碼農(nóng)翻身

          閱讀本文大概需要 6 分鐘。



          注意,是瀏覽器引擎,不是瀏覽器!


          瀏覽器引擎主要有兩個功能,一個負責(zé)渲染/頁面布局,另外一個是執(zhí)行? JavaScript。


          國內(nèi)搞出的瀏覽器挺多的,不過都是基于外國的開源引擎。?為什么沒有自主的,或者主導(dǎo)的開源引擎呢?


          回答這個問題之前,我們先看看瀏覽器引擎的發(fā)展歷史,答案就在其中。?


          c7c644d168eb6d3514d1b71d2f16fa3d.webp


          1990 年夏日的一天,陽光明媚,這對于寒冷的挪威來說,非常難得。


          兩個程序員走出辦公室,步入公園,坐在長凳上享受美好的陽光。


          他們倆正在用 C++ 開發(fā)一個超聲波圖像程序,遇到了一個跨平臺的問題。


          41a6a73f2ffe0c94865388b528157853.webp


          這兩個程序員,一個叫做 Haavard ,另外一個叫做 Eirik , 他們計劃開發(fā)框架就是大名鼎鼎的?QT

          3e0909e139fc4457e938299332658607.webp


          經(jīng)過兩人幾年的辛苦努力,QT 于 1995 年發(fā)布了第一個版本。


          作為一個跨平臺的 GUI 框架,QT 深受 C++ 程序員的歡迎,被廣泛地應(yīng)用在汽車、消費電子、醫(yī)療、娛樂和工業(yè)自動化等領(lǐng)域。


          Haavard 和Eirik 不失時機地成立了一個叫做?Trolltech?的公司,專門開發(fā) QT, 并且提供專家咨詢服務(wù)。


          讓我們把目光再轉(zhuǎn)向德國,1996 年,一個德國大學(xué)生 Matthias Ettrich 在使用 Unix 桌面時候,覺得非常不爽。?


          8ec5dc82d2ba500abd6691b03255a061.webp


          他當(dāng)然不能從零開始開發(fā),一番調(diào)查研究之后,Matthias 發(fā)現(xiàn)了?QT 這個寶藏


          802808bedeeedf0a31c69759c345c04c.webp

          640570e5cef8a38b79b225654969fca6.webp

          Trolltech 公司的大力支持讓他下定決心采用 QT 來開發(fā)一個 Unix 的桌面:KDE

          0dd9a940dd79c8abce703cc73e3b0b5c.webp


          也許是對 QT 太喜歡了, Matthias 在 1998 年干脆加入了 Trolltech 公司。


          與此同時,Trolltech 公司也有很多員工參與到了 KDE 的開發(fā)當(dāng)中,甚至成為領(lǐng)導(dǎo)者,Trolltech 和 KDE 可真是一對好基友。

          08e3f0618a298ea4d257537cf1d5e315.webp


          在大西洋另一邊的美國,Web 已經(jīng)成為最熱門的發(fā)展方向,風(fēng)起云涌,英雄輩出。


          網(wǎng)景率先推出?Navigator,拔得頭籌。


          微軟不甘落后,搞出了?Explorer。


          IE 靠著和 Windows 捆綁策略,后來居上,統(tǒng)治了瀏覽器市場。


          5a6327fc417d9642c6058b5ac4ef7782.webp


          KDE 作為一個桌面環(huán)境,自然也不能落伍, 也開發(fā)了屬于自己的瀏覽器:Konqueror。


          Konqueror(其實是 Conqueror,KDE 的項目都以K開頭) ?從名稱上看就野心勃勃


          ab0c89fb35098f9f4ef40dd4ec7726ba.webp


          Konqueror 并沒有實現(xiàn)征服,因為 Unix/Linux 在桌面市場的占有率實在太低了。


          但是 Konqueror 的兩個重要組件:渲染引擎?KHTML?和 JS 引擎?KJS?卻在后來大放異彩。


          b6345ea0fc7544ceb100087d77ced64c.webp


          2001 年,蘋果想為自家的 Mac OS X 開發(fā)一個瀏覽器, KHTML?和?KJS?進入了他們的視線。


          748461c1fee46598c08909a0dd5a3c60.webp


          蘋果的開發(fā)人員對 KHTML 和 KJS 做了一個分支, 移植到了 OS X 上,改名為?WebCore 和?JavaScriptCore


          2003年,喬布斯在 Macworld Expo 上正式發(fā)布了瀏覽器 Safari 和 WebCore。


          4c1b41d5e11067c8b964ab1cb80f9728.webp


          但是 KHTML 團隊和 Apple 團隊之間的關(guān)系卻日趨緊張


          b24bcf14a8b0a47427882148446ca3c0.webp



          兩個團隊分裂了,開始獨立發(fā)展。


          2005 年,Apple 把 WebCore 和 JavaScriptCore 打包到?Webkit?中,作為一個開源軟件向公眾發(fā)布


          Webkit 是個優(yōu)秀的瀏覽器引擎, 小巧、靈活又十分強大。


          它率先實現(xiàn)了 CSS3 和 HTML5 的功能, 受到業(yè)界的喜愛, 圍繞著它有很多瀏覽器發(fā)展起來。


          98b56d81a143b54bfe715b6facd2f72b.webp


          Webkit 的成功引起了 Google 的注意,作為一個互聯(lián)網(wǎng)領(lǐng)域的巨無霸,它也要占據(jù)流量的入口,實現(xiàn)自己的瀏覽器。


          cd9de4da1cc6a3235ebaac13abd78fe1.webp


          不過,Google 對當(dāng)時的 Web 有著深刻的洞察力,它認為 Web 和之前已經(jīng)完全不同了。


          53ea728fd6e3613220a1d719588a270a.webp



          這些在瀏覽器中運行的應(yīng)用程序基本上都是 JavaScript 來實現(xiàn)的,JavaScript 引擎必須極為強勁才行。

          dcba63a8c78b589de8bee39b35711c18.webp


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


          當(dāng)然,布局和渲染引擎還可以用 Webkit 的 WebCore。?


          2c2122251c4b963ee40be47cda7d4e33.webp


          2009 年,搭載著 WebCore 和?V8?的 Chrome 問世了, Chrome 界面簡潔、穩(wěn)定, V8 引擎極為強勁,引發(fā)了下載的狂潮,并迅速成為了瀏覽器的霸主!


          此后,Google也fork 了 Webkit 的源碼,并且花了大功夫梳理,使得使得可讀性更好,編譯效率更高,2013 年形成了一個新的開源瀏覽器引擎?Blink。


          這幾個瀏覽器引擎的關(guān)系是這樣的。


          cfdbb25e980f7dc308687a5c6fbbe672.webp



          再加上 Firefox 的?Gecko , 三大瀏覽器引擎正式形成!


          86719a20778e9ff7854dbe6954f37c6d.webp


          當(dāng)然,我們不能忘了曾經(jīng)的瀏覽器霸主 IE 和它的引擎?Trident。


          18ff62d19c350a9e1a4e04da9d769845.webp


          終于可以回到文章開頭的問題了:為什么國內(nèi)的 IT 巨頭不搞出一個瀏覽器引擎呢?


          回顧這些瀏覽器引擎的發(fā)展歷史,它們幾乎都起源于 90 年代, 當(dāng)時國內(nèi)軟件業(yè)非常薄弱, 錯過了瀏覽器開發(fā)的這一波浪潮。


          隨著 Web 標準的不斷發(fā)展和完善,瀏覽器引擎也變得極為復(fù)雜,代碼量動輒就是千萬行級別,工作量巨大。


          瀏覽器引擎需要經(jīng)年累月的積累,沒法彎道超車。


          即使是強如 Google、Apple 也都是站在別人的肩膀上,加上自己的創(chuàng)新, 慢慢發(fā)展起來的。


          國內(nèi)的互聯(lián)網(wǎng)巨頭又專注于商業(yè)模式,主要在應(yīng)用層折騰,對底層技術(shù)重視不夠。把別人的瀏覽器引擎拿過來,包裝一下,形成自己的瀏覽器,這是性價比最高的做法。


          但是,我們要提出一個問題:當(dāng)你用了別人的東西,是不是也要做出貢獻呢?有沒有可能自主創(chuàng)新后搞出自己的分支、然后占據(jù)主導(dǎo)地位呢?

          87064f1d9bbbc96a67d55649096a2f6b.webp

          End

          「進擊的Coder」專屬學(xué)習(xí)群已正式成立,搜索「CQCcqc4」添加崔慶才的個人微信或者掃描下方二維碼拉您入群交流學(xué)習(xí)。


          看完記得關(guān)注@進擊的Coder
          及時收看更多好文
          ↓↓↓


          崔慶才的「進擊的Coder」知識星球已正式成立,感興趣的可以查看《我創(chuàng)辦了一個知識星球》了解更多內(nèi)容,歡迎您的加入:


          ?


          好文和朋友一起看~
          瀏覽 36
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本黄色片亚洲 | 亚洲一级视频在线 | se欧美 | 插插插网站 | 日本一区二三区 |