微软的.NET框架从诞生至今应该有四年多了吧?这四年是怎样的四年?微软又在多大程度上达到了当初所憧憬的漂亮蓝图?我不敢说我对.NET有多么深的了解,但是我似乎越来越发现微软已逐渐背离了最初的美好愿望,或者说,背离了早期力推.NET技术时在广大开发人员中树立的美好图景?
通常,一个好的点子,或者说一套先进的想法,加上微软这样的公司,我们似乎没有必要怀疑它的成功。我们倾向于这样看待微软的产品:成功只是迟早的问题,或者,就算最终计划落空,你也不用太伤心,有那么大一个软件帝国垫背。于是,很多人在左右为难的时候,选择了微软的产品和技术路线。.NET更是被微软戴上了前所未有、鲜艳夺目的光环,我们从各种渠道听到这样的声音:.NET是微软的未来,是微软面向未来至少十年的技术;要跟着微软,就要学习.NET,使用.NET;.NET让你的代码更加安全;未来的微软产品线都会依靠于.NET技术。Bill Gates这次确实是认真的:.NET是微软的远大理想,是微软无论如何都要达到的目标。
平心而论,.NET的核心思想是很不错的,从CLR和IL的设计上就能够看得出来,在吸取了之前诞生的各种不同技术之精髓以后,又大胆的进行创新,实用、易用为先,绝对有实力成为未来大部分计算机应用的统一平台,成为整合企业和个人现有应用的绝佳框架。我相信大部分人在看到这些特点后都对.NET的未来布满希望。
然而最近不知从哪里吹来一股子坏味道:微软自己对.NET的定位发生了变化吗?还是说.NET本来就是个幌子?从微软自己的角度,我们似乎到现在也没有看到微软的哪个重量级产品和产品线是基于.NET的,几乎都还是混血儿或者干脆就是贴牌而已,众所期待的.NET操作系统Longhorn最终也放弃了 WinFS,让人怀疑Longhorn还会不会是当初微软声称的样子;从.NET基础库来看,似乎有相当一部分API只是对原有API的简单包装,原有的优势还在,bug也还在;从我们常见的代码来看,似乎到处都还充斥着[DllImport]这样的标签,是我们的程序员们怀旧吗?我还记得很早以前就有人提出了对.NET的反感,当时我不以为然,现在似乎也有些理解了。其中有一个大家普遍觉得不太满足的地方就是:为什么以前不超过100K的程序为了要用. NET,就必须让客户端下载安装25MB之巨的.NET环境呢?
我本人虽然是做Java出身,对.NET技术本身还是很感爱好,也是支持的,但是对微软的有些做法有些不解:这是在给开发人员怎样的信息呢?.NET不可靠了吗?也许我们应该这样想:.NET绝对不是微软的全部,也不可能解决所有编程问题。诚然。但是.NET不就是为了解决大部分常见的编程问题吗?既然提供了这种便利和安全性,为什么自己都不广泛采用呢?感觉是:微软有一个很好的起点和一个远大的目标,但是为了照顾到所有Windows平台的既得利益者,或者说保护Windows这一商标的既得利益,.NET变得越来越杂,越来越畸形,大概需要静下来好好整理一下了吧?
在.NET的圈内圈外都有不少观望的人:圈内的人在观望.NET是不是将要沦为一种粘合剂而不是以一代多的统一平台?.NET真的只是吸引开发人员到 Windows平台的幌子吗?圈外的人在观望.NET到底是不是微软未来绝对的主力军?是不是他们应该定下的下一个学习目标去投资呢?其实让这一大群人安心的最佳途径也许是微软出面构建一套完全基于.NET的像模像样的大型软件产品(最好是桌面应用),但是微软预备这样做吗?我不知道,但是很怀疑。对于微软来说,也许他们不言而喻的一个心理底线就是:不论技术如何进步,如何创新,都不能动摇Windows和Office在操作系统市场上现有的地位。
.NET,你可真是让人欢喜让人忧啊。