對資深 Web 開發(fā)者來說, 這行代碼并不陌生。Internet Explorer 曾是 Web 2.0 的源泉,是 Internet 創(chuàng)新驅(qū)動力,歷經(jīng)了興起和衰落,而后成為了 Web 開發(fā)者的痛點。2022 年 6 月 15 日,微軟 IE 正式退役,在過去的 27 年里,IE 所經(jīng)歷的整個的生命周期其實也是互聯(lián)網(wǎng)從萌芽到繁盛的歷史。
接替 IE 的是 2015 年誕生的 Microsoft Edge,這是一款帶有復興使命的瀏覽器產(chǎn)品。微軟將精力放在了將 Edge 打造為現(xiàn)代網(wǎng)絡瀏覽器上。
在告別 IE 的特殊時期,InfoQ 有幸和 Edge 團隊聚在一起聊了聊瀏覽器的發(fā)展歷史,Edge 開發(fā)過程和產(chǎn)品理念,以及 Web 開發(fā)的過去以及未來。
采訪嘉賓:
邢璟夏:微軟(亞洲)互聯(lián)網(wǎng)工程院瀏覽器與移動端應用部總經(jīng)理,全球合伙人。
陳志寧:微軟(亞洲)互聯(lián)網(wǎng)工程院瀏覽器首席技術(shù)研發(fā)經(jīng)理。
從 IE 到 Edge:尊重 Web 的過去,向往 Web 的未來
構(gòu)建現(xiàn)代瀏覽器是一件相當復雜的工作。
瀏覽器本質(zhì)上是一個操作系統(tǒng),底層包含渲染引擎和執(zhí)行引擎兩大部分。在將要進入 Web3.0 的時代,網(wǎng)站上的元素以及互動已經(jīng)非常多、非常豐富,為了支持這么豐富的展現(xiàn)形式,同樣還要兼顧效率,渲染引擎已經(jīng)變得非常復雜。除了渲染引擎之外,還要去搭建整個瀏覽器的生態(tài)和眾多功能。
無論是 Edge 還是其他瀏覽器,很多功能還都有跨屏幕跨設備同步的能力。我們每天在瀏覽器里做著各種操作,比如在電腦端將網(wǎng)頁放到收藏夾里,在手機端也能看到同樣的網(wǎng)頁。這些操作看似點點手指頭這么簡單,背后其實能分解出很多工作,要用很多前端的能力去跟用戶做交互,那么這就導致前端執(zhí)行引擎邏輯同樣不會簡單。因此作為一個網(wǎng)絡上供上億人使用的交互應用,開發(fā)一個瀏覽器所涉及的代碼量已達數(shù)千萬行,跟桌面操作系統(tǒng)同屬計算機領域最為復雜的工程之一。
經(jīng)過了二三十年的發(fā)展,這個行業(yè)仍然處于競爭激烈創(chuàng)新不斷的時期,我們常見的包括微軟的 IE/Edge、蘋果的 Safari、谷歌的 Chrome 等。其中 IE 曾是全球市場份額第一的瀏覽器,并在 2003 年迎來歷史巔峰時刻,全球份額高達 95%,遠超現(xiàn)在領先的 Chrome、Safari 等瀏覽器的份額。
IE 引入了如 ActiveX 控件獨有框架,在 IE 處于主導地位的時代,大量網(wǎng)站和其他傳統(tǒng)應用程序選擇只與 IE 瀏覽器完全兼容,其結(jié)果就是其中很多缺少更新的網(wǎng)站至今只支持 IE 瀏覽,如果換一個瀏覽器訪問的話,網(wǎng)站的主要功能會無法運行。
曾經(jīng)成為 Web 開發(fā)者的痛點,不兼容 macOS 系統(tǒng),經(jīng)歷過被競爭,微軟勇于從過程中學習,2022 年 6 月 15 日,IE 正式退役,微軟 Edge 瀏覽器為它的替代者。

