论C#变得越来越臃肿是不可避免的

  6年前,我是个Java的拥护者,当时C#还是1.0版,我经常和师傅争论Java如何比C#好,于是他给我一个回答:“我们的COM比 Java早了近5年,所以我们更成熟;我们的.NET比Java晚了5年,所以更先进”。虽然这么比较有“偷换概念”的感觉,但现在想想其实有另一层意思 ——“成熟与先进”的矛盾。

  Lisp、Haskell、Scheme这些语言也都可以被称之为“伟大”,但为什么很少有人去学呢?因为需要用太多的东西“充斥”我们的大脑 后才可以使用。Java和C#之所以可以快速地被普遍接受,一个很重要的原因就是因为它们的简单与清爽。但当明年春天C# 3.0发布的时候会怎么样呢?虽然你可以将WCF、WF、WCS和WPF视为.NET的外挂,不予理会,但LINQ是个不好回避的内容,因为它在处理数据 访问(关系型的、非关系型的)方面有比较明显的优势,所以即便你个人排斥它,其他还是会有很多人用。最后很可能成为这样一种局面:参与到一个项目组,自己 只能从事一些表层业务开发,因为下层的公共封装机制都是用LINQ编写的,况且还有Enterprise Library这个“样板工程”在后面催着。

  可以这么说,C#越来越臃肿是个必然的趋势,作为.NET语言的“主力”,随着新的开发架构的出现,C#的复杂性还会增加,同时很可能导致革新特性越出越慢,毕竟牵扯的内容多了,作为“主力”除了要考虑语言特性间的协作外,还要充分考虑处理效率。

  不过比起“一条道跑到黑”的Java而言,.NET平台有个优势——CLS(Common Language Specification,公共语言规范)。相信Java的设计者不太愿意,也不敢随便为了一个“快速走红”但还没有2年时间市场考验的技术趋势就去修 改Java编译器;.NET不同,“C#红旗不倒的同时,.NET平台可以彩旗飘飘”,比如Spec#就是个例子,为了避免null对于软件的影响,. NET家族诞生了Spec#,目的就是通过非null这个前提,提高数据验证、异常处理、堆栈管理的能力,利于开发者提供更高质量的软件;F#也是,虽然 C#是强类型的,但动态语言式的开发一样可以基于这个“小兄弟”开发,加上它和其他.NET语言前辈基于同一个CLR环境,所以功能毫不逊色。

  综上所述,C#臃肿是不可避免的,而且很可能会像Visual C++一样,因为语言的复杂性,导致C#开发人员技术能力的两极分化。但同时,借助试验性.NET语言的支持,即便需要集成新的特性,也不会像某些语言一 样从头开始。依靠试验性语言的积累,相信从MSDN中查看C#这些新语法的时候,可以少见一些标着“[Obsolete]”的内容。

 
三肿C#实用编程速查宝典 整理目的:为了让更多朋友加入学习C#的行列 特别感谢: 史莱姆 ( QQ:54488**** ) Rabbit ( QQ:54487**** ) 度娘 谷哥 注意: 1:本文档内所有代码均在WIN764位平台下测试通过,如其他平台下发现异常,比如OS,Linux,UNIX,等等,说明你是个逗逼!如果在Windows其他平台下有异常,请自行解决。 2:本文档内所有代码均为C#语法,再有什么按键精灵,E语音,TC神马的来问为什么看不懂代码,第一次拉黑!第二次还是拉黑!第三次还是拉黑!你觉得我会加你第二次吗?逗逼。 3:本文档内所有代码均只在.net4.0环境下编译测试通过,其他.net版本没有测试结果。 声明: 1:本文档内容概括面较广,条理性不强,代码组织不够到位,如果查看过后发现有什么不适(如字体模糊导致眼睛疼,代码写错导致无法编译之类的),请及时就医,不爽的话,你他妈来打我啊? 2:本文档以纯学术交流使用,无针对任何公司,组织,或者个人,如果哪位高人利用此文档开发出造成了对国家,对人民,对他妈有损害的产品,请不要来找我!一切和本人没有半毛钱关系! 3:本文档不含任何恶意捆绑程序,如发现有恶意捆绑程序,请自行处理,或者你可以再捆绑更厉害的东西都没有问题!一切和本人没有半毛钱关系! 4:本文档不定期进行更新,如果有好的意见或者建议,请及时告知三肿本人,代码看不懂,问问题神马的,见一次打一次!。 5:本文档内容部分来自互联网,部分来自三肿自己编写整理,部分来自以上感谢过的码友或者组织所提供,如有侵犯某位大神的著作权或者利益,请及时告知三肿本人,我绝对不会妥协的! 6:因使用本软件而引致的任何意外、疏忽、合约毁坏、诽谤、版权或知识产权侵犯及其所造成的任何损失,本人概不负责,亦概不承担任何民事或刑事法律责任。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值