.NET面临信任危机,根源在于目标模糊
(2005年第4期《程序员》文章,有删节,全文请阅读杂志)
Richard Grimes是全世界最有名的几个.NET技术专家和作家之一,他不仅撰写过大量的.NET文章和技术书籍,而且作为MSDN Magazine的专栏作者和微软技术大会上的重要讲师,在.NET技术社群众有很高的知名度。然而就是这位老兄,最近在DDJ网站上发表的一篇文章中(http://www.ddj.com/documents/s=9211/ddj050201dnn/)指责了微软在推行.NET过程中的一系列失误,并且表达了自己对.NET技术的失望和不信任。这篇文章已经成为最近几天技术社群的讨论焦点,CSDN将这个话题列为头版头条,TSS上也为此争得不可开交,就连微软自己的online community中,与之相关的话题也备受关注。作为微软技术最重要的几位代言人之一,Richard Grimes的突然“倒戈”,相信令微软的技术领袖们措手不及。我们已经看到了微软展开的一些零星的“反击”,相信很快就会出现有组织的行动。微软当然能够很大程度上挽回这篇文章造成的“不良”影响,然而由此事件所暴露出来的技术社群对于.NET的信任危机,则是任何人都无法回避的。
扬汤止沸,不如釜底抽薪。微软与其在技术社群里扑火,倒不如以此为契机,认真梳理一下自己的.NET战略和战术。Richard Grimes更多地批评了微软在某些战术问题上的失误,而在我看来,真正重要的问题是,.NET对外公布近五年以来,其战略目标始终是模糊的。
微软是整个软件产业的领袖企业,这样的企业,其战略目标应当是如太阳般明确的。当我们探寻微软早年成功经验的时候,有一点是无论如何不能忽略的,那就是70和80年代的微软,有着一个非常清晰的战略目标:让每张桌子上都摆着一台PC,让每台PC里都运行着微软的软件。这是一个图景,这是一个故事,简单、清晰、触手可及。三十年前的比尔盖茨和保罗艾伦为未来世界勾画了如此清晰的图景,并且把微软在这个未来世界里的位置刻画得如此实在,这对于一家高科技公司的长远发展来说,是比任何具体经营手段都要更加宝贵的。结果很清楚,DOS奠定了微软腾飞的基础。到了1985年,比尔盖茨看到了GUI,于是制定了微软第二个10年的战略目标,那就是要让所有的计算机上都运行图形界面,让普通人也能轻松使用电脑。结果很清楚,Windows成就了微软的帝国霸业。到了1995年,虽然是在被动之下,比尔盖茨仍然坚决的制定了微软的第三个战略目标,让所有的PC和应用程序都能够通过Internet互连,结果也是很清楚的,微软击败众多对手,成为地球上无可争议的巨型高科技企业。这就是战略目标,这就是纲领,任何一个目光远大而不是苟且偷生的组织,都必须能够拿出这样的一个纲领来,这个纲领必须是清晰的、明亮的,能够像阳光一样照亮人们的心窝。战略目标是不能隐瞒的,战略目标是不能模糊含混的,只有如此,才有利于凝聚一切力量,发动一切潜力,克服一切困难,鼓舞一切盟友,达成企业的目标。微软能有今天,很大程度上拜其明晰的战略目标所赐。
然而,当微软在2000年抛出.NET的时候,我们却突然发现,这个技术的战略目标是如此的模糊。微软花了很大的力气向大家解释.NET是什么,却没有意识到,这种解释本身就正好说明了.NET最大的弱点:目标的模糊。正是因为目标模糊,才需要喋喋不休的解释,清晰的目标需要解释吗?“让每台桌子上都有电脑,让每台电脑里都跑微软的软件”,这样的目标需要解释吗?“让每台电脑都运行图形界面”,这样的目标需要解释吗?“让电脑可以放电影、听音乐、玩游戏”,这样的目标需要解释吗?可是轮到.NET了,就非得喋喋不休地解释一番。是啊,你微软突然抛出一个怪名字,然后说这个就是“微软在未来十年的核心战略”,然后把.NET的字样挂在了几乎所有产品的名字后面,搞得人们战战兢兢,诚惶诚恐。可是到底你的.NET是什么啊?微软花了几年时间,说得口干舌燥,可是现在十个人对.NET就会有十个不同的认识。有人说.NET是Web Services的实现技术;有人说.NET是迈向软件服务时代的技术;有人说.NET是实现软件工厂化的关键一步;有人说.NET是Java的微软翻版;有人说.NET是所有计算设备互通互联的技术;有人说.NET是微软进军企业计算的分布式计算技术;有人说.NET是一个编程框架;有人干脆说,.NET不过是微软企图维系自己在桌面市场王者地位的工具而已;更多的人会说:我不知道。
是啊,我不知道。你能告诉我,有了.NET,我们未来的世界会是个什么样子?.NET又在这个世界中扮演什么样的角色?.NET的独特性又体现在哪里?你能给我讲一个故事吗?你能给我画一幅图吗?
... ...
... ...
.NET战略的模糊,已经带来了很多的问题。给外界技术社群带来的疑问和不信任还在其次,更严重的是在微软内部引起的思想不一致。微软已经太庞大了,如果战略目标不清晰,连自己人的思想都无法统一,谈何对外?几年来,围绕Longhorn、Yukon、Visual Studio 2005、Web Services、XML等等产品与技术发生的种种事情,正是微软内部思想不统一的体现。
其实,.NET是一项很优秀的技术。它本身有着固有清晰的战略目标,只是微软没有能够清晰地把它展现出来,贯彻下去。这个战略目标是如此庞大,以至于不同的人只能把握到不同的局部,而最最核心和本质的东西,却很难为人所认识。前面列举过的种种观点,其实都反映了.NET的某些具体目标,而却都没有能够把握住.NET的整体。这个问题必须解决,这个问题也必须由微软来解决。尽管五年来微软在这一问题上的表现令人失望,但它仍然是世界上最富创造力的高科技公司之一,现在还远不到对它的悲观和丧失信心的地步。也许等到Longhorn出世的时候,一切怀疑和悲观都将一扫而空,希望为时不会太晚。