2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

评论:C#正变得越来越臃肿

  • 2007-07-30
  • 本文字数:1099 字

    阅读完需:约 4 分钟

C# 2.0 发布的时候,我们回头看 Java,总认为这个语言怎么发展得这么慢?但当 C#发展到 3.0 的时候,它也开始显示出臃肿之态了,这是否会也会带来什么连锁效应呢?

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

2007-07-30 04:281667
用户头像

发布了 61 篇内容, 共 14.5 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

为什么要上云,您的团队适合上云吗?Atlassian白皮书给你答案

龙智—DevSecOps解决方案

Atlassian atlassian云版

物联网时代,如何保障嵌入式系统安全?

龙智—DevSecOps解决方案

klocwork perforce Helix QAC

达人专栏 | 还不会用 Apache Dolphinscheduler?大佬用时一个月写出的最全入门教程【三】

白鲸开源

Apache 大数据 开源 DolphinScheduler workflow

关于2022年12代C/C++Linux服务器开发高级架构师课程体系分析

C++后台开发

后端开发 Linux服务器开发 C++后台开发 Linux后台开发 服务器开发架构师

卷入上海疫情,被封40天,我的一点心得

大数据梦想家

程序员 程序人生 疫情防控

如何提高团队的工作效率?

ShineScrum

Scrum 敏捷 团队效率

7 款最棒的 React 移动端 UI 组件库 - 特别针对国内使用场景推荐

蒋川

UI 前端框架 React 移动端 组件库

面试题:关于HDFS,你的沉淀是什么?

Joseph295

Jira工时管理插件线上安装量过百,龙智产品赢得全球企业信赖

龙智—DevSecOps解决方案

Jira插件 龙智 龙智自研插件

如何 DIY 一款属于自己的【3D 重力感应 动态壁纸 】,看完这篇文章你也可以学会

呆呆敲代码的小Y

android Unity 壁纸 动态壁纸

编写实用有效的产品帮助文档,提升客户满意度

小炮

帮助文档

IP归属地火了,IP地址黑灰产浮出水面 要如何预防?

郑州埃文科技

网络安全 IP地址 网络灰黑产

微信小程序和 uniapp 的区别是什么?

CRMEB

手把手教你如何高效落地单项目管理 | 一看既会

阿里云云效

云计算 阿里云 项目管理 敏捷开发 单项目管理

域成员服务器怎么会突然脱域?

BUG侦探

脱域 域信任关系 windows更新

2022年中国互联网母婴行业年度分析

易观分析

母婴产品

千万奖金的首届昇腾AI创新大赛来了,OpenI启智社区提供开发环境和全部算力

OpenI启智社区

人工智能 昇腾AI大赛

ShardingSphere 在金融支付场景下的实践与调优

SphereEx

Apache 数据库 开源 ShardingSphere SphereEx

百度吴甜提出大模型落地关键路径 业内首发行业大模型

百度开发者中心

敏捷团队教练工作坊 (Coaching Agile Teams) | 6月11日

ShineScrum

敏捷 教练 敏捷教练 cat 高管教练

《银行保险机构消费者权益保护管理办法》,如何影响行业与个人?

易观分析

金融消费

云启资本宣布加入 OpenCloudOS 操作系统社区,将自身在开源领域近十年的经验贡献社区

TencentOS

AIRIOT物联网低代码平台如何配置Modbus RTU协议?

AIRIOT

驱动配置

OpenCloudOS 云原生演进之路

TencentOS

leetcode 69. Sqrt(x) x 的平方根(简单)

okokabcd

LeetCode 查找

易安联参编《SASE技术与应用场景白皮书》正式发布

权说安全

网络安全 sase

ironSource开通业内首家微信客户服务平台, 为中国客户提供本地支持

极客天地

一文了解游戏美术开发流程,以及可能遇到的问题

龙智—DevSecOps解决方案

perforce Helix Core Helix DAM

市场份额不断提升,百度智能云稳居金融云解决方案市场第一阵营

百度开发者中心

云原生架构及演进

云智慧AIOps社区

云原生 k8s 构架

打开人工智能“黑盒”,发展可解释、可扩展、可信赖、安全可靠的人工智能

博文视点Broadview

评论:C#正变得越来越臃肿_.NET_王翔_InfoQ精选文章