当前位置 > 首页 > Asp.net

.NET社区面临的问题及其对策

2012-11-28 11:20:00来源:Asp.net

作者:Tony Qu

提示:如果你觉得这帖子很水很无聊,请略过,当然你有权点反对。评论应该是摆事实讲道理,请大家停止无必要的谩骂,.NET社区需要的是团结,别窝里反,我已经看到昨天评论中有Java阵营的人在那里煽风点火,当然Java阵营也有务实者,评论也很中肯,赞一个。删评论是不得已才为之,主要为了正确引导舆论走向,不要受一小撮人的影响,特别是一篇帖子的前几楼评论,很多评论的观点会跟着这个走,这是一个社会学问题,希望大家理解。

 

如今的.NET社区,特别是国内的.NET社区面临诸多问题,本文将一一例举。

很多人误认为“.NET门槛低”

首先我来解释下门槛到底是什么意思,网上找了个标准解释,门槛是门框下端的横木条、石条或金属条。门槛高低本意是说要进入这个门需要多大力气,引申意是说进入一个行业、学会一门技能的难度。你可以说.NET是个技能,.NET是个平台,那作为一个技能、一个平台,.NET好学吗?说实话,我一开始觉得.NET不就是一个几门语言(C#, VB.NET, J#)都能随便用的玩意吗?但越学越发觉很多东西不是那么回事,越学越觉得很多东西其实并不懂,就是这种感觉,所以呢,我觉得门槛并不低。我就没搞懂,为啥这么多人觉得.NET入门简单了,你们说的入门到底指啥?会写console?会写winForm?会写个排序?我对入门的理解是对大部分需求场景能够经过少量时间的研究学习后进行处理,基本不需要别人帮助,如果用HR的话来说是熟悉,谈不上精通,但绝对不是了解、知道,那种写个hello world在我看来,连知道都谈不上,这谁不会写?!更何况.NET基本上2年就有一次大更新,当我们还沉浸在.NET 2.0的时候,微软已经出了3.0, 4.0,大量的概念引入,这么多东西你都知道个1、2、3了?我不信。怎么没见中国有几个大牛写出标志性的.NET开源应用呢?当然啦我不想一竿子打死一批人,有还是有的,但确实比较少,比如Teddy Ma的NBear(当年可是很火的ORM哦~)。

同时我要澄清下,我说.NET门槛不低,不等于我说其他语言门槛低,或者.NET门槛很高,我觉得语言的门槛都差不多,希望大家不要误解,语言这东西学到后面会发觉不懂的越来越多,这叫越学越觉得自己无知,入门没个5成功力请不要说入门。其实门槛高一点并非坏事,对自己严要求没错,也可以适当提高自己的竞争力,否则你和那些没入门的有何区别?也请张子阳不要曲解我的意思,更不要走极端说要和JR水平一样,这话实在说的搞笑了点。国外牛人还是很多的,只是你我都攀不上,好吧,这有点扯远了!

解决方案:重新评估你自己的.NET水平,当然不一定要纠结入门不入门,但一定要清楚自己知道了哪些东西,不知道哪些东西,该学习哪些东西。.NET作为一个平台,绝对是博大精深的。


行业纵身不够,很多行业都被其他语言霸占

这个问题我想大家经常看职位描述(JD)就明白了,基本上.NET的职位要比Java职位少掉一半,很多行业如电商、物流、能源、金融基本都是Java的天下,那.NET在干嘛呢?真的是少数公司在用,很多公司即使用.NET也是辅助,比如测试代码用.NET写,比如用.NET做前端,后端用Java或者C++(比如Morgan Stanley用WPF做前端,后端据说是C++)(老赵,关于大摩,你比较有发言权,可以适当介绍下)我群里有兄弟说以前京东是用.NET的,现在改php了,看样子又是一个失败案例。

解决方案:暂无,这靠我们这种草根程序员基本是不可能改变的,需要巨头来带动需求并进行市场营销,这一点微软一直做得一般,希望微软能够想办法改变这种局面。当然啦,架构师在公司内部也可以顺理成章的刮起一股.NET风,当然要选择适当的时机,切不可硬上,切忌。搞不好,.NET没转过去,把客户搞丢了,那就搞大了。我们公司就有个有趣的案例,本来都转Java了,结果我们Team的系统当年Java的版本转了两次,上去就挂了,结果客户抱怨很严重,说得难听点就是你再转我就跟你合作了,从此以后再没有人敢提转Java,对于转.NET这也是一样的道理,客户至上。

 

标志性旗舰网站甚少

当年最火的MySpace倒是真用ASP.NET写的,但很遗憾自从它没落以后就很少听到日访问量千万级的.NET网站应用了,最近的应用中我唯一能想出来的就是Stackoverflow,这网站大家都懂的,访问量绝对是一线网站水准,全部是.NET代码实现。但这种网站数量实在少,以至于很多厂商谈.NET色变,这也进一步加深了对.NET的误解。如今的.NET给人们的印象更多是中小型网站速成神器,而不是大型网站首选,而中小型网站生出来快,死起来也快,很多公司也许你听还没听说过,它已经死掉了。微软倒确实有BizSpark计划,就是说初创企业可以免费用微软方案3年,只要年收入低于100万美元,效果马马虎虎吧,可能是因为这些公司太小以至于不为人所知。

解决方案:暂无,期待开源牛人或标志性企业的介入,如果你知道一些标志性的用.NET的网站(除了微软官网),请写在回复中,也许是我孤陋寡闻。

 

.NET程序员的过度自嘲

很多.NET程序员自己也说.NET这个不如,那个不行,以至于社区信心更加不足。这会在公司里创造一种氛围,那就是做.NET的人自己信心都不足,如果你的公司有Java程序员,他们会引用你的话,“谁谁谁说.NET这个不行”,也许你无意中的一席话会成为公司决策层的参考。

自嘲的另一个原因来自于很多.NET程序员觉得自己工资比java程序员低,但事实真的如此吗?工资这玩意其实和个人资历、公司、地域三个因素都有很大关系,即使在同一家公司,同一个团队,如果那个人比你年长3岁以上,即使你们做同样的事,他比你拿得多也是很正常的,所以比要合理的比,要拿同等参照物,当然啦,这其中肯定存在不公平,也许你们平时做的事真的是一模一样的,但这社会就是这么运转的,和你用啥语言没有太直接的关系。最近公司薪酬体系还流行一种现象——很多新进员工拿的比老员工多很多,撇开能力不谈,这是近几年中国人力资本提升的表现,HR也很清楚,不提高薪酬,招不到人,但对于老员工,多数采取的是默许政策,即你不要求我也不会给你加,所以不公平始终存在,这也是为啥HR要求员工不要相互问工资,一问容易问出问题,人比人气死人,哈哈。

Java程序员之所以工资高多数是因为他所在的行业很不错,效益好,比如金融、能源,所以高也正常。我平时也做兼职猎头,所以对薪资很清楚,其实做到资深级别都差不多,不管是.NET、Java、C++、php程序员,.NET程序员混的好的也不少。工资这玩意到最后拼的是资历、运气还有公司效益。大公司看上去工资高,但加的少;小公司看似工资低,但运气好得到老板赏识得到重用的话,绝对比大公司的小领导混的好。

解决方案:适当注意自己的言行,多宣传.NET好在哪里,而不是说.NET不好在哪里,这就好像你去推销一样东西,你老是说这样东西不好,谁会买呢?有的时候我们甚至可以利用面试机会去宣传.NET,比如说有的公司他们即招Java也招.NET,你就可以适当质疑为什么不都用.NET,因为使用.NET可以降低ROI(投资回报率),这是综合成本考虑,倒不是说.NET的人便宜,而是说如果你雇了个很贵的.NET程序员,后期维护成本也会比Java低,当然前提是这哥们写的.NET代码给力,有一定的文档和注释、架构方面考虑完善,便于他人理解。

 

第三方开源支持甚少

Java社区的开源支持绝对是典范中的典范,基本上只要你想得到的应用,总有对应的Java项目,比如最近很火的数据挖掘,Java社区有大量现成的解决方案,比如Hadoop, stanfordnlp等,反观.NET阵营,基本是全军覆没,你甚至找不出一个像样的数据挖掘辅助组件,有人说盘古分词,是的,它算一个,但它的作用是非常前端的,仅是数据挖掘的第一步,接下来的聚类、情感分析之类的.NET没有任何支持库可用。所以你去看现在招数据挖掘职位只有三种语言,Java, C++, Python,没有.NET啥事。.NET社区并不缺类库的使用者,缺的是类库的贡献者,也许是微软自己对开源社区支持不足的关系,也间接导致了他的客户们(微软阵营的程序员)对开源不是很热衷,尽管近几年微软的态度有了很大程度改善,但这种阴霾还在。

解决方案:.NET社区其实并不小,看看C#的语言排行就知道了,大家齐心协力出一些库,即使有些是个人英雄主义,也行啊。这应了一句话“库到用时方恨少”,为何我们不能DIY出一些好库,别把好东西老窝着,说啥知识产权,知识产权大棒是大企业抑制