Csharp 不停止膨胀,必将走向灭亡
source link: https://www.techug.com/post/if-csharp-does-not-stop-expanding-it-will-surely-go-to-ruin96b96d4ff82d107d1164/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
【CSDN 编者按】编程语言更新的频率是越快越好,还是越慢越好,不断增加的功能是否真的就是开发者想要的?
原文链接:https://medium.com/codex/c-is-dying-fa21a96107c5
声明:本文为 CSDN 翻译,未经允许,禁止转载。
作者 | Andrew Zuo
译者 | 弯月 责编 | 屠敏
出品 | CSDN(ID:CSDNnews)
我很喜欢 C#。大学毕业后,我的第一个编程项目是用 Unity 编写的游戏。我立刻爱上了这门语言。起初觉得很新鲜,C# 与 Java 很相似。当时还是 Java 7 的时代。我听说他们从那时开始决定采用更快的发布周期,之后一切都变了。
如今我仍然很喜欢这门语言。虽然它没有特别之处,但你可以用它做任何事情,比如多线程。
但在过去的几年里,我非常担心 C# 的命运。我在网上分享了我的想法,并引起了很多人的关注。
争论的关键
我在一条评论中表达了自己的看法:
C# 就快完蛋了,微软正在扼杀它,他们不断添加没人在意的功能。C# 之死就在于功能蔓延。
《魔鬼经济学》中有一句话:“除了轰炸,我不知道还有什么方法可以比租金管制更有效地摧毁一座城市。”
代入编程语言,我们可以说:“除了轰炸,我不知道还有什么方法可以比功能蔓延更有效地摧毁一门编程语言。”
我保留了“轰炸”一词,因为我不知道在编程语言的环境里相应的词语是什么。但显然轰炸是行不通的——你可以炸毁某个公司的总部大楼,但无法干掉他们的编程语言,只能导致他们停止开发。
功能蔓延的问题在于,它会导致学习和掌握编程语言的难度加剧。C++就出现过这样的问题,所以现在只有底层的软件还在使用 C++,因为唯一能用的语言除了 C++ 就只有 C 了。想想看,现在还有人用 C++ 写高级的软件吗?
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 就是属性,我们理应减轻工作负担,而不是加重。
情况愈演愈糟
每年 C# 都要推出新版本。我不知道为什么每个人都喜欢快速的发布周期。我使用 Firefox 4 beta 已经一年了,我很满意。但现在呢?Firefox 的版本发布已经超过了 100 了。因为如今每个浏览器每 4 周就要更新一次版本。
C# 每年更新一次,Java 每 6 个月更新一次。我不明白这是为什么。编程语言又不会很快过时。
我知道 Java 加快更新节奏的原因,我怀疑与 Open JDK 有关。旧版本的 Open JDK 没有得到任何更新,所以如果你想使用 5 年前的 Java 版本,就像大多数公司那样,那么就需要付费。
现在 C# 可能还没有那么糟糕。但照目前的节奏发展下去,只要几年的时间,很快我们就会被功能蔓延淹没。
不要使用这些功能
看到这里,有人肯定会说,不要使用这些功能不就好了吗?我表示同意。但你必须知道,如今不使用这些功能也没什么大不了,但 C# 的功能继续按照这个节奏蔓延下去,结果会怎样?每个程序员都会觉得自己被某种神秘的力量所束缚,被迫使用语言中的这些元素。
当所有 C# 的教程都开始使用超级晦涩的语法时,会怎么样?我们该怎么办?
我认为,如果真的有那么一天,很多人将停止使用 C#。
我爱 C#
C# 的问题在于过于冗长,这是因为他们借鉴了 Java,所以我经常开玩笑地称它为“Java#”。
因此,如果 C# 添加新功能是为了减少冗余冗长,那我很支持。但如今他们添加新功能感觉只是拆东墙补西墙,解决不了根本问题。
Dart 之类语言的努力方向是:“怎样让语言变得更简单?”而 C# 却在说:“我们如何才能用更少的代码完成以前实现的功能?”
然而,他们得出的答案是“只要给它一个宏”。
当然,有时他们也会考虑添加一些真正有用的东西。但大多数时候只是在添乱。表面看来,他们解决了需要键入的代码太多的问题,但潜在的复杂性愈演愈糟。
有报道称,程序员正在放弃 C#。根据 Stack Overflow 的趋势显示,自 2009 年中期以来,有关 C# 的问题数量急剧下降,他们的年度调查(2017年~2018 年除外)显示,该语言的数量呈缓慢下降的趋势。
继续按照这个水平膨胀下去,我相信会有更多人放弃 C#。
本文文字及图片出自 CSDN
Recommend
-
66
看过了谷歌的年度搜索关键词,我们也来看看知乎发布的2017大事记盘点。这个世界也许不够完美,但我们绝不停止探寻美好的脚步。
-
40
不必将“00后CEO狂怼成年人”放在心上
-
40
图片来源@视觉中国 文 | Gamewower 中国游戏厂商,是时候向中国式端游挥手告别了。 01 5月14日凌晨,...
-
19
奇思妙想 - @yuandatou1024 - 我的观点是不会,永远不会,仅代表个人观点,不要喷我。每次看到类似这样的标题,我都觉得。。。首先我们来看人工智能如何决策:海量的数据+算法。我们再来看看人类如何决策:过去所有经验(经历)的总和。看起来两
-
4
本文来自微信公众号: 互联网怪盗团
-
6
IPFS 全球分布式存储市场的一颗明珠 FIL 币必将成为千倍币IPFS 全球分布式存储市场的一颗明珠 FIL 币必将成为千倍币 这篇文章对读者朋友最关心的问题做一个简单的分析,希望能够帮助读者朋友们更好的了解 IPFS/Filecoin 项目。IPFS/Filecoin 项...
-
10
IPFS东数西算枢纽工程在即,FIL必将迎来重大机遇发布于 今天 10:52 理性、谨慎地运用我们所讨论的原则来建立一个投资组合,而不要仅仅依靠情绪或表面的想法。这是一...
-
11
收起工具时间不限所有网页和文件站点内检索百度为您找到相关结果约876,000个 ...
-
3
太拼了!76岁宗庆后“再创业”,强者从不停止奋斗! ...
-
5
苹果正在走向灭亡,这个过程有个名字 2022年08月02日 11:29 10078 次阅读 稿源:
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK