雾里看花:微软的前端技术战略何去何从?

  • 崔康

2010 年 11 月 2 日

话题:.NET微软移动架构HTML5语言 & 开发文化 & 方法

最近,微软在PDC 10 大会上针对SilverlightHTML 5的不同态度以及由此引起的前端战略走向猜测在国内外社区中激起了热烈讨论,InfoQ 中文站试图勾勒出事件的来龙去脉,读者朋友可以借此对这次讨论进行充分的认识和思考。

就在一个多月之前,InfoQ报道过,微软开发者平台产品管理部经理 Brad Becker表示微软对 Silverlight 在 HTML5 的前景持乐观态度:

在 Web 层面上,Silverlight 的初衷并非取代 HTML。而是要让程序员轻松地实现 HTML 和其他技术无法完成的功能。微软致力于使用 Silverlight 实现 HTML 无法完成的解决方案来扩展 Web 功能。从单纯的丰富 HTML 页面到浏览器中功能强大的类桌面应用程序,甚者 Silverlight 能给用户带来丰富的体验。

他还提到 Silverlight 比 HTML5 更完善的三个领域:

  • 性能——Silverlight 采用 CLR 使得性能更加完善,在 Bubblemark 的多项标准化测试中击败 Flash 和 Chrome V8
  • 一致性——内置于 Silverlight 的应用程序在任何平台上呈现出相同的内容
  • 速度——当 HTML5 仍在讨论阶段时,Silverlight 在速度上远超出市场的平均水平

然而,本次的微软 PDC 10 大会引起了全球开发者的瞩目,会议对微软未来技术走向的明示或者暗示都会引起社区的猜测和议论。会后,有国外媒体以《微软:我们的 Silverlight 战略已经改变》为标题发表了一篇颇具爆炸性的新闻,通过 PDC 大会针对 Silverlight 和 HTML 5 的不同待遇猜测微软的前端战略已经发生了变化:

PDC 上没有 SilverLigtht 5 的专题会议,只在主题演讲中提到过一次!与此形成鲜明对比的是,HTML 5 被多次提及,不仅仅是将在下一代 IE 浏览器中得到支持,更被称为“后台系统和前端展示层之间独立和创新的粘合层”(微软 CEO 史蒂夫鲍尔默语)。

针对 Silverlight 的发展定位,微软负责服务器和工具业务的主管 Bob Muglia 表示:

Silverlight 是 Windows Phone 系统的开发平台,在某些媒体和业务线应用中也会增光添彩.......

(谈到 Silverlight 作为微软跨平台运行时的前景时),我们的战略已经发生变化,Silverlight 将继续是一种跨平台解决方案,运行于各种操作系统和浏览器上,但是,HTML 是唯一适用于所有环境的真正跨平台解决方案,包括 iOS 平台。

除此之外,Muglia 还暗示 Silverlight 的下一版本将继续发布,但日期可能推迟。

Silverlight 官方论坛上针对这篇新闻进行了激烈的讨论。

Bart Czernicki 列举了5 条理由批评微软的这种做法:

  1. HTML 5 还没有形成正式标准,需要完善。
  2. 虽然 IE 9 支持 HTNL 5,但是 IE6-8 不支持,而且占有相当大的市场份额。
  3. 微软还没有发布自己的 HTML 5 开发工具,这让熟悉微软技术的开发人员无所适从。
  4. 各个公司的首席技术官们在看到这些消息时会慎重考虑如何选择前端技术及其稳定性,或许飘摇不定的 Silverlight 不会在他们的候选名单之列。
  5. Silverlight 的发展趋势不明朗,让众多投身其中的开发人员痛苦和沮丧。

而也有人指出“微软轻视 Silverlight”的说法是场误会,因为本次 PDC 会议恰好处于 Silverlight4、5 版本发布间歇期,所以不会安排太多有关 Silverlight 的活动,预计明年的 MIX 2011 大会将重点介绍。

微软的前端技术走向也引起了国内技术社区的讨论。

网名为 yhwork 的朋友在一篇博文中对近年来微软在前端技术战略上的摇摆不定表示了自己的忧虑

本来,一种技术的兴衰犹如人有生老病死,本不足论。但我以为这次的事件暴露出微软的一个痼疾,即自从 GDI 时代以后,微软在表示层的战略问题上一直是举棋不定的。

...... 微软在上个世纪末的时候曾经有一段时间非常钟爱 HTML 技术...... 进入.Net 时代以后,微软主推的客户端表现层技术是 WinForm....... 在很多开发人员还在学习 WinForm 2.0 时,很快又推出可以说是彻底推倒重来的 WPF,这在开发社区中引起了相当的震动和混乱。尽管从技术角度可以有很多理由来说明 WPF 的出现有其合理性,但还是有很多开发者因此对微软产生了技术平台更新换代过于频繁、罔顾保护开发者技术投资的恶评,很多社区因此弥漫着对微软不信任的态度。

