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

转载 2007年09月29日 00:04:00

  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# 2.0发布的时候,我们回头看Java,总认为这个语言怎么发展得这么慢?但当C#发展到3.0的时候,它也开始显示出臃肿之态了,这是否会也会带来什么连锁效应呢?6年前,我是个Java的拥护者,当时...
  • jiaruiyang
  • jiaruiyang
  • 2007年08月08日 08:39
  • 390

尼葛洛庞帝:软件越做越臃肿 Linux亦不例外

  北京时间4月5日消息,据国外媒体报道,“每个孩子一台笔记本(One Laptop Per Child)”慈善计划发起人尼古拉斯·尼葛洛庞帝(Nicholas Negroponte)周二对软件业提出...
  • snail110
  • snail110
  • 2006年04月05日 18:35
  • 832

SOAPUI 属性传递之二

作者:  长新  QQ:  1334862845                                                                            ...
  • liuchangxin1982
  • liuchangxin1982
  • 2015年08月13日 19:08
  • 598

转来的要看好长时间的很有哲理的文章

正如"打工皇帝"唐骏说:"我觉得有两种人不要跟别人争利益和价值回报。第一种人就是刚刚进入企业的人,头5年千万不要说你能不能多给我一点儿工资,最重要的是能在企业里学到什么,对发展是不是有利……"   ...
  • xyz121323693
  • xyz121323693
  • 2012年07月17日 00:13
  • 1345

Eclipse曾经的行业之王_为何堕落了?

原文链接 Eclipse曾经的行业之王,为何堕落了? 发布时间:2017-05-24 09:23:59555人关注34人参与 Eclipse,曾经的行业之王 Eclip...
  • bystarlight
  • bystarlight
  • 2017年05月24日 14:34
  • 644

源代码阅读

今天看源代码 printf函数的实现方式,从va_start的实现方式发现_bnd  (A, _AUPBND) 又在上面发现 _AUPBND的宏定义 288 #define _AUPBND ...
  • h3139597
  • h3139597
  • 2012年02月26日 23:53
  • 1057

谷歌是否让我们变得愚蠢?

http://blog.sina.com.cn/s/blog_537d1eea0100cppy.html 卡尔在2008年7-8月号的《大西洋月刊》撰文,以《谷歌是否让我们变得愚蠢》为题,痛苦地剖析...
  • qwertyuj
  • qwertyuj
  • 2014年01月21日 16:32
  • 4718

只有死亡和税收是不可避免的…

原文地址:只有死亡和税收是不可避免的——国家为什么要征税作者:追求石全石美人  只有死亡和税收是不可避免的——国家为什么要征税 西方人曰:“只有死亡和税收是不可避免的”。过去,我们对这种说法难以...
  • u011563845
  • u011563845
  • 2016年06月23日 11:16
  • 1939

论精简代码和臃肿代码的区别

:)
  • Px01Ih8
  • Px01Ih8
  • 2017年10月08日 00:00
  • 89

臃肿的C++ - 浅谈过度包装

浅谈由于对C++对象模型的滥用导致C++程序臃肿不堪的状况.
  • querw
  • querw
  • 2010年12月03日 14:33
  • 3604
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: 论C#变得越来越臃肿是不可避免的
举报原因:
原因补充:

(最多只允许输入30个字)