一门语言是不是受欢迎,更重要的还是市场来决定。Java为什么比C#更加的受青睐?这并不是因为Java这门语言比C#优秀多少,可以说,C#的语法其实很多方面比Java更加优雅,配置更加简单,IDE更加强大,但是C#确确实实输给了Java。如果我们硬是要归结一个C#没落的原因,那可以把这个锅丢给微软的前CEO史蒂夫·鲍尔默(Steve Ballmer)。
鲍尔默在就任微软的CEO后,一直把推广Windows系统作为第一要素,而.NET其实也是其推广Windows Server系统的一把部分,当时的鲍尔默把Linux系统成为“毒瘤”,所以,.NET的生态建设一直都是围绕着Windows操作系统。当然,Windows Server曾经也非常的受欢迎,因为微软的服务很好,对于企业级的客户来说,使用Windows系统比Linux更加的省心。
但是,鲍尔默没有预料到一件事,就是互联网的发展。
2000年以后,互联网迅速的发展,曾经以企业级服务为主战场的IT行业一下子转变了方向。而互联网是没有边界的,用户群体十分庞大,服务器的集群开始慢慢的发展起来,一个互联网的系统,少则十几台服务器,多则上百台服务器,而Windows Server是要买的,但是Linux确是免费的。以前只是企业级的服务时,服务器数量不多,大型企业也不会频繁的进行系统的迭代,所以使用Windows虽然贵,但是放心。但是互联网并不是这样,大量的Windows授权费用会让企业成本大大上升,同时,VS的授权费用也并不低(据我了解,凡客当年在服务器的授权费用上,一年要耗费上千万),因此,在服务器系统的选择上,越来越多的人开始倾向于Linux操作系统,Java也就成为了首选的开发语言。
当微软察觉到自己的尴尬境地时,Java的生态已经非常强大了,围绕着Java生态已经出现了大量的解决方案,大批量的开发者也从.NET转到了Java,C#虽然依旧坚守这企业级应用的这个领域,但是企业级应用早已经不是这个时代的主旋律,企业级应用的开发者待遇也不如互联网的开发者,也就导致现在学.NET的越来越少,一些企业也就渐渐开始抛弃.NET了。
在史蒂夫·鲍尔默卸任微软的CEO后,微软开始了一系列的转向,推出了iPad版本的免费Office软件;推出一些免费的Windows系统;将.NET部分开源,融入开源社区文化;跨平台支持Linux和Mac OS等等。
当然,这一系列的操作如果早做10年,Java不一定能够发展成现在这样,但是现在,这些已经成为了.NET生态最后的自救了。
我们来细数曾经那些使用.NET的巨头们,例如:携程、凡客(现在已经凉凉了)、当当、任我行等等,很多都已经投入了Java的怀抱,在.NET的程序员青黄不接、Java企业越来越多的时候,.NET的程序员又如何受到青睐呢?