分享
 
 
 

观点:.NET发展中的几个失误

王朝c#·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

我一直认为,.NET是目前设计的最漂亮的基础软件平台,这个平台从设计之初,就对与一些长期困扰软件开发者的老问题从根本上进行了重新考虑,并且给出了非常好的解决方案。比如像Assembly的概念,像AppDomain的概念,对于安全问题的解决方案,确实是考虑得非常周到。.NET刚出来的时候,像Jeffrey Richter,Jeff Prosise等老牌微软技术专家,都在兴奋地高呼看到了软件开发的未来,这种呼声恐怕也不能完全看成是替微软在摇旗鼓吹。事实上,.NET本身的优越性不仅仅征服了微软阵营,也征服了一部分开源技术专家。GNU组织就启动了一个项目来模仿.NET,这应该是对于.NET技术优越性的最佳注脚。

然而几年下来,.NET的发展符合微软的预期吗?符合曾经对微软迷信得如痴如醉的fans们的预期吗?恐怕不是这样的吧。

.NET技术是出色的,但是执行上大大小小失误的地方有很多。从大的方面来讲,像.NET这样面向Internet的技术体系,本质上必须跨平台。只有跨平台,才能覆盖网络上的各个节点,使本来是异质的网络同质化,使.NET成为Internet的API,如果能达成这个目标,则.NET就千秋万代了。但微软并没有这样做。在将.NET扩展到Linux、FreeBSD等其他Internet主流平台上的过程中,微软的表现始终是犹犹豫豫,模模糊糊,非常暧昧。

为什么这样明显具有重大战略意义的步子却总迈不开?最简单的猜测是,微软担心这样做会客观上鼓励人们使用Linux/FreeBSD等操作系统,从而间接削弱Windows,直接打击微软的主要利润来源。另外,.NET本身还处于快速变迁中,战线拉得太长也会带来技术体系维护上的难题。

今天的微软已经是一个大公司,各部门各产品线之间的利益关系交错复杂,即使是明显正确的决策也要在官僚主义的台球桌上撞个七荤八素才能落袋,何况像.NET跨平台这样重大的战略性决策。总之,直到现在,我们仍然只能在Windows上使用.NET(不要跟我较真提什么Mono)。这样就把一个本来能够成为覆盖Internet的未来软件环境变成了Windows本身的一个API升级版,战略意义折损大半。回想一下2000-2002年间.NET的那些初期宣传,什么XML,Web Services,什么.NET My Services,多么激进的面向Internet的计划!有人说当时微软对技术发展趋势判断失误,这是胡说。哪里有失误?XML难道不是已经成为网络数据描述的标准了吗?Web Services难道不是为SOA奠定了基础吗?.NET My Services难道不正是今天Google梦寐以求想做的事情吗?哪里有错?只不过自己不坚定,见势不妙就打退堂鼓而已!

即使从Windows API升级版的角度看.NET的执行与推广,失误仍然很大。微软在向.NET转移的过程中,对于如何处理好上一代技术(基于C/C++/COM)与.NET过渡的问题上表现得很不成熟。几个月内过火的宣传排山倒海,把对手们吓得心惊肉跳,把fans们搞得心驰神迷,把自己也灌得晕晕乎乎,可以说是乱了敌人也乱了自己。什么可以马上转?什么要有中长期的转型计划?什么坚决保持稳定?上上下下发生了严重的思想混乱。结果在技术平台过渡这样重大的战略步骤中出现强行军、大跃进的左倾机会主义行为。可以肯定地说,Windows Vista的严重跳票,与激进的技术转型有直接的关系。回顾历史,想想微软从DOS过渡到Windows时代的战战兢兢,周全稳妥,令人不仅唏嘘,同是一家公司,前后差别咋就这么大呢?

让我们再退一步,看看整天跟我们打交道的这几个.NET编程语言好了。微软在微观层面上最大的失误就是对VB.NET语言发展方向的决策失误。本来,在.NET平台上的三种主流语言VB、C#和C++有一个非常清晰的定位。C++专攻底层,与CLR同级,开发效率放两旁,把“强”字摆中间。C#作为CLR上的系统语言,解决.NET上的系统软件开发,开发效率和功能兼顾,但也绝不在哪一边冒头。这样一来,留给VB一个光荣使命——应用开发。VB应该是一个强调生产率,强调简便易用,快速开发的语言,凡是跟这个目标相冲突的,都可以请出VB,脏活累活让C#和C++去做吧,让我们VB漂漂亮亮体体面面地去做very high level language,在开发效率上5倍10倍地超过C#,那才是VB的使命!历史上VB在微软技术体系里不是一直扮演这样的角色吗?历史上VB在这个角色上的表现不是一直都很杰出吗?CLR是干什么的?语言互操作为了什么?不就是为了各个语言各展所长,最后一对接,天衣无缝,皆大欢喜吗?难道我没事创造20种同一个level,表达能力相同,连语义模型都差不多的语言耍着好玩吗?

可是你看看VB.NET干了什么?在Perl、Python已经充分证明了动态语言在生产效率上的威力之后,VB.NET不但没有在VB6的基础上进一步走向动态,走向高生产率,反而往回缩,语言变得比以前更严格了,加强了类型系统的约束,一大堆对生产效率有影响的复杂面向对象特性被毫不犹豫地加入VB,一个简单明快的VB变成了庄严肃穆VB.NET,变成了C#的等价Basic版。如果没有C#,这一切都没什么错误,可是有了C#,还放一个几乎可以句对句翻译的VB,有什么意义呢?除了让老VB6的开发者悲愤欲绝,除了把.NET开发人员毫无必要地划分为两个不能自由沟通的阵营,除了让MSDN文档的长度延长一倍之外,对于开发者提供了什么实质的好处吗?其结果是,.NET主流语言体系里出现了一个基础语言,两个生产率和能力等价的中级语言,而在高生产率的应用开发语言这一栏里,写着一个“暂缺”。

现在VB的那些产品经理大概总算意识到了这个问题,在VB的My名字空间里加入一大堆方便的特性。很好,你们终于看清楚VBers的脑门上写的是什么了:不尚虚名,只求实效。可惜啊,晚了!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有