论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]”的内容。

 

相关文章推荐

黑马程序员-多线程-在android开发中经常会遇到从子线程切换到主线程,但是频繁地切换会使代码变得很臃肿,也不好维护,想请教一下各位大牛都是怎么处理的?

在android开发中经常会遇到从子线程切换到主线程,但是频繁地切换会使代码变得很臃肿,也不好维护,想请教一下各位大牛都是怎么处理的?...

网站域名“符号化”正在变得越来越重要

网站域名“符号化”正在变得越来越重要,符号化的简单域名是对用户的尊重 一个好记、易识别的域名,对一家网站来说,有着举足轻重的作用。闽南网相关负责人从四个方面对新域名的价值进行了解读。 第一、对于新媒...

C++变得越来越像Python的证据

http://preshing.com/20141202/cpp-has-become-more-pythonic/ C++ Has Become More Pythonic C++...

用C#变得一个贪食蛇游戏

  • 2008年12月25日 20:47
  • 758KB
  • 下载

用互联网的思维来重新思考汽车和人的关系已经变得越来越重要

在互联网主导创新思维的商业时代,用互联网的思维来重新思考汽车和人的关系已经变得越来越重要。 当第一次坐进搭载互联驾驶系统的华晨宝马5系时,王兴的第一个问题是:车载系统是基于什么系统编写的?他打开系统...
  • cdns120
  • cdns120
  • 2013年01月28日 21:22
  • 719

C++与C#对比学习:让对象变得像常量

我们知道如果不希望改变某个变量的值就用const修饰它,让它变为常量.基本类型和指针类型都能用const来修饰.数组也可以用const来修饰. 那你自然要问我们把class实例化成一个对象后,如果不...

C#编程笔录--Winform 让跨线程访问变得更简单

Winform 让跨线程访问变得更简单 前言 由于多线程可能导致对控件访问的不一致,导致出现问题。C#中默认是要线程安全的,即在访问控件时需要首先判断是否跨线程,如果是跨线程的直接访问,在运行时...

微软推出C#必应代码搜索:编程变得太简单

微软宣布推出必应代码搜索服务,暂时只支持 C# 语言,日后将支持更多代码语言。 Visual Studio 用户安装必应搜索插件之后可使用该服务来简化编程任务。Visual Studio 与 MSD...

androi6.0臃肿emoji字库

  • 2016年12月15日 21:58
  • 2.43MB
  • 下载

摆脱臃肿--Unity3D安卓包减肥秘笈

http://www.taikr.com/article/2630   减包瘦身是个精细活。本文整理了0907版本操作过程,以备日后参考。   经过一番折腾,各位攻城狮的努力,美术设计师的支持,策...
  • kenkao
  • kenkao
  • 2015年12月01日 11:09
  • 1469
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: 论C#变得越来越臃肿是不可避免的
举报原因:
原因补充:

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