BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 崔康 关注 1 他的粉丝 发布于 2010年11月3日. 估计阅读时间: 11 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

最近,微软在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进行投入,并确保开发人员在未来能够继续利用它创造优秀的应用程序。

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

以下为转述,但我表示同意…… by Jeffrey Zhao

我觉得整个事件里面最无辜的就是微软,忽然一下成了娱乐圈的明星,只是因为被狗仔队拍到一张没有带SL这个小儿子出来玩的照片,在那里一个劲的解释。

不是微软的错,是鲍尔默的错 by Java 陈

Silverlight是微软这几年独具眼光走的非常重要的一步棋。
有了这步棋,可以顺利发展企业应用,手机应用,还可以继续吸引.NET开发人员

可惜这么重要一步棋,那个猪头CEO(在CEO里也确实挺猪头的)就知道扮鬼脸,讽刺挖苦别人,一点也没有战略眼光,难怪首席架构师也没有。

那天看了PDC的报道,就知道这决对不是Silverlight开发团队的想法,只是鲍尔默的无稽之谈。

Re: 以下为转述,但我表示同意…… by jianxiao jiang

事情哪有这么简单的?

互联网应用中,微软的技术真的不行 by 张 艺聍

互联网应用中,微软的技术真的不行,就说Mongo吧,搞个驱动都是java优先,c#烂的一坨,asp.net应用总是莫名奇妙的出问题。前两年还以为c#能超过java,现在看来,我真是太天真了。

Re: 互联网应用中,微软的技术真的不行 by Jeffrey Zhao

MongoDB的驱动烂又关微软和Mongo什么事情了,两边社区各自维护的。而且真烂吗?你用的是哪个?我用MongoDB.Driver在生产环境上跑了几个月了,从没出过问题……

对微软的Web技术了解不深 by 王 杰

微软什么方面都想插一脚,啥都想做,但是本人只对他的操作系统跟文档应用程序(work,excel等)感觉良好外,对其web技术没太深入的了解,但总体印象感觉不太好。

Silverlight的作用在于在客户端使用高级语言替代JS by 吴 磊

Silverlight的作用在于在客户端使用高级语言替代JS,html5与Silverlight存在交集,但Silverlight比html5多出了太多其他部分,我认为网媒是误解了“转向HTML5的真实含义”,Silverlight作为微软现在Web前端唯一的看家技术,近10年内不可能出现边缘化问题。

Re: Silverlight的作用在于在客户端使用高级语言替代JS by Liu Huanqing

从当前整个IT领域的态势变化来看,Silverlight会不会被边缘化,在很大程度上恐怕并不取决于SL本身的优缺点,而要取决于SL所寄生的平台。

我们知道,SL目前主要寄生在两个平台之上,一是Windows Phone,另一个是IE。WP7在智能手机市场上目前只能算是个二流“演员”,这恐怕是一个不争的事实;至于IE目前在PC上的处境,恐怕大家也都心知肚明吧?

中国有句俗话:女怕嫁错郎,男怕入错行。希望大家在选择技术前途时,一不要随波逐流,二不要掉以轻心,三不要感情用是,否则是很难做出理性选择的 ;)

Re: 互联网应用中,微软的技术真的不行 by yu frank

MongoDB的.net驱动我也一直在使,真的感觉很糟糕。
我先是用的mongodb-csharp那个,bson的各方面支持到都还可以,但生产环境大并发情况下发现连接池不能回收,而且集群情况下求count有bug(不过很好改),但该驱动9月之后就没再更新过,连接池的问题我也没改掉
另外就是官方10gen支持的mongo csharp了吧,也就是老赵你说的MongoDB.Driver,现在虽然每天都在持续更新,但功能真的太弱,找了一圈没发现连接池大小的配置,最后发现写死在程序里了,后面到是有个注释"todo: make it config?"(大概这意思吧),此外还有_id没有string重载,对象不支持Dictionary类型(mongodb-csharp是支持的)等等一堆问题。

以前对.net充满信心的,现在感觉其越发的没落了,尤其是其开源资源有限在大型系统上越发力不从心,呵呵,我都有些动摇了。

Re: Silverlight的作用在于在客户端使用高级语言替代JS by 冯 希顺

光“但Silverlight比html5多出了太多其他部分”是没用的。。。比HTML4功能丰富的技术太多了,可惜哪一个都是小众技术或上不得台面的技术。HTML5一个“开放”特性就已经秒杀所有的私有插件技术了。我觉得微软如果适当降低对Silverlight技术的关注度,提高HTML5的关注度是非常合理的策略。在此可以下一个看起来比较武断的断言:虽然移动应用领域各种各样的、特定于平台的AppStore层出不穷,但是要不了几年,主要的各个移动应用平台的应用群体种类肯定还会是以浏览器为基础,这是不可逆转的潮流。

Re: 互联网应用中,微软的技术真的不行 by liao hexiang

微软就在无休止的内部政治斗争,利益纠纷中丧失了自己的技术优势,没有清晰的技术路线。我做了几年的.NET,现在做了2,3年的JAVA,JAVA社区有太多的资源可以使用了,而且是开源的,你完全可以接触很多优秀的代码。微软在一次次的颠覆自己技术的同时打击.NET开发人员的热情,WIN FORM之后为什么有WPF,后者极其低下的效率惹来无数的诟病,MVC一个在JAVA社区存在N年的TERM,MVC并不是什么技术,只是一个设计理念,最近被微软拿来热炒,愚蠢之极!现在不是讨论JAVA和C#两种语言谁好谁坏的问题,平台是关键,一个生态系统的问题。JAVA社区有IBM,ORACLE,GOOGLE,APACHE,REDHAT..太多了,.NET有谁?微软自己而已,而这个自大的家伙还无法保护好自己平台上的开发人员!
.NET要发展壮大,必须要开源(微软已经意识到了,开源了一部分)!看看现在流行或者即将流行的语言平台哪个不是开源的!

HTML5肯定是下一代互联网标准,这个毫无疑问的,就连ADOBE也在推HTML5的开发工具!SIVERLIGHT离死还远吗?

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

11 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT