.net 门槛高不高之我见
最近有两大.net高手在争论,一个说门槛高,一个说门槛低。
其实这两个都是高手,为何会有截然不同的看法?其实我感觉这应该是一个“语言”理解的问题,而不是对“事实”理解的差异。比如我觉得一个东西很好,但是我说“还可以”,而另一个人觉得这个东西也很好,却说“非常不错”,然后两个人就打起来了。其实归根到底,两个人的看法并没有太大差异,差异的是所用的语言表达。
另外,为何会引发争论,让大家大动肝火,我觉得可能并非是事实本身,而是有个隐喻:.net门槛低,所以就是一堆废材在搞.net。我是学java的,所以我是精英。所以学.net的害怕别人说。net门槛低,学java的喜欢说.net门槛低。
其实门槛低是好事,因为这样可以让更多人可以拿。net来做程序,可以减少很多体力付出,智力负担,老板也能找到满意的人才,不用花费那么多工资,对不?所以关键还是害怕那个“隐喻”,害怕那种成见。
然后,我想统一一下标准,来看看.net是否真的比java门槛低。
第一,语言本身对比。
c# 比 java丰富,所以更难学,所以门槛更高。
我们来分析一下,何谓门槛,首先,如果一个东西需要你准备很多前提条件,那么我们就说是高门槛,这没错把?因此.net门槛高在于需要先学习比较丰富的c#,难度更高。
第二,类库对比。
.net类库是世界上最复杂的类库之一,所以门槛绝对很高。
java类库稍逊一筹。
第三,工具对比。
vs比eclipse要简单一些,但是其实还是差不多的。
因此java方面这次胜利了。
因此,说。net门槛低是没有太大道理的。那么为何其中一个高手要说。net门槛低,难道是java派过来的内奸?我觉得应该是“错觉”。
为何会产生这种“错觉”,原因可能如下:
我们应该理解到,门槛高低在不同项目中是不同的,比如你用c做个链表和c#差不多,但是用c#和c做网站,难度就明显就不同。
我个人的感觉就是这样:
项目分四个层次:学生项目,小型项目,中型项目,大型项目。
其中,学生项目中c#门槛是比较低的,因为学生用windows,熟悉微软工具,对英语不了解,对elipse等等不熟悉,教科书方面等等。所以学生项目中c#门槛就低。而中型的,大型的项目java门槛就低,为何?因为java有现成的解决方案,而。net需要自己建立方案,所以很多人就抱怨.net很难。
假如,c#都集中在学生,小型项目上,而java都集中在中大型项目,当然就会被java说你。net只能搞搞小玩意,而自己是牛b哄哄的人才。这些印象就会给人一个菜鸟集中营的“错觉”
不过,我认为这是市场定位的问题,而不是门槛高低的问题,.net做大,门槛更高,而java做大,门槛更低,那么按照门槛越高越牛B的理论,那么不正证明了java做高级项目的人相对。net做高级项目的人普遍要菜么?
其实我也很赞成Tony Qu的观点,认为.net的社区应该主动去维护自己的声誉,不能被看扁了,否则吃亏的还是自己。人要被尊重,首先要自重。
我觉得一个社区,如果有很多派别争斗,反而不利于社区的成长,因为精力都花在耍嘴皮子上了,而不是做低调的却又其乐融融的开发。希望博客园能够成为一个纯粹的.net社区,而不成为不喜欢c#的人和喜欢c#的人争斗的地盘。