ZDNet至顶网软件频道消息:“我们的挑战是如何在飞机还在空中飞行时对它进行改造。”这就是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产品将会正式面市。