一個歷經(jīng)了三十多年發(fā)展的軟件,這話聽起來就讓人感到沉甸甸的。但這款產(chǎn)品經(jīng)歷無數(shù)風雨后不僅活得好好的,至今還在不斷煥發(fā)新的生機。
本期《中國卓越技術(shù)團隊訪談錄》封面故事的主角是金山辦公旗下的 WPS 研發(fā)團隊。WPS 是通用型國產(chǎn)辦公軟件的代表,可能是目前國內(nèi)最大的 C 單體項目。有人用這樣一種比喻去形容 WPS 的源代碼:“就像翻動沉積巖,一層一層,這層是框架、往下是更老的核心框架、再翻則是更底層的數(shù)據(jù)處理等等,和考古一樣(有趣)?!彪m然底層的東西一直都處于比較穩(wěn)定的狀態(tài),不過在底層之上,也有另一番熱鬧景象。
采訪嘉賓:
莊湧,金山辦公高級副總裁、研發(fā)中臺事業(yè)部總經(jīng)理
晁云瞳(Yeppy),金山辦公助理總裁、金山文檔事業(yè)部副總經(jīng)理,兼 WebOffice 負責人
柳楊,金山辦公總監(jiān),負責 Linux 方向研發(fā)
重新演繹 WPS
1989 年,WPS 1.0 問世后,在中文文字處理軟件市場上獲得了消費者的廣泛追捧。一時間,風頭無兩。
上個世紀 90 年代末,微軟公司的辦公軟件跟隨著操作系統(tǒng)進入中國市場,裝載在中國消費者電腦上,MS Office 成為“事實標準”的時候,也是 WPS 推翻重來之時。這是一段不得不提的歷史。當時 WPS 不是要改寫,不是重構(gòu),而是需要一次徹底的重寫。
“我們要讓用戶能夠在 Windows 端重新使用 WPS,首先就得承認微軟 Office 的市場地位以及事實,而且要想讓用戶能夠無縫切換過來,就必須得做到兼容?!?003 年進入 WPS 的莊湧表示,當時 V6 的主要目標是“三大兼容”,包括:文件格式兼容、操作習慣兼容、二次開發(fā)接口兼容。
2002 年~2005 年,歷經(jīng)三年時間,一個涵蓋了數(shù)百萬行代碼,內(nèi)部研發(fā)代號為“V6”的 WPS 2005 版本,在一個全新的架構(gòu)下“重生”了,并且能很好地兼容微軟辦公軟件文件格式。
對于當時的 WPS 來說,只有這三大兼容做好了,才能讓 WPS 有機會跟微軟 Office 同臺競技。但也因為“完美兼容”,一些質(zhì)疑抄襲的聲音開始出現(xiàn)。
同樣在 2003 年加入 WPS 的 Yeppy 還記得,當時有一些用戶認為 WPS 推翻重寫的決策是錯誤的,“說我們‘放棄了傳統(tǒng)’。重寫之后,WPS 原先很多心思巧妙的設(shè)計和功能來不及做,所以都砍掉了。我們是為了重新回到同臺競技的狀態(tài),但有些用戶不理解,為什么不做自己的特色而是跟著人家跑了。”
當時 WPS 2002 的產(chǎn)品在政企客戶中的口碑并不好。Yeppy 表示,問題主要體現(xiàn)在幾個方面:首先微軟 Office 的文檔格式逐漸成為主流,WPS 在打開微軟文檔的時候,容易出現(xiàn)各種錯誤和異常。其次產(chǎn)品交互和處于市場領(lǐng)先地位的競品有很大不同,站在客戶的角度,其實是給他們帶來了不小的學習成本。
第三,還是兼容問題,微軟 Office 不再兼容 WPS??蛻舻南到y(tǒng)(比如 ERP、OA 系統(tǒng))都已經(jīng)跟 Office 打通,需要導出、導入 Office 文件并在這些系統(tǒng)里處理,但這些系統(tǒng)接入 WPS 后發(fā)現(xiàn)功能都失效,不能用了。
“其實說來說去就是一個問題,企業(yè)已經(jīng)有的這些文件是 IT 資產(chǎn),員工生產(chǎn)力也是資產(chǎn),各種系統(tǒng)是 IT 基礎(chǔ)建設(shè)的資產(chǎn),從做 B 端市場的角度來說,我們至少要把這些資產(chǎn)給保護好,人家才愿意用我們的產(chǎn)品?!盰eppy 說道。
于是,兼容成了 WPS 突圍的唯一出路。文檔格式兼容,保證不管用戶從哪個端打開,文檔都不會跑版、數(shù)據(jù)表現(xiàn)一致;操作習慣兼容,則要讓用戶在使用的過程中每個動作都不受影響,不另外產(chǎn)生新的學習成本;二次開發(fā)接口兼容主要是面向政府企業(yè)客戶,這些客戶更多是跟系統(tǒng)對接,很多時候需要用到豐富的二次開發(fā)接口,所以這個接口也要跟微軟的保持一致。
那時候,像莊湧和 Yeppy 這批新人進 WPS 后就投入到了做兼容這件事上。
四大引擎的演進
以文件格式兼容、操作習慣兼容、二次開發(fā)接口兼容為目標,WPS 2005 版本構(gòu)建了全新的四大引擎,分別是文字的排版引擎、表格的計算引擎、演示的動畫播放引擎以及公共的圖形對象渲染引擎。
莊湧表示,本質(zhì)上,支撐 WPS 后續(xù)發(fā)展的基礎(chǔ)就是當年的四大引擎,演進過程可以分三個階段去看。
2005 年 9 月 3 日,WPS Office 2005 封盤紀念。
第一個階段是 PC 時代,彼時四大引擎的重心是打磨自身,最基本的目標是保證 WPS 在 Windows 端的穩(wěn)定性以及性能提升。
文字排版引擎方面,不僅要讓 WPS 打開微軟 Office 文檔的時候一頁不差、一行不差、一字不差,同時也要提升性能,在打開幾百頁、上千頁文檔的時候,無論是在哪個位置編輯,甚至在多人協(xié)作時(當時還不是現(xiàn)在普遍的基于網(wǎng)絡(luò)端的協(xié)作協(xié)同,而是需要通過文件傳遞和發(fā)送的方式去做批復),都要保障過程的順暢。
包括后來進入以銀行為代表的金融企業(yè),打磨表格的計算引擎的重點之一也是性能?!耙龅皆诎偃f行數(shù)據(jù)中,無論在哪個地方操作都穩(wěn)定且順暢,背后其實要花好多功夫去優(yōu)化?!鼻f湧說。
第二個階段是移動時代。2011 年,雷軍重回金山軟件擔任董事長,并一腳把 WPS 踹進了移動互聯(lián)網(wǎng)。那會移動手機起步不久,受限于內(nèi)存和屏幕尺寸,對于像 Office 這樣的產(chǎn)品是否適合在手機上使用,該怎么用,大家心里都沒底。但也正是因為這個機遇,WPS 的團隊才真正開始用產(chǎn)品思維去思考問題。此前,為了與微軟 Office 更好地兼容,團隊更多是思考怎么和微軟做得更像。
團隊面臨的第一個問題就是,移動端的辦公軟件應(yīng)該采用什么引擎?直接移植 C 開發(fā)的 PC 端引擎到安卓平臺,會遇到很多兼容性問題,拖慢研發(fā)進度。因此研發(fā)團隊選擇了用 Java 語言開發(fā)新引擎,以趕上移動互聯(lián)網(wǎng)時代的快速發(fā)展。而在做 iOS 版本的時候,莊湧既借鑒了安卓團隊的移動開發(fā)經(jīng)驗,同時由于 iOS 平臺支持 C 語言的開發(fā),又復用了 PC 端的內(nèi)核代碼進行移植,節(jié)省了時間。
然而,落地執(zhí)行中團隊遇到了更大困難:移動場景下辦公需求發(fā)生了劇烈變化,功能不能照搬照抄,而是要圍繞小內(nèi)存、小屏幕等特性做取舍,這是移動時代引擎迭代過程中最大的挑戰(zhàn)?!暗钱敃r我們內(nèi)部流行一句話,理解要執(zhí)行,不理解也要在執(zhí)行的過程中去加深理解?!鼻f湧說。
當時移動端仍然是新鮮事物,要把電腦里的辦公軟件搬到小小的手機屏幕里,這件事從沒有哪家公司或者是哪個人嘗試過,沒有經(jīng)驗可借鑒,短時間甚至找不到合適的人。為了支持移動版開發(fā),WPS 安卓團隊的人不得不從 PC 團隊中抽調(diào),且均是骨干。
隨著人均持有的辦公設(shè)備越來越多(比如手機、iPad、電腦等),為了解決文檔在不同設(shè)備間流轉(zhuǎn)所面臨的問題,借助云技術(shù),金山辦公研發(fā)了 WPS 云文檔。而隨著對 Linux、Mac 等平臺的不斷適配,四大引擎在移動時代也充分驗證了跨平臺能力。
第三階段,隨著 Web 端需求的增長,尤其是疫情下在線協(xié)作辦公需求爆發(fā),WPS 團隊進一步在引擎中加入了協(xié)同特性。
新的不穩(wěn)定狀態(tài)
在日益月新的互聯(lián)網(wǎng)行業(yè)里,新產(chǎn)品新事物層出不窮,某種意義上,發(fā)展了許多年的 WPS 已經(jīng)是個相對穩(wěn)定和成熟的產(chǎn)品,成長空間是否已經(jīng)接近天花板?
對于這個問題,Yeppy 說:“得看怎么去理解‘穩(wěn)定’這兩個字。如果是說內(nèi)核,內(nèi)核能不能保證不出錯呢?”
他以 WPS 的在線協(xié)作文檔產(chǎn)品「金山文檔」舉例道,“為了能幫用戶處理 Office 文檔,我們在服務(wù)器上也跑了一個自己的內(nèi)核。假如我們處理同一份文件,你在編輯,我也在編輯,那這兩個編輯動作,該怎么樣合到一個文件去,這里面有一個 OT(Operational Transformation)引擎,并且這個 OT 引擎一定要和我們原來的引擎相結(jié)合,保證計算、排版、調(diào)度、繪制、動畫這些功能都是正常的?!?/span>
“加了上面這些東西以后,原來的功能還算不算穩(wěn)定呢?”Yeppy 進一步表示,從最基礎(chǔ)的功能來說,WPS 看起來沒有大的變化,但能力一直在橫向和縱向擴展,比如協(xié)作是通過云端的引擎來做,比如多平臺適配把內(nèi)核從單一環(huán)境“搬”到了不同的設(shè)備環(huán)境,但它并不是直接搬就能跑起來,里面還有大量的開發(fā)和適配工作,這其實是一種“新的不穩(wěn)定狀態(tài)”。
WPS 的客戶端基本覆蓋全平臺,在服務(wù)器、云存儲、瀏覽器前端等方向都有人在研究、在折騰各種新技術(shù)。
Yeppy 介紹道,在線協(xié)作文檔的服務(wù)器上跑的是核心引擎,怎么去做多人之間的操作、協(xié)作變換則是另外一個模塊,用戶連到服務(wù)器后怎么做并發(fā)承載,則是用的具備并發(fā)特性的語言去處理。為了能在各種瀏覽器運行,前端用的是 JavaScript,甚至在 10 年前團隊還曾經(jīng)試過用 Adobe 的 Flex 技術(shù)去做在瀏覽器里運行的小辦公平臺。諸如此類,不勝枚舉?!?/span>折騰新技術(shù)其實是為了新的場景做準備。”Yeppy 說道。
莊湧亦表示,從 PC 到移動再到云端,從工具轉(zhuǎn)向云服務(wù),為了解決用戶的跨設(shè)備以及多人之間的協(xié)同協(xié)作問題,WPS 一直在不斷吸收新技術(shù),包括 AI。但技術(shù)只是手段,目的是幫助用戶解決問題和提升工作效率,本質(zhì)還是“用戶第一”的理念,基于用戶的場景和真實需求去應(yīng)用技術(shù)。
Linux 版 WPS:從“用愛發(fā)電”開始
即使是“小部分”人群的需求,WPS 也沒有忽視。如今,WPS Office 基本做到了全平臺覆蓋,包括在早期并不能帶來商業(yè)價值的 Linux 平臺。
今年是 Linux 系統(tǒng)誕生三十周年,若從 2011 年立項算起,WPS 陪伴 Linux 其實也有十年了。柳楊從 2013 年開始參與 Linux 版 WPS 開發(fā),他坦言,從操作系統(tǒng)的角度看,當時的 Linux 相比起 Windows,市占率非常低,而大家決定做 Linux 版的出發(fā)點其實很簡單,因為有用戶需要。
“那時候用戶給我們發(fā)了不少郵件,說想要 Linux 版,因為覺得 Linux 平臺沒有好用的辦公軟件。”柳楊補充說,決定開發(fā) Linux 版也跟 WPS 全平臺覆蓋的愿景有關(guān),“我們就想讓全平臺用戶都能有好用的辦公軟件。Linux 用戶雖然不像 Windows 用戶那么龐大,但是從 Linux 的用戶畫像來看,其中包括大量技術(shù)人員,有一些是真正的系統(tǒng)愛好者,有一些是在 Linux 平臺上工作的,這些用戶其實也是我們需要考慮到的一批優(yōu)質(zhì)用戶?!?/span>
“每一次我們發(fā)新版本的時候,尤其在 Linux 平臺,很多用戶就會給我們好評,說我們是一家良心企業(yè),因為做 Linux 社區(qū)版不賺錢,但是我們一直在維護,默默去做這個產(chǎn)品,用戶也常給我們一些正向的反饋。”談及怎么堅持做這么多年 Linux 社區(qū)版的時候,柳楊表示來自用戶的支持也是一種動力。
Linux 版 WPS 收到來自用戶的暖心評價
不過在發(fā)展過程中,Linux 版也有過一個“小插曲”。2017 年上半年,一條關(guān)于“WPS Office for Linux 項目中止”的消息不脛而走,在圈內(nèi)引起過一陣熱議。隨后金山辦公官方對此作出否認,稱“WPS Office for Linux 并未停止更新,也從未有過停止更新的任何計劃。”
柳楊回憶道,“官方說明是我這邊推動市場部去做的?!睘槭裁磿霈F(xiàn)這個傳聞?他進一步解釋稱,原因主要有兩方面,一是 Linux 面向個人的社區(qū)版分為海外版和國內(nèi)版,當時有人提到海外版近一年沒更新,很快網(wǎng)上就開始流傳 Linux 版停止更新的猜測;二是跟當時產(chǎn)品剛好碰上大版本更迭有關(guān)。
“17 年屬于我們的一個轉(zhuǎn)折點,WPS 要從 WPS 2016 升級到 WPS 2019,當時內(nèi)部都在重點準備這個大版本,在推出 2016 加強版的同時,我們也在準備研究和開發(fā) WPS 2019 版。大版本開發(fā)的工作量非常大,因此時間跨度也比較長?!绷鴹钪赋觯蟀姹靖虏粌H做了新圖表、云文檔、SmartArt 等大量新功能,同時做了各種優(yōu)化工作以及 bug 修復。而在這些工作沒做完之前,發(fā)小版本其實對用戶來說意義不大。
此外,柳楊還提及了當下一個重要的行業(yè)變化。近幾年,在 IT 國產(chǎn)化的浪潮下,強化產(chǎn)業(yè)鏈供應(yīng)鏈自主可控,WPS 在 Linux 上的商業(yè)價值迅速顯現(xiàn),因此 Linux 團隊經(jīng)常需要閉關(guān)去做新的需求。
據(jù)最新數(shù)據(jù),金山辦公的業(yè)務(wù)覆蓋中國 30 多個省市自治區(qū)政府、400 多個市縣級政府,連續(xù)多年為包括黨政機關(guān)、金融、能源、航空、醫(yī)療、教育等領(lǐng)域在內(nèi)眾多行業(yè)提供定制化的辦公產(chǎn)品和服務(wù),幫助政府和企業(yè)加速實現(xiàn)數(shù)字化、智能化辦公。
程序員文化的傳承
2019 年 11 月,金山辦公上市?,F(xiàn)在人們往往只會看到其“光鮮亮麗”的一面:金山辦公的市值挺高,WPS 活得挺滋潤。但其實過去有很長一段時間,WPS 的日子并不好過,其發(fā)展起起伏伏。金山辦公名譽董事長雷軍亦曾說過:“曾經(jīng)有很多人很多次勸我放棄 WPS,但是我們能夠堅持下來,還是跟我們的使命息息相關(guān),而不是一個純粹的商業(yè)決定。”
“技術(shù)立業(yè)”的程序員文化是金山從創(chuàng)辦之初就傳承下來的。如今金山辦公數(shù)千名員工,60%以上是程序員,總數(shù)超過 2188 人,研發(fā)費用占營收比例超過 30%,位居科創(chuàng)板前列。Yeppy 認為,WPS 能堅持這么多年,一個很重要的原因是跟公司里的研發(fā)人員多有關(guān),研發(fā)人很多時候會比較理想化、有使命感。公司歷代領(lǐng)軍人物細數(shù)下來,其實都是研發(fā)出身。
最早可以追溯到 1988 年,當年求伯君把自己關(guān)在一個旅館的小房間,用匯編語言敲出了 WPS 的第一個版本,這十多萬行代碼揭開了中文排版、中文辦公時代的帷幕,這是個振奮人心的起點?!?/span>我認為這算是程序員個人英雄時代巔峰的輝煌。”Yeppy 感慨道,因為在那之后,軟件開發(fā)就更多是群體作戰(zhàn)模式?,F(xiàn)在公司這么多號人,就是為了把幾條產(chǎn)品線做到極致。
“來 WPS 十年,我一直就是做 WPS Linux 版這款產(chǎn)品,從最開始只有幾個人做,到現(xiàn)在我們也有非常大的團隊去做,就一直圍繞一個產(chǎn)品,把一件事做到極致?!绷鴹畹恼Z氣中不乏堅定,在他看來,整個公司的氛圍和基因里具備專注、熱愛和理想的東西?!霸谖业恼J知范圍里,我的職場生涯不用做太多花花綠綠的東西,也許把某一件事做好了,做到極致也就夠了?!?/span>
兩個月前,在金山技術(shù)開放日的活動上,莊湧曾介紹說,金山辦公的技術(shù)人員具備一些獨特特質(zhì),比如喜愛不斷“折騰”、精益求精等。具體來說,金山辦公一代代傳承下來的優(yōu)秀程序員在寫代碼之前都會有多個維度的思考,從深度性到通用性,再到可維護性以及可擴展性。
2002 年那一次 WPS 代碼推翻重寫,同時進行重塑的還有 WPS 的內(nèi)核引擎。這么多年過去,當時重塑的四大辦公軟件引擎作為底座能支撐到今天,或許也恰恰印證了金山辦公技術(shù)人的實力與底蘊。
本文選自《中國卓越技術(shù)團隊訪談錄》(2021 年第五季),點擊下載電子書,查看更多獨家專訪!
《中國頂尖技術(shù)團隊訪談錄》品牌升級,現(xiàn)正式更名為《中國卓越技術(shù)團隊訪談錄》,這是 InfoQ 打造的重磅內(nèi)容產(chǎn)品,以各個國內(nèi)優(yōu)秀企業(yè)的 IT 技術(shù)團隊為線索策劃系列采訪,希望向外界傳遞杰出技術(shù)團隊的做事方法/技術(shù)實踐,讓開發(fā)者了解他們的知識積累、技術(shù)演進、產(chǎn)品錘煉與團隊文化等,并從中獲得有價值的見解。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。