现在不是1990年
微软是在八十年代成长起来的,那正式个人电脑高速发展的年代:新出厂的电脑比现有的还多。这意味着如果你的产品只能够在新电脑上跑的话,过不了一两年它也可以占领市场,既便没有人刻意“转用”你的产品。这是Word跟 Excel能如此彻底取代WordPerct跟Lotus的原因之一。微软只需要等待下一波硬件升级的浪潮,然后把Windows,Word跟Excel 一块卖给企业用户(有些企业还是第一次买电脑)。所以,从很多方面来说,微软从来没有学习如何促使用户从产品的N版升级到N+1版的必要。当用户买了新电脑,他们会很高兴在新电脑上使用微软的各种最新产品,经管他们不太可能纯粹的做软件升级。这也无所谓,个人电脑市场当时在疯狂的增长。但是,现在的世界,个人电脑市场已经饱和了,并且现有的电脑都跑得不错。谢谢,微软突然意识到它花长时间等待最新的产品进入市场了。当它企图“终结”Windows 98的时候,现实是有太多的人还在使用着Windows 98,而微软得打破自己的诺言,无奈的继续给这老爷系统做多几年支持。
不幸的是,当所有人都用着98年产的电脑用得很开心的时候,像.Net、长角跟Avalon这些美丽的新技术锁定用户的企图便变得不容易实现了。即使长角真的在2006年如此发布(我此刻其实也并不相信这点),它也得花上几年的时间以获得足够的人认同它是新的开发平台。开发者,开发者,开发者跟开发者在开发软件的时候,并不卖微软那“人格分裂”开发建议的帐。 走进网络
我不能理解我说了这么多却没有提到网络。所有的开发者机会做新软件的时候都有一个选择:做网站或者做“胖客户端”在PC上跑的软件。两者的利弊很简单:网站更加容易配置(deploy),而胖客户端软件则能提供更快的反应时间以提供更有趣的用户界面。
网站更容易配置,因为它不需要安装。对用户来说,“安装”一个网络应用程序等于在浏览器地址栏里输入一个网址。我今天刚装了Google的新Email 程序:按Alt+D,输入gmail,再按Ctrl+Enter。网络应用程序有着相当少的兼容性问题或者跟其它软件冲突的机会。所有使用你产品的用户都使用着你最新的版本,你不必为各种旧版本提供支持。你可以使用任何你喜欢的开发环境,只要你能够让程序在你自己的服务器上跑就好。你的程序实质上也能自动为所有地球上的电脑服务。而且,你用户的数据在实质上也能自动供地球上所有的电脑使用。
但,这些需要牺牲流畅的用户界面做代价。这边有一些网站无法做得很好的事情的例子:
1.建立快速画图的程序
2.实时带红色下划线的拼写检查
3.警告用户说他们点浏览器的关闭按钮时会丢失手头的资料
4.根据用户的操作更新部分显示内容而不访问服务器
5.建立一个键盘按键驱动而不需要鼠标的程序
6.让用户在断开网络的情况下继续操作。
这些也并不是多大不了的事情。而且有些会很快被聪明的Javascript程序员搞定。Gmail跟Oddpost这两个新的网站正巧都是做Email 应用的,并且巧妙的绕过或者彻底的解决了上述的一些问题。并且,用户似乎不是很在意UI上的不足以及界面迟钝的反应。几乎我认识的所有正常人都因为某种原因非常满意基于web的Email程,无论我多么努力的向他们推荐富客户端软件。唉~更富的客户端软件其实。
所以,Web用户界面已经有八成火候了,并且即使没有新的浏览器我们也很可能可以把它做到九成半。这对绝大多数人来说已经足够好了。而此用户基础对那些选择Web做新软件开发的程序员来说也足够好了。
这也就意味着,微软的API突然间变得无足轻重了。Web程序不需要Windows!
这不是说微软并没有意识到这些事情的发生。他们当然清楚。而且,在事情表面化的时候,他们突然紧急刹车了。很有潜力的技术如HTA跟DHTML停止发展了。Internet Explorer的整个开发团队似乎消失了;他们以及好几年没有任何作为了。微软没有理由让DHTML变得比现状更好;因为这对于它的核心业务-富客户端软件太危险了。微软这些日子来的口号是:“微软在富客户端软件开发公司上压了重注。”你可以在长角的幻灯片上看到这些。来自Avalon团队的Joe Beda说:“Avalon跟长角在整体上说,是微软的根基。这说明我们相信桌面软件的威力,坐在本机前就能够玩很酷的东西。这里,我们正对桌面软件做投资,我们认为这是跟很好的方向,并且我们希望开启新一轮激动人心的……”
问题是已经太晚了。
我自己对此是有点伤心的
我自己真的是对此有点伤心。对我来说,Web很棒;但是,基于Web的软件反应慢,用户界面不统一是对日常稳定操作的一大退步。我爱我的富客户端软件,而且当我需要去使用这些软件的Web版本的时候,我会呆掉的。我每天使用的这些 软件有:Visual Studio,CityDesk,Outlook,Corel PhotoPaint,QuickBooks。但,这些却是程序员即将要带来给我们的。没有人(我再重复一次,没有人意味着少过一百万人)会再使用Windows API做开发。风险投资商不会给做Windows应用程序的公司钱的,因为他们担心来自微软的威胁。并且,绝大多数用户不像我这么在意蹩脚的Web界面。
这里有个铁证:我注意到(并且,我从人事部门的朋友处证实了)纽约的Windows API开发并懂得C++跟COM的程序员年薪大约是十三万美金;而典型的使用托管语言(包括Java,PHP,Perl甚至ASP.Net)的Web程序员年薪是八万美元。差距是巨大的。而且当我跟在微软做客服的朋友聊天时,他们承认微软已经错过了一整代的程序员。请一个有COM开发经验的程序员每年需要十三万美金,是因为在过去约八年的时间里没有人在乎去学COM开发了。所以,你一定得找到有相当资历的程序员,并说服这些往往已经处于管理人员的层次人去处理底层的程序(上帝啊!救救我吧!)如处理marshalling跟monikers跟apartment线程跟aggregates跟tearoff 跟其它一千万种基本上只有Don Box能理解的事情,事实上Don Box也受不了再跟这些玩意打交道了。
我讨厌说这点。但一堆开发人员已经转到Web上很久了,并且不愿转回去。大多数.Net的开发人员是开发ASP.Net的,做微软Web服务器端的开发。ASP.Net是卓越的;我已经做了十年的Web开发,但ASP.Net便硬是再往前夸了一步。但它是服务器端的技术,客户端可以使用任何桌面软件。更甚者,ASP.Net在 Linux中使用Mono也跑得很好。
所有的这些兆头都对微软不妙,它无法再从API垄断上获得巨额利润了。新的API是HTML,而市场的新胜利者将会是那些能玩转HTML的人。
