话说,在最近的PDC上,微软的副总裁Bob Muglia说了类似的话“我们对Silverlight的策略改变了,我们要用HTML5来实现跨平台的应用程序”,于是乎,社区铺天盖地响起了“微软要抛弃Silverlight”的调调。出现这个说法并不奇怪,媒体转述一遍,再给社区理解一下,很正常。但是我觉得奇怪甚至有些恶心的是,当事实愈发明朗化的时候,冒出的一些莫名其妙,兴灾乐祸,事后诸葛还在愈演愈烈。这两天我在社区里看的很多说法,某些“评论家”连一些基本概念,如“Silverlight是Windows Phone 7的开发平台”都不清楚,就来捕风捉影,实在让我难以继续旁观。
其实Bob Muglia的原话是这样的:
"Silverlight will continue to be a cross-platform solution, working on a variety of operating system/browser platforms, but HTML is the only true cross platform solution for everything, including (Apple's) iOS platform.
Silverlight将继续是一个跨平台的解决方案,未来Silverlight将持续工作在各种操作系统/浏览器平台上,但是HTML才是目前一切运用真正跨平台解决方案,包括苹果的iOS平台。
这句话的问题在哪里?我看不出任何要放弃Silverlight的意思。微软从一开始就说Silverlight将会跨操作系统及浏览器运行,目前是,将来也是,包括Windows,Mac OS及这些平台上的各种浏览器。但是,对于移动设备又能怎么办呢?苹果的iOS上已经拒绝Flash进入,因此拒绝Silverlight也是可以预料的,因此Silverlight方面就算尽再大努力也无法实现这点。而苹果是支持HTML 5的,因此微软为了发展,将HTML作为“跨所有平台”的手段,在我看来十分顺理成章。可能Silverlight以后不会进入iOS,但并不表示它不会进入Android等其他手机平台,而就目前来说,Silverlight本身已经是Windows Phone 7的开发平台了。
Silverlight之于Windows Phone 7,WPF之于Windows,就好比CocoaTouch之于iOS及Cocoa之于Mac OS,它们都是十分正常的产品及开发平台策略。就拿苹果来做例子吧,CocoaTouch只能工作在iOS系统上,您担心CocoaTouch被苹果抛弃吗?诚然,微软的手机才刚刚起步,平板电脑更是没有踪影,从商业上来说远不如iOS设备成功,但是人人都能看到微软对Windows Phone 7的重视,WP7是微软不断强调的“三屏一云”战略的重要组成部分,而Silverlight就是WP7上的开发环境,那么您为什么会担心它会被微软抛弃?我看到有些文章的标题类似于:“Silverlight失败,未来属于移动互联网”,于是我就转不过脑子了,Silverlight对于微软来说,就几乎等同于“移动互联网”,您一边看好移动互联网,一边觉得Silverlight挂了,你让微软情何以堪?
有人说,这次的PDC 2010都没有Silverlight的内容了,可以看出微软不要Silverlight了,否则怎么没有Silverlight 5的消息?我也觉得很奇怪,PDC是有主题的,这次的主题是Azure,IE 9和WP 7,因此强调的是云计算,HTML 5和移动互联网开发,最后一个其实就是Silverlight。事实上Silverlight的内容本就没少,只是换了个名字叫做WP 7。我不知道嚷嚷着PDC没有了Silverlight的同学有没有真正看过PDC,不过我在看,看了很多,感觉很爽。我看到了PDC的Keynote演讲上ScottGu就在现场操练Silverlight开发,分会场里也在大谈“基于Silverlight开发面向Azure平台的WP7应用程序”、“优化WP7中Silverlight程序性能”,“早该知道的WP7开发注意事项”,还有与WP7几乎无关的“使用Silverlight 4开发商业应用”,“如何在WPF和Silverlight中共享代码”等等太多内容。半年前的Mix 10大会上微软还在大谈Silverlight和WP7,只不过打得是Silverlight的旗号,而仅过了半年,微软打着自己正在全力推广的WP7的旗号来谈几乎相同的话题,您怎么就突然崩溃了呢?
PDC是微软专业会议,议程及其有限,而微软的技术实在太多,没有登上PDC讲台的话题实在太多太多了。去年的PDC还有关于CLR、虚拟化、Windows Server的话题呢,这次都看不到了,莫非微软要抛弃这些了?如果像某些同学希望的这样,微软发布了Silverlight 5的消息,我估计对于微软铺天盖地的谴责之声就要变成“技术发展太快”了。
如果说CocoaTouch只是在iOS设备上运行,而Silverlight除了Windows Phone 7以外,之前Windows和Mac OS上该有的还有,已经在的还在。Silverlight对于微软的重要性,不会比CocoaTouch对于苹果的重要性来的差。作为一个Silverlight开发人员原本该干什么,现在还是干什么,除此之外,退可开发WPF,进可出手WP7。ScottGu在PDC上接受Scott Hanselman采访时说,微软将开发语言、框架、工具进行统一,让开发人员可以很自如地进入WP7的开发领域。我对WPF和Silverlight一窍不通,但我从没像现在这么羡慕您已经掌握了这部分技术(当然其实也没那么羡慕啦,我相信自己会学得很快),因为在移动互联网的大潮下,我可能以后还真要去学习WP7上的Silverlight开发,而您已经可以顺利过渡了。
如果您还是对Bob的那段话表示纠结的话,其实也可以继续看看他的说法了。他和微软Silverlight团队估计也没想到,当然现在也意识到事态的严重性,于是连续发表了两篇声明,一是微软对Silverlight未来的担保,二是关于PDC上关于Silverlight那些表态的后续解释,其中写到:
I said, "Our Silverlight strategy and focus going forward has shifted." This isn't a negative statement, but rather, it's a comment on how the industry has changed and how we're adapting our Silverlight strategy to take advantage of that.
我之前说到:“我们的Silverlight策略和前进的重心转移了”,这不是一个负面的说法,它只表示业界的现状改变了,我们调整Silverlight的策略希望可以利用这种改变。
在我看来,业界现状的表现之一,就是之前我所说的苹果不会接受Silverlight和Flash,但它对HTML 5友好。微软不强求Silverlight进入iOS——这是Bob之前所特地强调的设备——而是让Silverlight去迎合HTML 5大潮。例如,Adobe在刚刚结束的MAX 2010大会上展示了一款Flash至HTML 5的转化工具,那么我猜想,微软今后也会这么做吗?利用Flash和Silverlight所配备的高度生产力与HTML 5相抗衡也不失为一种竞争手段。当然,谁知道呢。此外,文章里还谈到过几个月就有下一代Silverlight的消息了,不知道这能否让某些朋友松一口气。
讨论和争议是好事,但是在这个过程中出现了一些声音让我很不满。例如某些同学连Silverlight与WP7的关系都不知道就来指点江山。Ivony写到过类似的意思:社区里有一些人,看着某个事物不断发展却无力接触,一遇任何风吹草动却跳出来幸灾乐祸,正如这次Silverlight事件,还有上次微软于LINQ to SQL等等。我不知道上次的那些认为微软放弃LINQ的同学,看到.NET 4.0中LINQ to SQL的更新,LINQ to Entity在最近两届PDC中的表现,以及本次PDC上随Azure出现的“LINQ to Azure,LINQ to Everything”的演讲是什么感觉。
微软的技术一定是有问题的,但是我们完全可以用合适的方式来对待,受用无穷。当然,这方面内容就下次再展开了。