第一,C#用户基数近年来减少了。偶用C#/.NET10年了,想当年偶刚工作那会,.NET、Java和PHP几乎是三分天下。但由于之前.NET一直是闭源,大型案例生态环境贫瘠,导致很多大公司和互联网公司都选择Java,比如京东技术架构就从.NET转Java了。那时候PHP就更不用说了,门户网站、博客等用PHP多如牛毛。而.NET传统企业用得特别多,大多是企业的内部管理系统。由于像企业内部管理系统这样的项目性质本来就不对外开放,这更使得外界觉得.NET被采用低。前几年,随着移动端开发的兴起,更是助长了一波Java的发展。
第二,.NET开发者社区氛围不够活跃。从GitHub的.NET领域的开发者活跃度来看,同一功能或性质的.NET开源项目数不如Java多,Star数也不如Java多。偶觉得这主要归因于.NET大多组件和库微软都给你做好了,所以不必像Java要自己去实现很多组件或库,自然社区的活跃度会低很多。
第三,.NET开发者多数不愿学习新技术。目前来说,互联网企业用.NET的还是少,而传统企业用.NET的非常多。你可以想像比较一下互联网企业和传统企业的工作环境和氛围。在传统企业,技术更新非常非常慢,甚至不更新,只要项目还能正常工作,领导或开发者就不愿意冒风险去尝试新一点的技术。据偶了解,很多传统企业还在用WebForm这样古老的技术。长期在这种环境下工作,除非你非常自律且爱主动学习,否则过不了多久你也对新技术没有了研究的兴趣。
第四,.NET开发者大多患有懒癌。如果你是一个C#/.NET技术创作者,你会发现,不管在哪些平台(比如头条)发表一篇技术文章,几乎都没有什么阅读量也没有什么点赞,更没有评论。这说明大多数.NET程序员是比较懒的,懒得看,懒得点赞,懒得评论。当然,这和技术文章本身就沉闷也有关。没有互动,作为一个创作者,你会慢慢失去创作的兴趣。
以上个人观点。需要说明的是,这个现象并能说明C#的前景就不如Java等语言。随着.NET开源和.NETCore跨平台,近年来C#生态也在恢复壮大。而且C#语言本是一门非常优美的语言,今年StackOverflow的一份调查显示,.NETCore/ASP.NETCore是最受开发者喜爱技术或框架。
最后,如果你是一名C#/.NET开发者,偶呼吁:当你阅读了一篇技术文章,如果你哪怕有一点点收获,请不要吝惜一个赞或一条评论,这可能是对作者的最大鼓励。让大家一起为.NET社区助力吧!