C#,是否是编程体验最佳的语言?
- 技术交流
- 2024-09-25 22:56:01
2003年,公司要开发一套新的 OA,领导让我在 Java 和 C# 之间做选择,最终选择了 C#(当时吸引我的主要魅力点是 ValueType、property、interface、event 与 delegate)。此后20年里一直都在用 C#,中间做过两年机构讲师,也给大学老师们做过相关培训。
现在,项目主要使用 Java(当然我们自己的工具和框架也支持用 C#),自己的产品则用 C#(.NET 7.0)。
用过 Java、C#、C/C++、JS、SQL、Swift、Dart 、Rust等。不用怀疑,C# 是这些语言中体验最好的。尽管 Swift 出现的较晚,且背后是 Apple,但体验仍然不够好(比如缺少 namespace 的直接支持,以及在构造函数中的一些限制等)。
现在用 C# 做产品的主要理由如下:
1、跨平台(包括跨平台编译)。
2、开源。
3、同时支持开发跨平台的服务以及跨平台的客户端(MAUI)。
4、await/async、await foreach 等异步支持。
5、Span 与 Memory。
6、Native AOT、R2R、单文件、代码裁剪。
7、运算符重载。
8、大量的官方(微软)库,比如 Kestrel Server、ObjectPool、RateLimiting、ClearScript(最后使用 Jint 取代)等。
9、对于效率和性能的一些精确调控,比如 stackalloc、inline(MethodImpl)。
10、nullable type、partial 等。
11、更丰富的基础数据类型。
12、扩展方法。
13、其他一些特性或语法糖,比如 default、ref、out、??= 、nameof等。
14、官方提供的更集中的文档资料(在国内,遇到问题能够集中、快速和顺畅的访问相关资料非常非常重要)。
当然,也有一些“不足”(在我们的应用场景下):
1、MAUI 还不够成熟。
2、interface 不支持 implicit operator。为了支持将 Span 和 Memory 作为数据库底层驱动的输入输出数据,我们抛弃了 Npgsql,自己写了一个专用的 PostgreSQL 驱动(准备开源)。该驱动是面向接口的,但因为这一点,不得不暴露一个抽象类。
3、Native AOT 还有许多限制。
C#,是否是编程体验最佳的语言?由讯客互联技术交流栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“C#,是否是编程体验最佳的语言?”