.net,是伟大比尔提出来的,微软公司于2000年彻底对外发布, .NET就是微软的用来实现XML,Web Services,SOA(面向服务的体系结构service-oriented architecture)和敏捷性的技术。其初衷是针对于互联网领域的一门技术,微软公司推出他的目的就是想用其终结java在internet方面一支独大的局面,最终干掉java。但,十几年过去了。微软这以宏伟的目标,终究没有实现。在传统的c/s架构中,一般你的老大哥C++针对你有得天独厚的优势——执行效率高,依然是大公司的首选。即使,别人要用,那也是一些不入流的小公司做一些小项目。在web端,你有了一个一点点的优势,拖拽控件,开发速度快吗。但是,这也是针对一些政府网站,和一些内部中小型管理系统,你还是开发人员,不二人选。但真正到一些成熟的,大型的,商业的互联网项目中,谁叫你的仇人java有跨平台,开源,负载均衡超强的优势,这一真正能够使你的子孙能够有一个好的工作机会的时候,你的子孙——。net程序员也只能羡慕着java程序员们,拿着高工资,进出入一些光鲜亮丽的互联网巨头。可我们只能到一些小公司做着苦逼的活,拿着微薄的薪水。在最热门也是将来的大势所趋的领域——移动互联网领域,随着苹果的领先于整个潮流,android的开源免费,但你的父亲——微软接二连三在这一领域的昏招百出,你的市场占用率简直惨目忍睹,并且你永远永远都不能完成自我救赎。综上所述,你就是一个开发界的半吊子。那我今天就数数你的几宗罪.
第一宗罪,你就是您随着你的父亲——封装的打死。 与一个当今的互联网热门的词——开源。而与这个开源相对的对立的单词——封闭,封锁,封装。对于,我们这些it界人来说,你微软不开源操作系统windows,我们完全的可以理解,这是你吃饭的家伙了。但是,这个.net源代码,这是给你的子孙们求生的家伙。 为了更好的使我们学习那种大师的思想,只有这样才能使你的子孙们更多才能贡献出更多优秀的技术,才能为.net长期蓬勃发展带来强劲动力。为什么在.net界很少诞生一些优秀的框架了,即使有也或许使山寨与java,php这些语言,或许是要等好几年,又是出于大多数哪些超级大牛之手。 封装带来的好处, 带来了好多好多纯粹的控件,这样控件固然很好。①普通的c/swinfrom程序,传统的web项目,以及windowsphone,win8项目中,这些控件几乎能够通用,节省了开发人员的学习成本,可你想出来,这样培养出来的子孙是什么了。是一群只会拖控件,并不懂得程序的运行原理,没有什么编程思想的tooler,我不敢说你的子孙全部是这样的,但至少50——60%的是这样的。你想要这批人能够推动你的蓬勃发展,那简直是骑着自行车到月球——痴人说梦吧。②大量的控件,固然开发很快,一个网站三下五除二就做出来了,比java、php快的多。但你是否想过这样的项目是怎么样了,这样的项目速度欺瞒,效率低下。因此,你最多是小微型企业的首选罢了,那些大公司只能勇敢说不,因此,哪些好的工作机会也与你们的子孙擦肩而过了,因此,你的子孙大多数只能呆在一些不入流的公司——很难成为这个行业的头垢的角。 没有大多数影响人,怎么使更多人学习了。
第二宗罪,你总是只能在一个平台上的独舞者。微软当初设计.net时候,便是让他在windows平台上运行,以为这个.net+windows的模式,来巩固他在pc领域的万事江山永不倒。可人算不如天算,一。随着移动互联网日益蓬勃的兴起了,pc端会逐渐萎缩,他在也不是历史的主角。而你在移动互联网领域,总是萎靡不振,这是不是可以估计你也会渐渐的退出历史的舞台,直到有一年你的父亲的倒闭,你也会从人们的视野中消失了。这都不重要,重要是针对我们这些开发人员来说,使用你我们只能在这windows上开发,然而与linux无缘(虽然有所谓的mono技术,那也只不过是不合格的半成品),这就好比我们得到了一颗歪脖树,却失去了一大片森林。
第三宗罪,微软微软,你就是一个唯利是图的公司。 也许,你会说公司的本质就是利益。但,你能不能学习人家java正营。开源免费。.net无论是开发人员,还是服务器的授权费用,都是一大笔,当然,个人是免费的(因为中国是盗版的天堂),但一般的公司又不得不使用正版。这,针对大公司而言来说,没有什么。但,上文说过,.net对于他们来说,视为鸡肋。而一些创业公司,不想付这本 昂贵的费用,就另谋出路,转头了另外的阵营。这有对。net发展相当不利。
第四宗罪,由于您太为,net程序员考虑了,入门较简单,所以这批程序员是程序界较低端的程序员,不爱思考,好逸恶劳。懒惰,所以,这部分的人的素质较低,所以在这内忧外患下,。net止步不前,逐渐被java远远抛在脑后。甚至微软的策略由此影响了。
当然,我写这篇文章,不是说。net真的不行了,只是一些事实。微软也慢慢开源,提倡开发人员都使用aspnet mvc开发,在移动端也在奋起直追,但这是不是真的太晚了,亡羊补牢为时未晚,当然,这些都是.net界的策略问题、与我们开发人员关系不那么大,更重要的是,我们应当不再在拖控件,而要明白真正的原理,比如asp。net的生命周期等等实质性的问题,同样夯实基础,比如数据结构,算法等等。只有我们.net程序员的基础足够强,这样才能与java的人分庭抗礼。.net迎来了一个新的春天。