首页 > 互联资讯 > 技术交流  > 

C#,是否是编程体验最佳的语言?

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#,是否是编程体验最佳的语言?