
7

鉴于 C# 正沦为"小众"语言,想向大家介绍一下它,各位想看点什么?
source link: https://www.v2ex.com/t/786457
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.

想向大家介绍一下这门"写的爽"的语言,又怕才疏学浅介绍不清楚。
不知道各位想看点什么?
不谈论生态就业等等问题,单纯说语言本身,有可能涉及到 .NET
第 1 条附言 · 37 分钟前
我开头已经说了本帖不讨论生态就业等问题,单纯的向“想了解其他优秀语言的人”介绍一下 C#,烦请后来者不要再讨论生态就业等问题了,让我们聚焦在语言本身
35 条回复 • 2021-06-29 14:45:54 +08:00
imshawer 56 分钟前 1
C#,丝般顺滑,行云流水。
.NET ,连环境都不用装,self-contained 直接就可以欢快的跑在 Linux 上。
甲方说,.NET ? 还是用 JAVA 吧。
.NET ,连环境都不用装,self-contained 直接就可以欢快的跑在 Linux 上。
甲方说,.NET ? 还是用 JAVA 吧。
Cbdy 52 分钟前 via Android
@Cbdy 打完一般就发出去了,就语言语法本身,现在各大语言其实都在同质化,区别越来越小了。
比如 TC39 天天琢磨怎么给 JavaScript 加特性,一年一个出个新版本,不够用还可以自己写插件; Java 再过两个月就版本 17 了,又有新特性,Loom,Valhalla 估计也快了(
很多人拿 Java 和 C#、Go 比,在我看来人才是最重要的因素,人多,社区活跃,剩下的不足可以慢慢改进嘛,这就是开源的魔法。
Go 的协程很棒,Java 对标弄了个 Loom ; Go 支持 AOT 成 Native Image,GraalVM 也对标弄个 AOT 编译器; C#是语法糖的先锋,但是加糖容易,减糖难,而 Java 也在加糖、但是更加保守(慎重),比如模式识别、Record 等
所以比起现有的语法、生态,一个语言的社区才是最重要的
比如 TC39 天天琢磨怎么给 JavaScript 加特性,一年一个出个新版本,不够用还可以自己写插件; Java 再过两个月就版本 17 了,又有新特性,Loom,Valhalla 估计也快了(
很多人拿 Java 和 C#、Go 比,在我看来人才是最重要的因素,人多,社区活跃,剩下的不足可以慢慢改进嘛,这就是开源的魔法。
Go 的协程很棒,Java 对标弄了个 Loom ; Go 支持 AOT 成 Native Image,GraalVM 也对标弄个 AOT 编译器; C#是语法糖的先锋,但是加糖容易,减糖难,而 Java 也在加糖、但是更加保守(慎重),比如模式识别、Record 等
所以比起现有的语法、生态,一个语言的社区才是最重要的
zhuangzhuang1988 38 分钟前
Rwing 32 分钟前
@yeqiu 不好意思恕我才疏学浅,没有很深入的了解 Goroutines,这里有一篇文章对比 C#与 go https://zhuanlan.zhihu.com/p/279164405
我相信两种模式是各有利弊的。
至于 async/await 是否足够优秀,我个人觉得 async/await 对于初学者来说确实有些难理解,不过 async/await 应该也没那么糟,不然 python/js/rust/c++也不会竞相模仿吧
我相信两种模式是各有利弊的。
至于 async/await 是否足够优秀,我个人觉得 async/await 对于初学者来说确实有些难理解,不过 async/await 应该也没那么糟,不然 python/js/rust/c++也不会竞相模仿吧
kop1989 31 分钟前 1
以现在这个时间点( 2021 )而言,语言之间几乎没有绝对的优劣势可言。
比如你说 C#有什么绝对突出的优势么,并没有。优势在于原生支持.net 库
Java 语言本身有什么绝对优势么?也没有。优势都在那些框架上。
这就像是你讨论:英语、法语、德语、意大利语在语言本身上哪个优秀?
所以抛弃既有生态和行业内既有的开发流程来探讨语言本身,基本没有意义。
比如你说 C#有什么绝对突出的优势么,并没有。优势在于原生支持.net 库
Java 语言本身有什么绝对优势么?也没有。优势都在那些框架上。
这就像是你讨论:英语、法语、德语、意大利语在语言本身上哪个优秀?
所以抛弃既有生态和行业内既有的开发流程来探讨语言本身,基本没有意义。
dinfeo 24 分钟前
坐标工业领域
作为一个 从 delphi C# 到 现在 java Node.js 混用的
之前的很长一段时间,工厂的 IPC 都是装 Windows 系统的,而且 OPC 、modbus 等工业协议,C#都有较好的现成的包可以用,甚至一些机器的 HMI 都是跑着 windows 。。。
工厂里的环境,一般是与外网隔绝的,系统常年不更新,所以很大一部分工业软件都是基于 C#的 winform 程序。
但随着近几年 IOT 的兴起,各种 Linux 的 IOT 设备慢慢被工业领域接受,如传感器,gateway,智能型控制器。
所以,近几年 java 和 node.js 在工业领域又流行起来。
C#觉得还是 winform 和 Unity3D 比较适合。无论在 IOT 和 Web 的开发上,C#都显得力不从心,虽然有.net core 的跨平台,但是太晚了,在非 windows 的环境.net core 的稳定性和运维都是个风险。就和 windows phone 一样,不是不好,是出来太晚,导致没有了生态,最终失败。。。
作为一个 从 delphi C# 到 现在 java Node.js 混用的
之前的很长一段时间,工厂的 IPC 都是装 Windows 系统的,而且 OPC 、modbus 等工业协议,C#都有较好的现成的包可以用,甚至一些机器的 HMI 都是跑着 windows 。。。
工厂里的环境,一般是与外网隔绝的,系统常年不更新,所以很大一部分工业软件都是基于 C#的 winform 程序。
但随着近几年 IOT 的兴起,各种 Linux 的 IOT 设备慢慢被工业领域接受,如传感器,gateway,智能型控制器。
所以,近几年 java 和 node.js 在工业领域又流行起来。
C#觉得还是 winform 和 Unity3D 比较适合。无论在 IOT 和 Web 的开发上,C#都显得力不从心,虽然有.net core 的跨平台,但是太晚了,在非 windows 的环境.net core 的稳定性和运维都是个风险。就和 windows phone 一样,不是不好,是出来太晚,导致没有了生态,最终失败。。。
Rwing 23 分钟前
@kop1989 不敢苟同,是没有绝对的优劣势,但是有相对的优劣势,某个语言可以"写的爽一点点"我就感觉很开心了。
本贴也不是一个比较贴,只是向有心了解的人介绍一下,这没有意义吗?如果说没有意义,那我觉得“您点进来花了大段时间打字点评没意义”这事其实更没意义
本贴也不是一个比较贴,只是向有心了解的人介绍一下,这没有意义吗?如果说没有意义,那我觉得“您点进来花了大段时间打字点评没意义”这事其实更没意义
yejinmo 20 分钟前
同工控领域
服务端及 PC 客户端均由 C#开发,服务端正在迁移 .Net 5,PC 客户端用到了 WinForm 还停留在 .Net Framework 4.6.1
开发丝般顺滑
服务端及 PC 客户端均由 C#开发,服务端正在迁移 .Net 5,PC 客户端用到了 WinForm 还停留在 .Net Framework 4.6.1
开发丝般顺滑
kop1989 17 分钟前
@Rwing #30 关键就在此,即便是“相对优劣”,也是需要场景的,“爽”也是要场景的。
而场景往往就诞生于行业既定的开发流程和既定生态下。
比如你要用微服务,你一定不会因为 c#的语法糖更甜、LINQ 更好用就放弃 java 转用 C#。
反之,你要开发 windows 客户端,你一定不会因为 Java 更原教旨主义的面向对象就选择 Java Swing 。
而场景往往就诞生于行业既定的开发流程和既定生态下。
比如你要用微服务,你一定不会因为 c#的语法糖更甜、LINQ 更好用就放弃 java 转用 C#。
反之,你要开发 windows 客户端,你一定不会因为 Java 更原教旨主义的面向对象就选择 Java Swing 。
charlie21 16 分钟前
SDK 和 编辑器 和 IDE 直接介绍跨平台的 .NET Core 和 vscode 和 JetBrains Rider
不支持跨平台的用品请不要介绍 谢谢,唯有如此才能挽救 C# 形象
不支持跨平台的用品请不要介绍 谢谢,唯有如此才能挽救 C# 形象
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK