喷在Microsoft Silverlight 4发布时

标签:无

好吧,我先承认我是微软黑,不是微软雅黑。

一路走来,银光并不顺利,但不少.Net程序员却对其前景非常看好。
看好的原因我并不清楚,因为我对其的了解并不深,也许是银光的特效很炫吧,除此之外我也想不出什么理由了。
第一次被Silverlight震惊是看到MS SqlServer的一个发布页,那个宇宙大爆炸的动画效果非常绚丽,却没有使用Flash。当时并没有详细查看源码,如果仅仅是JavaScript做的,我只能说微软的员工实在太有精力了。

然而发展至今,我却再也没被Silverlight打动过,因为它的特效都能用Flash轻易做到,而JavaScript也能实现绝大部分效果,此外各种浏览器都在致力于支持HTML 5+CSS 3。
我同时还是Flash黑,毕竟同样的东西,JavaScript只有几十k,而Flash却能轻易上M。
Silverlight也不例外,例如Silverlight主页的那个导航条就是银光做的,我打开这个页面花了至少5秒,而这个效果用HTML 5+CSS 3是可以几十行代码轻易搞定的,对用户来说只要几ms的下载时间。

做网站的人都知道,在用户体验中,最为关键的就是响应时间。
一个很简洁的网页,也许做得并不华丽,但你点击后立刻就打开了,你会不由自主地多停留一会,多点几个链接试试;而一个看上去很不错的网站,过了半分钟还没有全部加载完,估计你瞄了一眼就关掉了。
相同类型的网站,即使你在功能和样式上超过对手一些,但打开每个页面却比对手慢1秒,那么你的用户可能不到对手的一半。

另一个问题就是Silverlight和Flash一样需要安装客户端。
Flash的表现还不错,大部分的桌面系统都安装了,但你几乎找不到可以支持Flash的移动设备。
我觉得未来的市场必将偏向移动市场,因为它能占据用户任何细微的时间(等车、吃饭、蹲厕所),支付也更为方便(可与手机账号绑定)。所以各种手机浏览器也在不断加强对HTML 5的支持,因为这是未来的标准。
而如果你的网站依赖于Flash,你就无法获取这部分用户,或者不得不为他们重复开发一个版本——那还不如直接使用HTML 5。
相比之下Silverlight就更可怜了,不但安装率远低于Flash,就连支持的浏览器都远少于前者。最初我装Silverlight时,就装了3次仍没装上而放弃了。而我最常用的Chrome也被无视了许久,但最近终于不再无视了。
无论怎么说,使用这种非业界标准的东西,也就意味着你放弃了大部分市场。而且你还不得不面对一个隐患:Flash的漏洞是有够多的(貌似Adobe的漏洞能力是仅次于微软的),Silverlight说不定也会偶尔爆出1、2个。

顺带一提,即将发布的Flash新版本将支持Canvas,也就是放弃了自己去兼容HTML 5。而Silverlight估计是不会这么做了,因为微软向来就很自大地与标准死磕的。
所以Flash开发者至少可以将部分应用方便地转换成HTML 5,但Silverlight开发者却没有这条退路。

说完了这些对用户影响很大的方面,再说说对开发者而言无足轻重的部分吧。
对.Net程序员来说,Silverlight非常方便,因为可以直接在服务器端写C#代码,其他细节都不需要了解。这不禁让我想到Google Web Toolkit,也是在服务器端写Java代码,然后不需要考虑客户端和传输细节。
可是这样的Web开发有意思吗?我真的不敢想象。当我发现有些Silverlight程序员连HTML元素都没接触过,不清楚JavaScript和CSS的能力,不了解AJAX的原理,我不禁觉得微软太害人了。在给他们演示了一些用几行jQuery代码就能实现的特效后,他们就觉得非常神奇了,这让我非常惊奇。
而且一旦采用这种开发方式,前后台的分工就变得困难,对开发者的要求就更高,而且还必须使用先进的IDE。
我不敢抨击Silverlight和GWT的这种做法,但至少使用他们的开发者应该多了解下标准实现。太空中是可以用铅笔写字的,并不需要发明一种无重力状态可书写的圆珠笔。

最后想说的是,Silverlight从技术角度而言无疑是强大的,但是并不会占据主流市场。
微软一开始就打错了牌,企图用它来瓜Web市场。其实它应该被当成玩具,就像BASIC语言一样,因为小孩子会对这种特效很感兴趣。在自家的Windows Mobile上也可以尝试发力,做个MS store出来。

3条评论 你不来一发么↓ 顺序排列 倒序排列

    向下滚动可载入更多评论,或者点这里禁止自动加载

    想说点什么呢?