新一代的瀏覽器放棄了 IE 專有功能,但其雙引擎形式能支持 IE 模式,且能兼容其它平臺,擁抱全平臺,將可用性擴展到了 macOS、Linux、Android 和 iOS 系統(tǒng)。
作為微軟最新的瀏覽器平臺,Edge 有兩大發(fā)展階段。首先是于 2015 年發(fā)布的第一版本,當時使用的是微軟自己的引擎 EdgeHTML,旨在與 Safari、Chrome 和其他瀏覽器使用的 WebKit 引擎完全兼容?;谧匝幸妫④涍€迭代了數(shù)次,于 2017 年發(fā)布了安卓跟 iOS 的版本。
其次是在 2018 年,微軟做出了遷移到 Chromium 的大膽決定,將 Edge 的底層渲染引擎和 JavaScript 執(zhí)行引擎遷移到了 Blink 和 V8,這相當于將整個代碼做了一次脫胎換骨的全新升級。2019 年,微軟發(fā)布了基于新的 Chromium 瀏覽器的預覽版本,同時在同年 5 月 20 號推出了 Mac 版本。
2020 年 10 月份微軟再次發(fā)布了 Edge for Linux,從此覆蓋了大部分的主流操作系統(tǒng),全面擁抱全平臺,這也是跟 IE 之前一個很大的不一樣。
親歷者的獨到見解
瀏覽器發(fā)展至今,擁抱標準、提升體驗已經(jīng)是一種公認的趨勢。
微軟瀏覽器的發(fā)展有過無人能及的巔峰但也曾受到過質(zhì)疑,尤其是在過去幾年谷歌 Chrome 瀏覽器接管成為市場主導者之后。但無論是目睹瀏覽器逐漸穩(wěn)定的開發(fā)者,還是參與瀏覽器產(chǎn)品的設計者,作為歷史的見證者,都一定會有自己的體會以及對技術(shù)的獨到見解,了解這些背后的故事才能夠明白技術(shù)為何這樣演變。
專有框架是 Web 開發(fā)史上最大的噩夢?!
多年來,HTML 前端經(jīng)歷過很多階段,IE 經(jīng)歷了多次重新設計。IE 的第一個版產(chǎn)生于 Web 1.0 時期。前端主要是完成渲染,用戶能夠被動接收并閱讀頁面內(nèi)容,是一種單向的體驗。
到了 Web 2.0 時代,用戶開始有了更多交互訴求,實現(xiàn)在頁面上登錄、購買、點贊、投票… 網(wǎng)頁不再是靜態(tài)實體。作為這樣所有頁面的載體,瀏覽器也要保持與時俱進。在這個時期,IE 引入了支持異步的 AJAX、后來必不可少的 CSS 功能,以及現(xiàn)在廣受詬病的 ActiveX 控件支持。
對于 IE 的技術(shù),邢璟夏認為:“如果我們站在這個時間點,從上帝視角往回看的話,你現(xiàn)在可能會覺得 ActiveX 技術(shù)已經(jīng)過時了,但回到那個時間點的話,ActiveX 是微軟提出的在當時能夠切實有效的解決問題的一種手段。只不過到了今天,有更好的實現(xiàn)方式了,它就不那么 fashion 了。”
為什么 IE 不兼容 macOS?
在蘋果系統(tǒng)占據(jù)半壁江山的時候,IE 不支持 macOS 確實有些令人費解。但如果了解 2000 年左右的一些歷史背景,我們就會知道微軟瀏覽器在當時是支持 macOS 的。在 1997 年到 2003 年,MacOS 10 時期,IE 是蘋果默認綁定的瀏覽器。
據(jù) Wired《Apple Rescued – by Microsoft》一文記載,在這個時間段,微軟向蘋果投資了 1.5 億美元,作為與蘋果簽訂的五年協(xié)議的一部分,微軟一直在為 Mac 維護 IE。有老用戶評價說,“那時,Mac 上的 IE 是當時該系統(tǒng)上最好的瀏覽器。相比其它瀏覽器,IE 快速、穩(wěn)定,看起來很原生…”
五年過去后,蘋果開發(fā)了自己的瀏覽器,于 2003 年推出基于 WebKit 的 Safari 瀏覽器。微軟隨之停止了對于 macOS 的支持,專注于 Windows,并建議用戶遷移到蘋果自帶的 Safari。更重要的是,蘋果于 2005 年將 WebKit 開源,當谷歌開始開發(fā)自己的瀏覽器時,它轉(zhuǎn)向了 WebKit,Chrome 的故事就開始了…
“這也是當時的一個技術(shù)氛圍,當時業(yè)界的狀態(tài)是各大科技公司有各自的系統(tǒng),各占一方鰲頭,不是像今天這樣的業(yè)界,著重于共創(chuàng)共生跨平臺的協(xié)作?!标愔緦幹v到,“如今,微軟的 Edge 瀏覽器也能夠覆蓋各種平臺,不只是 Windows、macOS 以及 Linux,還有移動端的 iOS 跟安卓,還有各種類型的用戶裝置,包括桌面、移動、電視、微軟的 Xbox 游戲平臺,還有最新、最智能的混合現(xiàn)實的 Hololens,都能夠支持使用 Edge 瀏覽器?!?/p>
為什么會采用開源內(nèi)核?
谷歌于 2008 年發(fā)布了 Chrome 瀏覽器,并開源了 Chromium 內(nèi)核源代碼,最開始基于 WebKit 和 JavaScript 執(zhí)行引擎 V8。后來,Chrome 開始研發(fā)自己的渲染引擎,形成了 Blink+V8 的引擎架構(gòu)。
Chromium 完全由開源社區(qū)進行維護,生態(tài)開放且繁榮。微軟瀏覽器于 2018 年轉(zhuǎn)向開源內(nèi)核后,Edge 團隊就逐漸成為了全球第二大 Chromium 開發(fā)團隊。Edge 基于 Chromium 底層做了很多性能優(yōu)化,還引入了很多人工智能、Machine Learning 的技術(shù)。
微軟將 Chromium 作為 Edge 引擎收到了業(yè)界褒貶不一的評價,有些人認為此舉減少了整個 Web 瀏覽器市場的多樣性。
邢璟夏認為,利用開源回饋開源是一方面原因,最重要的是“我們希望用戶訪問一個網(wǎng)站的時候,不管用什么瀏覽器,他都能得到一個高度一致的體驗。而開發(fā)者在做這個網(wǎng)站時,不需要在 Edge 上適配一次,在 Chrome 上適配一次,在 Safari 上再適配一次。適配多次對開發(fā)者非常不友好。”
構(gòu)建現(xiàn)代瀏覽器:兼顧性能、功能和安全
互聯(lián)網(wǎng)已經(jīng)發(fā)生了翻天覆地的變化,重新構(gòu)建的 Edge 瀏覽器也放棄了 IE 上的一些過時技術(shù),但最重要的是得到了性能上的明顯提升,啟用速度快,也不怎么占內(nèi)存。
Edge 團隊在日常中不斷地去對底層的渲染引擎和 JavaScript 執(zhí)行引擎做深度技術(shù)優(yōu)化,比如像 PGO 算法、渲染引擎的 hot code paths 功能,讓渲染速度跟 IE 相比有比較大的提升,其中 CPU 使用率優(yōu)化了 33%,內(nèi)存使用率優(yōu)化了 32%。
構(gòu)建瀏覽器非常重要的一個點是頁面的使用反應,不管是在滾動還是按鍵,在頁面上做交互的時候,渲染速度和用戶體驗都是非常重要的。以前很多重度用戶習慣打開幾十個 Tab 頁面,在頁面元素比較復雜的情況下,打開多個頁面的行為會導致瀏覽器明顯卡頓,反饋很慢, 為此 Edge 的團隊做了很多的深度的技術(shù)優(yōu)化,放到現(xiàn)在,這樣的使用方式對用戶來說幾乎沒有什么影響。Edge 團隊不斷“一步一步地”做了很多小而美的優(yōu)化來提升頁面渲染速度,還通過 Smart Sleep 人工智能節(jié)能功能,判斷不常用的頁面并將內(nèi)存先回收,直到再次點擊的時候重新快速渲染,保證在打開很多頁面的時候,整個系統(tǒng)的內(nèi)存占用率不會是一個線性的提升。
此外,雖然 Edge 跟 Chrome 都基于開源的 Chromium,但微軟在此之上還做了很多差異化的能力。比如從 Edge 誕生就具備的沉浸式的閱讀模式,收藏集錦功能,垂直標簽欄功能,以及智能翻譯和 Read Aloud(大聲朗讀)無障礙功能等等。

