写点什么

评论: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:281491
用户头像

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

关注

评论

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

《CPython Internals》阅读笔记:p152-p176

codists

CPython Internals

基于Flexus X实例搭建Nginx网站服务

平平无奇爱好科技

电商平台API与ERP的无缝对接:策略与实践探索

代码忍者

ERP系统 API 策略

广州11号线地铁智慧公厕案例:光明源智能科技的智慧创新实践

光明源智慧厕所

智慧厕所 智慧公厕

2024 京东零售技术年度总结

京东科技开发者

前端怎么做好稳定性保障体系建设?精准搞定“白虎”,不用叫“广智”!

京东科技开发者

DDR 带宽的计算与监控

地平线开发者

自动驾驶 算法 地平线征程6

AiBinance:觉醒的智能灵魂与去中心化狂欢

股市老人

焱融科技携手共建“燎原”人工智能产业联盟,引领 AI 产业新飞跃

焱融科技

人工智能 智算中心 人工智能产业联盟

华为云Flexus X实例性能实测:速度与稳定性的完美结合

平平无奇爱好科技

敏捷方法论如何破解汽车行业的研发与交付难题

爱吃鱼的小雨

敏捷开发 汽车 敏捷转型 敏捷项目管理

WebGL 开发框架及其分析

北京木奇移动技术有限公司

数字孪生 软件外包公司 webgl开发

Flexus云服务器X实例实践:安装Tasks.md任务管理工具

平平无奇爱好科技

在Flexus X实例上安装JDK和Tomcat保姆教学

平平无奇爱好科技

0 Token 间间隔 100% GPU 利用率,百度百舸 AIAK 大模型推理引擎极限优化 TPS

百度Geek说

百度云 大模型、 #GPU

解锁电商新境界,在华为云Flexus上快速部署并运行Magento电商系统

平平无奇爱好科技

华为云弹性云服务器FlexusX实例下的Nginx性能测试

平平无奇爱好科技

Flexus云服务器X实例实践:安装SimpleMindMap思维导图工具

平平无奇爱好科技

部署个人知识管理系统SiyuanNote

平平无奇爱好科技

使用sysbench对Flexus X实例对mysql进行性能测评

平平无奇爱好科技

阿里云 EMR 发布托管弹性伸缩功能,支持自动调整集群大小,最高降本60%

阿里云大数据AI技术

大数据 阿里云 弹性伸缩 EMR

稳定性方法论:可灰度 & 可监控 & 可回滚

京东科技开发者

.NET8.0多线程编码结合异步编码示例

不在线第一只蜗牛

Java .net 算法

基于华为云Flexus云服务器X搭建部署——AI知识库问答系统(使用1panel面板安装)

平平无奇爱好科技

基于Flexus X实例安装YesPlayMusic在线音乐播放器

平平无奇爱好科技

WordPress部署

平平无奇爱好科技

基于华为云Flexus X实例部署Uptime-Kuma服务器监控面板

平平无奇爱好科技

部署在线文档应用程序CodeX Docs

平平无奇爱好科技

NocoBase 本周更新汇总:详情区块联动规则

NocoBase

开源 低代码 零代码 无代码 版本更新

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