“我們的挑戰是如何在飛機還在空中飛行時對它進行改造。”這就是Igor Zaika目前的狀態。Igor Zaika是微軟Office團隊中有名的工程師,他用上述的話闡述了微軟團隊目前的難題。一個公司要怎么做,才能在重建office核心架構使其能夠在其它非Windows操作系統上使用的同時,而不給其超過10億的用戶帶來任何不便呢?
在最近舉行的Facebook@Scale發布會上,Zaika談到了微軟Office跨平臺架構戰略。在他50分鐘的發言里,Zaika詳細闡述了微軟如何打算利用C++打造一個能夠在Windows,Apple,Android以及網絡等多個平臺上跨平臺使用的Office軟件。
自30年前Office問世以來,至今該軟件的代碼行數已有千萬行。Zaika說最開始的時候,Office只是一些用C語言編寫的獨立應用軟件;1990年微軟將這些軟件組合在一起,但它們之間并沒有什么共享的代碼。1985年微軟推出了在Mac操作系統上使用的Office,那時整個團隊認為如果能夠給這兩個版本的Office編寫一個統一的代碼,將會是一個很不錯的主意。
Zaika打趣道:“令人吃驚的是,他們沒有成功。”
盡管這個團隊挽救了一些能夠在Windows和Mac上共享的Office代碼,但Mac用戶依舊不是特別滿意,因為Office這個應用看起來與其它Mac的應用不一樣,工作的方式也不太一樣。
Zaika告訴聽眾,幾年前,Office團隊意識到共享代碼這個主意是不錯,但共享代碼太多則過尤不及。于是團隊開始嘗試重新構架Office。
這一次,Office團隊打造了一個迷你平臺抽象層(PALs),并試圖找出如果要支持跨操作系統應用,UX代碼要如何編寫才能達到最佳效果,以及需要共享多少UX代碼。
Zaika解釋道,盡管在微軟內部有一些人認為微軟應該把Office的代碼庫分開處理,針對不同的操作系統,組成相應的團隊來編寫相應的代碼,但這并不是微軟現行的處理方案。同時Zaika承認1997年微軟確實這么干過,當時微軟對Windows和Mac兩個版本的Office代碼是分開處理的,但這已經不是微軟現在的做法了。Office團隊也已經決定不會采用“最小公分母”路線。用戶還是希望盡可能多地利用最新的、針對每個操作系統開發的特定平臺功能。
Office團隊每個人都盡職盡業。他們正在打造一些功能清晰,并且可以自由組合的組件,盡可能采用機械重構的方式,如果不行則采用單元測試的方法。Zaika說重點在于要保證所有功能在所有平臺上都能同時運行。整個團隊決不能容忍在任何平臺上出現自動化程度上的倒退,我們正在內部對代碼庫進行大規模跨平臺十分嚴格的內測。
Zaika說:“如果你做對了,有一個遺留代碼庫將會是一個巨大的優勢,因為它能夠迫使你 ‘做正確的事’”。
我們的目標是為了維持共同核心的知識產權——Office的本質——所有的代碼都是用C++編寫,并盡可能多地共享核心代碼。這么做能夠降低文件損壞的風險。在這一核心之上,有一組原生UX應用編程接口。Zaika表示Office所有版本的UI件都沒有使用HTML5,所以沒有涉及到任何中間層或者自定義框架。該團隊還在打造多個PALs,這并不是僅僅是一個大的抽象層或者是不同的仿真層。
Zaika說一些技術如Java,Flash和HTML5的設計,試圖通過最大可能降低抽象化水平,或者更廣泛地適用程序編程接口(API),實現“一次編寫,到處運行”的目標,這聽起來確實十分不錯,但最終產生阻抗失配。兼容性和互操作性等等問題也相繼出現了。
Zaika說:“要么你瘋掉,要么操作系統瘋掉。”
相反,如果用Office團隊已經構建的迷你PAL,這家公司可以滿足OSes支持對于特定應用程序在性能和語義方面的要求。他說微軟希望隨著平臺不斷增加新的功能,這些PAL可以不斷進化。除努力設計這些特定的功能,線程和其他一些每個操作系統要求的獨特限制,他們的想法是創建能夠匹配所有平臺的API。他表示,這就是為什么微軟會將建立跨平臺的AirSpace架構作為新的Office設計的一部分的原因,這也正是他們的設計方式。
有了通用的C++內核,瘦UX層與不斷發展的PAL,微軟可以不那么費勁地打造一個適用于不同操作系統的Office應用程序。Zaika引用PowerPoint為例,指出在其數千萬行的代碼中,WinRT/Universal(觸摸優先Office版本,我們有些人稱之為“Gemini”)版的Office只有大約4%的代碼是不同的。他表示,如果排除XAML代碼,那么共享的代碼占比高達98.6%。Zaika還表示,安卓版本的PowerPoint代碼庫中有95%的代碼都是共享的。
微軟有望在未來幾個月里推出針對安卓系統平板電腦的Office軟件。有消息稱微軟正在私下測試他們為Win32準備的下一代Office桌面應用程序(代碼代號為“Office 16”)。微軟隨時有可能放出Office 16的公測版,但最終版預計最早可要于2015年春季才會面世。傳言稱在2015年春季微軟的首款觸摸優先Windows商店/Metro風格(通用/WinRT)Office產品將會正式面市。