Read Sean

Read me, read Sean.
posts - 508, comments - 655, trackbacks - 9, articles - 4

[转自己的随笔].NET, 想说爱你不容易

Posted on 2005-03-16 00:59 laogao 阅读(681) 评论(2)  编辑  收藏 所属分类: ReadingThe Other Side

鉴于Java社群不时的也应该了解一下对手的信息作为参考,我将自己在博客园的一篇随笔摘录如下:
原文见:http://www.cnblogs.com/sean/archive/2005/03/15/119341.html

供参考的文章:
孟岩-.NET面临信任危机,根源在于目标模糊http://blog.csdn.net/myan/archive/2005/03/15/319919.aspx
独裁是一种风险http://blog.csdn.net/java_editor/archive/2005/03/15/320030.aspx
刘如鸿-失去信心?还是再度迷惘http://blog.csdn.net/liuruhong/archive/2005/03/16/320576.aspx

正文:

微 软的.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,你可真是让人欢喜让人忧啊。


/* -- 以下添加于北京时间2005年3月19日16时 -- */

通过这两天从不同渠道了解到的信息,我想我原先对.NET的认识和理解是有偏差的,至少是有些过时或者偏颇的。下面这一篇选自MSDN,是很好的一篇文章,相信可以说清楚很多在我的这篇随笔中的疑问:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnreal/html/realworld06012004.asp

也许是我的Java背景,我倾向于从虚拟机和平台中立的角度去看待.NET,或者说,我希望.NET是这样的一个框架。但是事实上,.NET也许从来就没 有打算要100%的平台中立,甚至它在很大程度上、在未来很长一段时间之内还需要依赖原有的COM和Win32 API,它更是一个runtime而非VM,它是打算在Windows平台上增加另一个有价值的抽象,使我们针对Windows的编程变得前所未有的容 易。

(在这篇MSDN文章之外需要补充的是:近两年SUN也倾向于把自己的虚拟机/运行时叫做JRE – Java Runtime Environment,尤其是推出HotSpot技术以后,Java程序会被动态分析和部分编译成本地代码执行。)

但是这正说明了一种我也许无法接受的微软作风:想当年,微软何其郑重其事的将.NET Framework的一个子集:JScript、C#和CLI,注意,是CLI不是CLR,拿到ECMA去申请标准化,多么开放的姿态。(也许正是微软这 个举动让我误以为.NET会平台中立吧。)如今,MONO项目已经说明不了什么了,或者说,已经没有什么说服力,这些标准化的进程又带来了多大的技术上的 进步和创新?

在我看来,开放的姿态对于一个大型的框架/技术的发展和完善而言是相当有好处的,但是由于微软对的.NET的绝对控制,.NET走的是跟Java截然不同的路线,这对我来说是一种无奈。

最近,另外一种现象也引起了广泛的关注:那就是微软在.NET社群已经有了相对成熟的Log4NET、NAnt、NUnit、Spring.NET、 NHibernate等等工具/框架之后,准备推出自己的一套东西并集成进Visual Studio .NET,这也许会引起一些人的不满,不过也许就像 I坐标 所说,这个是微软的本性。

对于开发人员来讲,我们当然会在一定程度上有选择的自由,每个人对.NET,对微软,乃至对C++,对Java等等也有不同的看法,一旦选定了自己的方向 和对策,就一如既往的坚持走下去吧,不要被包括我在内的许多人和媒体的“片面之辞”蒙蔽了双眼。对于这些观点、看法,大家有选择看和不看的自由,也有选择 信与不信的自由,信息社会嘛,就是这么简单。

还是那句话,我认为.NET和Java两个社群需要多多交流,相互学习,而不是言语上的相互攻击和对立。唯有虚心的、对事不对人的态度和探讨才有价值。

Feedback

# re: [转自己的随笔].NET, 想说爱你不容易  回复  更多评论   

2005-03-18 21:59 by 寒枫天伤
晕倒,你把.net当对手? 

# re: [转自己的随笔].NET, 想说爱你不容易  回复  更多评论   

2005-03-19 13:27 by 大胃
难道.NET社群把Java当朋友?

微软为什么会出.NET,除了自身的需要外,很重要的驱动力就是Java,尤其是J2EE给微软带来的竞争压力。要进入企业应用市场,推出.NET同Java竞争是必要的手段。

对于开发人员讲,只要这样的竞争是良性的,这种竞争就是好事。不过IT巨头们非常清楚的知道:得程序员之心者得天下,于是才有了今天我们看到的这么多款优秀的IDE,这些IDE背后争夺的是什么呢?

对手 != 死敌,尤其如果你对微软比较了解的话,它其实就是需要对手的存在。也许你我对对手的理解不同?

两大阵营需要相互学习没错,但是不能因为相互学习简单的忘记了它们之间的竞争关系。

只有注册用户登录后才能发表评论。


网站导航: