服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

“C# 不停止膨胀,必将走向灭亡”

日期: 来源:脚本之家收集编辑:
 关注
“脚本之家
”,与百万开发者在一起

编程语言更新的频率是越快越好,还是越慢越好,不断增加的功能是否真的就是开发者想要的?

原文链接:https://medium.com/codex/c-is-dying-fa21a96107c5

声明:本文为 CSDN 翻译,未经允许,禁止转载。

作者 | Andrew Zuo
译者 | 弯月     责编 | 屠敏
出品 | CSDN(ID:CSDNnews)

我很喜欢 C#。大学毕业后,我的第一个编程项目是用 Unity 编写的游戏。我立刻爱上了这门语言。起初觉得很新鲜,C# 与 Java 很相似。当时还是 Java 7 的时代。我听说他们从那时开始决定采用更快的发布周期,之后一切都变了。

如今我仍然很喜欢这门语言。虽然它没有特别之处,但你可以用它做任何事情,比如多线程。

但在过去的几年里,我非常担心 C# 的命运。我在网上分享了我的想法,并引起了很多人的关注。


01

争论的关键


我在一条评论中表达了自己的看法:

C# 就快完蛋了,微软正在扼杀它,他们不断添加没人在意的功能。C# 之死就在于功能蔓延。

《魔鬼经济学》中有一句话:“除了轰炸,我不知道还有什么方法可以比租金管制更有效地摧毁一座城市。”

代入编程语言,我们可以说:“除了轰炸,我不知道还有什么方法可以比功能蔓延更有效地摧毁一门编程语言。”

我保留了“轰炸”一词,因为我不知道在编程语言的环境里相应的词语是什么。但显然轰炸是行不通的——你可以炸毁某个公司的总部大楼,但无法干掉他们的编程语言,只能导致他们停止开发。

功能蔓延的问题在于,它会导致学习和掌握编程语言的难度加剧。C++就出现过这样的问题,所以现在只有底层的软件还在使用 C++,因为唯一能用的语言除了 C++ 就只有 C 了。想想看,现在还有人用 C++ 写高级的软件吗?


02

C# 的状况如何?


我不希望同样的命运发生在 C# 身上。但不幸的是 C# 的状况也堪忧。

我第一次产生怀疑,是因为看到了 C# 8 的 switch 表达式。你可以像下面这样定义一个 switch 语句。

public static RGBColor FromRainbow(Rainbow colorBand) =>
    colorBand switch
    {
        Rainbow.Red => new RGBColor(0xFF, 0x00, 0x00),
        Rainbow.Orange => new RGBColor(0xFF, 0x7F, 0x00),
        Rainbow.Yellow => new RGBColor(0xFF, 0xFF, 0x00),
        Rainbow.Green => new RGBColor(0x00, 0xFF, 0x00),
        Rainbow.Blue => new RGBColor(0x00, 0x00, 0xFF),
        Rainbow.Indigo => new RGBColor(0x4B, 0x00, 0x82),
        Rainbow.Violet => new RGBColor(0x94, 0x00, 0xD3),
        _ => throw new ArgumentException(message: "invalid enum value", paramName: nameof(colorBand)),
    };

这有什么必要呢?正常的 switch 语句有什么问题吗?如果你觉得某些情况下这种写法是有用的,那么看看下面这个。在 C# 9 中,某些情况下 new 操作符可以省略类型,例如:

private List<WeatherObservation> _observations = new();

关键字 var 已经引发了足够多的争议,现在又来了一个?

那么,如何在 C# 10 中为属性创建属性?他们又增加了一个关键字 field,用于定义自动属性。我不明白为什么我们不能直接使用普通属性。

field 就是属性,我们理应减轻工作负担,而不是加重。


03

情况愈演愈糟


每年 C# 都要推出新版本。我不知道为什么每个人都喜欢快速的发布周期。我使用 Firefox 4 beta 已经一年了,我很满意。但现在呢?Firefox 的版本发布已经超过了 100 了。因为如今每个浏览器每 4 周就要更新一次版本。

C# 每年更新一次,Java 每 6 个月更新一次。我不明白这是为什么。编程语言又不会很快过时。

我知道 Java 加快更新节奏的原因,我怀疑与 Open JDK 有关。旧版本的 Open JDK 没有得到任何更新,所以如果你想使用 5 年前的 Java 版本,就像大多数公司那样,那么就需要付费。

现在 C# 可能还没有那么糟糕。但照目前的节奏发展下去,只要几年的时间,很快我们就会被功能蔓延淹没。


04

不要使用这些功能


看到这里,有人肯定会说,不要使用这些功能不就好了吗?我表示同意。但你必须知道,如今不使用这些功能也没什么大不了,但 C# 的功能继续按照这个节奏蔓延下去,结果会怎样?每个程序员都会觉得自己被某种神秘的力量所束缚,被迫使用语言中的这些元素。

当所有 C# 的教程都开始使用超级晦涩的语法时,会怎么样?我们该怎么办?

我认为,如果真的有那么一天,很多人将停止使用 C#。


05

我爱 C#


C# 的问题在于过于冗长,这是因为他们借鉴了 Java,所以我经常开玩笑地称它为“Java#”。

因此,如果 C# 添加新功能是为了减少冗余冗长,那我很支持。但如今他们添加新功能感觉只是拆东墙补西墙,解决不了根本问题。

Dart 之类语言的努力方向是:“怎样让语言变得更简单?”而 C# 却在说:“我们如何才能用更少的代码完成以前实现的功能?”

然而,他们得出的答案是“只要给它一个宏”。

当然,有时他们也会考虑添加一些真正有用的东西。但大多数时候只是在添乱。表面看来,他们解决了需要键入的代码太多的问题,但潜在的复杂性愈演愈糟。

有报道称,程序员正在放弃 C#。根据 Stack Overflow 的趋势显示,自 2009 年中期以来,有关 C# 的问题数量急剧下降,他们的年度调查(2017年~2018 年除外)显示,该语言的数量呈缓慢下降的趋势。

继续按照这个水平膨胀下去,我相信会有更多人放弃 C#。

本文经授权转载自微信公众号「CSDN」(ID:csdnnews)

<END>

程序员专属T恤

商品直购链接 

相关阅读

  • 强大插件,原是付费,现永久免费!

  • 啰嗦几句上次推荐不坑老师的“不坑盒子”时,有小伙伴在后台留言给我说,有没有Excel插件呢?聪明如我的回答当然是:我有空找找,找到了立刻给大家安利!然后,就找到了今天这款插件,这款
  • 官方免费,这几款NB软件很值得安装!

  • 啰嗦几句我知道关注我的小伙伴很多都是大学生,而且最近大学也开学了,所以学习就成了最紧要的任务。学习类的软件我安利过好多,今天就再给大家安利一款免费了好久好久的软件,有需
  • 蜂蜜入药好治病!

  • 阅读前,先关注蜂蜜有润肺止咳、补脾胃、消炎止痛之功,科学配合中药使用效果更好。笔者将收集的验方介绍一些,供选用。1 习惯性便秘验方:蜂蜜、芦根各50g。用法:先把芦根煮开20m
  • 张杰彬:刚才做了个梦,然后。。。

  • 刚才,也就是凌晨5点多,做了一个梦。梦见我参加一个大会,我到了以后,发现自己已经迟到了。举办会议的人我不认识,现场有几千人参加,但是,我买的是超级超级vip的门票,所以就选了一个位
  • 董明珠怒斥绯闻

  • 近日,一则关于格力电器董事长董明珠与公司某男高管谈恋爱的消息在网上流传。网上流传的截图显示,一位自媒体大V在社交平台上发布消息称,“董明珠和王自如谈恋爱,当事人已经官宣
  • 一个程序员全职外包,你觉得是否有出路?

  • 点蓝字关注,一起程序员弯道超车之路来源:juejin.cn/post/7032317937339858952背景鄙人本科毕业一年有余,计算机专业。全栈工程师,但更喜欢前端的工作,于是在一家游戏公司任职前端

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • “C# 不停止膨胀,必将走向灭亡”

  • 关注“脚本之家”,与百万开发者在一起编程语言更新的频率是越快越好,还是越慢越好,不断增加的功能是否真的就是开发者想要的?原文链接:https://medium.com/codex/c-is-dying-fa2
  • 社区搭台,他们的老年生活越唱越“有戏”

  • 日前,记者走进位于营口市西市区通惠社区三楼的文化活动室,京胡的高亢、月琴的潺潺、三弦的清脆伴着声声戏腔不绝于耳。春节过后,通惠社区惠友京剧社开启了首轮社团活动,近20名老
  • 效率提升神器!看看时间都去哪了?

  • 关注“脚本之家”,与百万开发者在一起原创:开源小分队(微信公众号ID:sourceteam)已获得原公众号授权转载大叔说春节假期回来之后,我工作就一直心不在焉的,严重怀疑我每天上班都在