你看C#的现状:
可以开发系统,但不如C++和Rust
可以开发AI,但不如Python
可以开发大数据,但是不如Java
可以开发手机APP,但不如Swift(iOS)、Kotlin(安卓)
可以开发互联网WEB,但国内不如Java
可以开发游戏,但画质最好的虚幻用的C++
可以开发单片机应用,但打不过C++、Python、C
可以跨平台开发,但界面库又打不过QT(C++)、Electron(HTML+CSS+JS)
可以当脚本语言用,但是干不过Python、bash
甚至因为互联网的影响,在C#的主战场工控行业,都在被Java挖墙脚
你看,这么看起来是不是觉得C#好像什么都不如别的语言
但是换个视角,如果你要开发一整套,云端web可以用 asp.net (MVC或者前后端分离都可以),终端可以用MAUI做跨平台应用,设备控制可以用Winform或者WPF做Windows设备,用Blazor或者Avalonia做Linux设备,用nanoframe做单片机设备,甚至还能配合unity做AR/VR进行3D效果实景展示
这一切都是基于C#的,也就是说,如果你牛逼,你可以一个人/一个班子包办所有流程。
但如果你换其他语言,那你就得整个语言大礼包,比如云端Java/PHP、客户端Java/C++/Kotlin/Swift(每种设备可能支持不同语言)、单片机MicroPython/Lua/C++,VRAR C++
这里面就C++能够一肩挑,但那个开发体验,懂得都懂
另一方面,语言一多,对于团体来说,对开发人员的要求就会越高,一种语言至少得有一个挑得起重担;对于个人开发来说,多一门语言多的不止一倍的学习开发时间
综上所述:
什么都能干,什么都干的像模像样,但又打不过其他语言。虽然打不过的都有理由:有些是因为历史原因(Java),有些是因为确实不是强项(AI、大数据),还有些是因为和系统耦合(IOS、安卓),有些是因为刚刚起步(跨平台UI)。
但综合来说:
这或许就是C#的优势,但同时也是C#的劣势