如果你认真看看微软现在的表现层技术,或许会为其数量而吃惊。客户端技术有 WinForm 和 WPF,当然你还可以算上更老的 MFC;浏览器上有 ASP.NET,后来又变化出 ASP.NET MVC,还有 WPF/XBAP,再有 Silverlight;为了引入 Ajax 自己开发了 Atlas,后来又引用开源的 JQuery。

....... 目前,基本上不再更新的 WinForm 和微软都不再有兴趣维护的 Atlas(ASP.NET Ajax) 已经有出局的迹象,ASP.NET 和 ASP.NET MVC 的争论在很长时间内仍将继续,而这次被曝的是 Silverlight,则有点出乎我的意料。毕竟在此之前 Silverlight 给人的印象是处于急速上升期并且微软也在力捧的技术,难道这么快就要被边缘化了?不论微软自己如何解释,Web 已经不能算是一个可以把蛋糕无限做大的新兴市场,HTML5 流行起来的话无论如何都会挤压 Silverlight 的生存空间。如果微软认真检讨一下自己的平台战略,能够定下一个明确的前进方向,那也未尝不是一件好事;但若让这种混乱的局面继续维持下去的话,对开发者将是难以承受之重,对网络时代已经成为后来者的微软来说,恐怕也不是什么好兆头吧。

微软技术专家、InfoQ 中文站成员朱永光对此发表了自己的看法:

HTML 5 还处于一个标准发展的过程,现在只是由于热度很高,大家都忽视了它目前的缺点,以及未来潜在的问题。而且,我认为 HTML 5 是为了解决 HTML/CSS/JS 的问题,不太会成为一个有用的 RIA 开发技术。

而 Silverlight 及 Flex 都是成熟的 RIA 开发技术,且 Silverlight 更是具备了 Rich Client App 开发的能力,所以两者不具备替代性。

就微软的策略而言,也许他们打算借助 HTML 5 来加入 Web 开发的混战,而 Silverlight 需要去完成“云 + 端”战略的使命。

另一位微软技术专家、InfoQ 中文站成员赵劼在自己的博客上表示微软没有放弃 Silverlight,从多个角度澄清了这一事件:

Silverlight 之于 Windows Phone 7,WPF 之于 Windows,就好比 CocoaTouch 之于 iOS 及 Cocoa 之于 Mac OS,它们都是十分正常的产品及开发平台策略。就拿苹果来做例子吧,CocoaTouch 只能工作在 iOS 系统上,您担心 CocoaTouch 被苹果抛弃吗?诚然,微软的手机才刚刚起步,平板电脑更是没有踪影,从商业上来说远不如 iOS 设备成功,但是人人都能看到微软对 Windows Phone 7 的重视,WP7 是微软不断强调的“三屏一云”战略的重要组成部分,而 Silverlight 就是 WP7 上的开发环境,那么您为什么会担心它会被微软抛弃?

...... 我不知道嚷嚷着 PDC 没有了 Silverlight 的同学有没有真正看过 PDC,不过我在看,看了很多,感觉很爽。我看到了 PDC 的 Keynote 演讲上 ScottGu 就在现场操练 Silverlight 开发,分会场里也在大谈“基于 Silverlight 开发面向 Azure 平台的 WP7 应用程序”、“优化 WP7 中 Silverlight 程序性能”,“早该知道的 WP7 开发注意事项”,还有与 WP7 几乎无关的“使用 Silverlight 4 开发商业应用”,“如何在 WPF 和 Silverlight 中共享代码”等等太多内容。

在我看来,业界现状的表现之一,就是之前我所说的苹果不会接受 Silverlight 和 Flash,但它对 HTML 5 友好。微软不强求 Silverlight 进入 iOS——这是 Bob 之前所特地强调的设备——而是让 Silverlight 去迎合 HTML 5 大潮。例如,Adobe 在刚刚结束的MAX 2010大会上展示了一款Flash 至 HTML 5 的转化工具,那么我猜想,微软今后也会这么做吗?利用 Flash 和 Silverlight 所配备的高度生产力与 HTML 5 相抗衡也不失为一种竞争手段。

也许因为没有预料到这次事件会引起如此大的争论,所以微软团队马上在 Silverlight 的官方网站上发布声明,事件主角 Bob Muglia 在《PDC 和 Silverlight》中表示他的原话不是一种消极说法:

这仅仅是说明行业在变化,我们也正在采取措施使 Silverlight 战略能够充分利用这些变化。

Silverlight 的目的绝不是替代 HTML,而是从事 HTML(和其他技术)无法完成的工作,从而方便开发人员。Silverlight 提供了优秀的客户端应用和媒体体验。目前全球有超过三分之二的电脑安装了 Silverlight,而且 60 万多万名开发人员使用它构建应用。请不要误会,我们将继续对 Silverlight 进行投入,并确保开发人员在未来能够继续利用它创造优秀的应用程序。

有关讨论依然如火如荼,不知微软的表态是否会让争论平息。读者朋友对此次讨论持何种看法,欢迎发表自己的意见。

.NET微软移动架构HTML5语言 & 开发文化 & 方法