背靠微軟的綜合研發(fā)能力,Edge 還引入了一些其它 AI 功能。像智能填充功能,使用瀏覽器時我們會在很多地方反復地輸入一些高度重合的信息,比如購物時可能在京東輸入完地址信息后,在天貓可能還要輸入,Edge 提供了一個智能填充的功能,用機器學習訓練一個模型,在保證用戶隱私的情況下抽取字節(jié)段,填寫時自動判斷自動填充。另外 Edge 還能在打字的時候提供智能糾錯,通過人工智能判斷上下文的語境,對用詞不對的地方給予提醒。除此之外,在購物體驗上也有專門的創(chuàng)新功能,可以跨網(wǎng)站或 App 端比對多家的商品價格,做信息匹配和推薦,保障購物體驗的同時還能幫用戶省錢。
對于 Edge 來說安全也是一個非常重要的領域。微軟團隊做了很多增強安全保護的功能,保障 Edge 瀏覽器成為最安全的瀏覽器。比如 Smart Screen 的功能,為用戶提供過濾機制,用機器學習智能過濾釣魚網(wǎng)站、潛在有危險的網(wǎng)站。在企業(yè)側(cè) Edge 跟 Microsoft 365 整體的產(chǎn)品也有很強的聯(lián)動機制,還能夠基于 Azure Active Directory(AAD)、Access 設定來保障企業(yè)的機密數(shù)據(jù)。在企業(yè)版中提供遠程瀏覽器訪問,在服務端去渲染,再將 Picture、Video 形式的數(shù)據(jù)傳到客戶端,徹底的保護客戶端的安全。
Edge 背后的中國團隊
這個影響上億萬人的產(chǎn)品的背后,有一支中國開發(fā)團隊參與產(chǎn)品的全球的創(chuàng)新。他們肩負了重振微軟瀏覽器的品牌重任,讓 Edge 跟上行業(yè)競爭的步伐,不斷贏取更多的用戶。中國團隊負責了 Edge 瀏覽器移動端、部分桌面端,以及企業(yè)端功能開發(fā)。Edge 在中國的整個產(chǎn)業(yè)鏈非常大,而且涵蓋了瀏覽器的方方面面。
為贏取用戶的喜愛,Edge 非常用心在關(guān)注瀏覽器的用戶體驗和包容性。瀏覽器必須是可互操作的并符合一套全面的標準,所以 Edge 在帶領 Web 業(yè)界技術(shù)方向的同時,也會參與 W3C 和 EcmaScript JavaScript 標準的制定。
此外,微軟在中國也設有用戶體驗團隊,為不同用戶群體提供個性化服務,并針對不同場景測試和驗證用戶對 Edge 的各種功能的接受度和喜愛度。
企業(yè)文化
中國團隊面向全球開發(fā),跟印度團隊和美國團隊也有緊密合作,同時還會整合 AI 團隊和安全團隊的力量,比如 AI 能力的應用和安全上的補丁升級。大家跨團隊跨國家協(xié)作,讓這些前沿技術(shù)落地到不同的合適的場景中。
微軟在很多年前開始就是一個跨國開發(fā)公司,堪稱是全球化企業(yè)的范例。在協(xié)作中,他們遇到過的問題也是現(xiàn)在中國出海全球化企業(yè)遇到的問題,比如雖然開會有時差。這種情況下,微軟的經(jīng)驗是首先團隊之間一定會做足溝通,相互協(xié)調(diào),“開會會找一個大家都能接受的黃金時間”。另一個是在有文化差異的背景下,鼓勵成長型思維,各國團隊之間強調(diào)“相互欣賞,相互學習”,保障彼此之間的良好溝通,踐行 OneMicrosoft 的價值觀,讓大家在相互尊重的情形下進行協(xié)同開發(fā)。
在成熟的企業(yè)文化下,Edge 團隊雖然是一支全球化的分布式團隊,在不同地方跨地區(qū)協(xié)作,但無論是國內(nèi)還是國外,遠程在家還是在公司,“跟在一個地方?jīng)]有區(qū)別?!毙檄Z夏說,“大家并不會考慮多地區(qū)而去單獨設計我們的產(chǎn)品研發(fā)流程。但是我們會為了考慮到當?shù)赜形幕牟町?,大家作息時間時差的差異,會定向的做一些協(xié)同和溝通機制,通過流程及工具讓人和地點相互解耦?!?/p>
工程文化
據(jù)網(wǎng)絡上的最新數(shù)據(jù)顯示,Edge 受歡迎程度不斷攀升,今年 4 月占有率突破了 10% 的大關(guān)(約 1.56 億用戶),首次超過蘋果 Safari,成為世界第二大瀏覽器。
上世紀八九十年代,市場需求較為穩(wěn)定,瀑布式開發(fā)流程是首選。瀑布模型相當于半年開發(fā)、半年測試:前半年就是瘋狂的寫代碼,后半年瘋狂的解 Bug,然后上線。在現(xiàn)在的發(fā)展趨勢下,很難預見到一年之后用戶需要什么,所以瀑布模式肯定是不可取的。研發(fā)團隊需要加快整體的開發(fā)速度,現(xiàn)在很多移動互聯(lián)網(wǎng)產(chǎn)品都會采用小步快跑、快速迭代的方式。但到底是采用小步快跑,還是一次性做到位?這很難有一個確切的標準。在有激烈行業(yè)競爭的情況下,Edge 的產(chǎn)品會采用什么開發(fā)速度?微軟也一直在前進,在進化,在“快”跟“好”之間去找一個平衡點。
由于整個業(yè)務非常復雜,微軟會把權(quán)力下放到各個團隊,讓大家去選擇自己合適的開發(fā)的步調(diào)、開發(fā)的方式去做事情。在 Edge 團隊中,新瀏覽器的發(fā)布周期選擇了跟 Chromium 保持一致。Chromium 開發(fā)者社區(qū)是一個全球頂尖的開源社區(qū),開發(fā)者們在不停地貢獻自己的代碼和力量。跟社區(qū)周期保持一致的好處是能第一時間更新,杜絕安全隱患,并及時將最新版本送到用戶手上。
在定好時間周期的基礎上,Edge 追求的是技術(shù)穩(wěn)定性、技術(shù)健康度,和功能開發(fā)之間的平衡。上線一個算法,不會是要求時間優(yōu)先,比如下個月就要看到,這種方式就算能上線了,也會導致優(yōu)化指標達不到最初的效果。所以,在做項目管理和排期時,Edge 團隊會先保證更好的工程體驗,持續(xù)在基礎的性能、內(nèi)存優(yōu)化、啟動速度上投入,保證有非常大的數(shù)量的技術(shù)人力在做整體的穩(wěn)定性、健康度優(yōu)化的工作。
在互聯(lián)網(wǎng)模式的沖擊下,減少測試步驟、快速進行試錯已成為部分企業(yè)的常見打法,這一切不斷沖擊著傳統(tǒng)軟件測試中賴以生存的“流程”“規(guī)范”等優(yōu)勢,但在微軟,還是有非常嚴格的產(chǎn)品交付流程。
由于 Edge 的用戶體量已經(jīng)過億,交付到用戶和開發(fā)者手上的必須是一個高質(zhì)量產(chǎn)品。因為在用戶體量非常大的情況下,小問題很容易被放大,假設比例是萬分之一的話,10 萬人產(chǎn)品只影響 10 個用戶,如果產(chǎn)品用戶的體量不大,那么可以走快速發(fā)布、快速迭代路線。但微軟 Edge 已經(jīng)有了上億用戶,如果產(chǎn)品中存在一個 Bug,發(fā)布之后影響的可能起碼是 10 萬名用戶?!霸趩栴}產(chǎn)生之前先把它找出來、解決掉,而不是事后再去防范?!?/p>
在一個完整的研發(fā)流程上,微軟在測試上的投入非常大,會給開發(fā)留足夠的時間去做自動化測試。相對手工測試用例,自動化測試是一種更高效的做法,相當節(jié)省時間的方式。并設有專門的測試團隊去保障每一個 feature 的質(zhì)量,負責測試產(chǎn)品的功能、性能、體驗,保障給到用戶的時候是最好的狀態(tài)。因為微軟所有的產(chǎn)品都是 for global 的,所以每個產(chǎn)品都是多語言的,這給測試帶來的挑戰(zhàn)也是非常大的,所以在 Edge 開發(fā)流程中,從產(chǎn)品經(jīng)理到開發(fā),到測試團隊,都要對“測試”的事情負責。
Web 技術(shù)的發(fā)展:幸福的繁榮
如果說 IE 曾是開發(fā)者的痛點,但 Web 開發(fā)社區(qū)顯然表現(xiàn)出對 Microsoft Edge 的喜愛。
開發(fā)人員和 QA 測試人員都知道為 Web 構(gòu)建的功能可以在一個瀏覽器中運行,并不意味著它可以在每個瀏覽器中運行。但 Web 的兼容性又是極其重要的,是開發(fā)一個好的 Web App 的必備關(guān)鍵,遷移到 Chromium 意味著 Edge 的框架功能更加一致。Microsoft Edge 中的內(nèi)置開發(fā)者工具也具備了 Chrome 中提供的工具,包含 Extension、DevTools,以及 F12。另外,Edge 還提供了 WebView2 和 PWA(漸進式網(wǎng)絡應用程序)平臺。
WebView2 能夠讓開發(fā)者在他們的原生應用里嵌入 WebView,來渲染已有的 Web 內(nèi)容和 Web 前端模塊。WebView2 本身基于 Microsoft Edge 渲染引擎,是一個基于 Chromium 的 Hybrid App 開發(fā)平臺,但又獨立于 Edge 瀏覽器,不需要用戶安裝 Edge 瀏覽器來運行。Web 開發(fā)團隊可以利用它做到一套 Web 代碼,跨不同平臺使用。
而 PWA 則能幫助前端開發(fā)工程師適配原生應用,用戶能夠?qū)⒁延械?Web 應用直接安裝成 native Apps,并支持離線訪問、service worker。與 WebView2 相比,各有不同的適用場景,PWA 使用場景更為廣泛。
“微軟的 Teams 會議應用,在 Windows 平臺上面已經(jīng)開始用 WebView2 來代替 Electron,主要原因是平臺性能的支持和內(nèi)存使用優(yōu)化。WebView2 能讓 native object 和 Web 結(jié)合來使用例如 Video 直播流等原生高性能 C++ 模塊,適合 Teams 這種需要處理大量音頻與視頻內(nèi)容的并對時延要求很高的場景。Outlook、Office、Visual Studio 等都已經(jīng)逐漸使用 WebView2 場景來渲染它的 Web 模塊?!标愔緦幗榻B。
現(xiàn)如今,在 Web 跟 native 交互的應用場景下,Web 跟 App 的邊界越來越模糊,移動端、桌面端也慢慢有了整合的趨勢。對于 Hybrid App 開發(fā)來說,WebView2 平臺已經(jīng)成為 Windows 操作系統(tǒng)上面,已經(jīng)大量在使用渲染的模塊??缙脚_開發(fā)是一個非常顯著的趨勢,WebView2 和 PWA 是很好的支持跨平臺快速創(chuàng)新和迭代的方式。Edge 瀏覽器作為一個底層技術(shù)支撐平臺,在開發(fā)層面上抹平了各平臺之間的差異。
主流框架開始走向趨同,未來能否 Web 打天下?
可以看出,Web 開發(fā)發(fā)展到現(xiàn)在,不僅僅是開發(fā)一個“網(wǎng)站”那么簡單,涉及的技術(shù)框架層出不窮,無論是 WebView2、Electron、PWA 還是 React,常常讓開發(fā)者在選擇時陷入困境。
設計框架如此繁榮的背后,也跟 Web 的發(fā)展有很大關(guān)系。
最開始的時候,Web1.0 時期,主要是提供單向的閱讀功能,對前端 JavaScript 語言本身不會有太高的要求。后來 AJAX 出現(xiàn)了,網(wǎng)站可以異步跟服務端去交互了,這也對 JavaScript 提出了更高的要求。然而 JavaScript 最初是只花了 14 天設計出來的語言,在設計的時候做了局部的優(yōu)化,但是整體的優(yōu)化考慮不夠。于是語言本身也需要并且在不停的迭代,從 JavaScript 5 進化到 JavaScript 6,ES6 到 ES7,再到微軟推的 TypeScript。
語言進化也給框架的性能提出了越來越高的要求。最早的時候做任何的頁面可能就是幾百個元素,可能一兩屏,這時用 JQuery 就夠了。到后來頁面越來越復雜,有若干屏,還有各種跑馬燈、反轉(zhuǎn)等各種動畫效果,同時有了更多需要跟用戶交互的地方,開發(fā)者就會發(fā)現(xiàn)自己的代碼越寫越慢,新的框架就應運而生了。像 React 剛開始推出的時候,最具有吸引力的就是虛擬 DOM 樹,用 diffing 的方式去修改 DOM,從而節(jié)省了非常多的渲染時間。這也就是說隨著 Web 的發(fā)展,開發(fā)者不斷地需要更得心應手的框架語言來讓開發(fā)如虎添翼。
現(xiàn)在前端框架百花齊放、百家爭鳴,因為大家都可以進來貢獻,這也就是 Web 生態(tài)繁榮的原因。“所以我更愿意稱這個為幸福的繁榮?!毙檄Z夏表示。
但另一方面,不同的設計框架之間也開始越來越趨同了。很多主流框架之間已經(jīng)開始相互借鑒,相互學習。這也是一種必然趨勢。
過去一二十年,Web 的發(fā)展像過山車一樣,有著像陡、平緩、陡、平緩這樣的軌跡曲線,中間不斷的有新的場景爆發(fā),倒推著框架去做升級。比如在 AJAX 出來之前很長一段時間,前端的發(fā)展都是比較平緩的。AJAX 技術(shù)出現(xiàn)后,大家發(fā)現(xiàn) Web 有了很多新的玩法。為了配合新的場景,這些框架勢必是要去做一個大的升級。但最近幾年,用戶場景本質(zhì)上沒有什么變化,更多的是在優(yōu)化框架的編程效率、開發(fā)效率、運行效率。
因為沒有新的用戶場景,大家會發(fā)現(xiàn)不同框架之間的優(yōu)化方法最后基本上都是類似的,目的都是在維護以及提供更好的用戶體驗。這種情況下,很多新性能會相互之間借鑒。但用戶可見的性能還有很大的提升空間,所以在可見的未來,Web 開發(fā)還是會非常有生命力的。假設再加上 Web3.0 創(chuàng)造的可能性,未來五到十年的 Web 開發(fā)是非常值得看好的?!霸龠^十年回頭看,很有可能你的開發(fā)框架就換了,這一點都不讓人覺得意外”。
“再以后,前端開發(fā)是不是可以一個 Web 打天下,其實這也是一個很有意思的話題?!?/p>
在 Web 開發(fā)中,主要使用的 JavaScript 語言,它的缺陷是作為一種類執(zhí)行語言是有性能天花板的。現(xiàn)在,我們有了 WebAssembly,它解決的就是最根本的性能問題,并且目前 WebAssembly 也取得了一定的發(fā)展,打破了 JavaScript 語言的天花板。
另外 WebAssembly 也不局限于使用 JavaScript,開發(fā)者可以用 C++、Go、Rust 各種語言來編寫代碼,最后能轉(zhuǎn)變成 WebAssembly 在端上運行即可。一旦 WebAssembly 能夠普及起來的話,很多之前在瀏覽器里不能做的事情,會通過這種技術(shù)在瀏覽器里實現(xiàn)得更加的絲滑,從而創(chuàng)造出更多的可能的業(yè)務形態(tài)。
寫在最后
從 1992 年在北京開設第一間辦公室起,微軟作為一家全球化技術(shù)企業(yè)開始扎根中國,今年剛好是其落戶中國的第三十個年頭。
在全程見證并參與了中國信息產(chǎn)業(yè)發(fā)展壯大的同時,微軟在中國的團隊規(guī)模也不斷擴大,給中國帶來了不少科技人才。當代年輕人面臨職業(yè)選擇時,微軟作為一家老牌技術(shù)企業(yè),有哪些值得稱道的地方?
對于這個問題,邢璟夏是這么回復 InfoQ 的:“可以從兩個方面來看。第一個方面可以看商業(yè)模式,微軟的股價在過去 8、9 年里應該是翻了有 10 倍,這一點的話其實在科技公司里頭,而且是已經(jīng)有了這么多年生命的科技公司來說其實是非常非常少的。微軟其實一直是在持續(xù)的創(chuàng)新、持續(xù)的改進,每一步可能讓人覺得步調(diào)不是很大,但每一步走得都非常結(jié)實,而且時至今日,微軟在創(chuàng)新上還是有非常強大的生命力的,這點的話不管是通過云或別的技術(shù),其實是能夠看得見的。
第二個方面,微軟整個的文化非常強調(diào)新鮮東西的輸入,微軟里有很多同事非常的謙虛,他有可能在微軟工作了非常多年,但他的求知欲一直很強,很愿意去學習。因為本質(zhì)上還是因為微軟的成長型思維文化,已經(jīng)從下到上貫穿到公司當中,在言談舉止之間將成長型思維融入到我們的工作當中了。這種學習的方法、這種態(tài)度,對大家來說也都是能夠受益匪淺的。”
電子書推薦
本文選自《中國卓越技術(shù)團隊訪談錄》(2022 年第二季),本期精選了微軟 Edge、螞蟻可信原生、明源云、文因互聯(lián)、Babylon.js 等技術(shù)團隊在技術(shù)落地、團隊建設方面的實踐經(jīng)驗及心得體會。本期電子書已經(jīng)在 InfoQ 網(wǎng)站上線,大家可以掃描下圖二維碼下載,查看更多精彩內(nèi)容。
《中國卓越技術(shù)團隊訪談錄》是 InfoQ 打造的重磅內(nèi)容產(chǎn)品,以各個國內(nèi)優(yōu)秀企業(yè)的 IT 技術(shù)團隊為線索策劃系列采訪,希望向外界傳遞杰出技術(shù)團隊的做事方法 / 技術(shù)實踐,讓開發(fā)者了解他們的知識積累、技術(shù)演進、產(chǎn)品錘煉與團隊文化等,并從中獲得有價值的見解。
訪談錄現(xiàn)開放長期報名通道,如果你身處傳統(tǒng)企業(yè)經(jīng)歷了數(shù)字化轉(zhuǎn)型變革,或者正在互聯(lián)網(wǎng)公司進行創(chuàng)新技術(shù)的研發(fā),并希望 InfoQ 可以關(guān)注和采訪你所在的技術(shù)團隊,可以添加微信:caifangfang842852,請注明來意及公司名稱。
