为什么我们不要 .NET 程序员

也许你已经知道了,我们正在招聘最优秀的程序员。不错,每个人都这样说。但是我们的程序员能打败你们的——任何时候。比如,米奇虽然只有5英尺高,但他是一个有相当实力的击剑手。维托尔德以前是一个6’3″的职业冰球选手。内特喜欢以丢匕首为乐。当然,他们都是很有水平的程序员。

发现这些人才,并不是你好好上班就能完成的事。事实上,我生活的一半时间都花在了上面,而丽莎差不多投入了她全部的时间。我们有一支招聘大军,搜遍世界任何一个角落,没有一份简历漏掉。总共算起来,我们有大量的简历。很多我们根本不看,因为简历——说实话——完全没有价值。相反,我们把所有的重点都放在了 几个关键问题上,我们会问所有的应聘者,每个问题的主旨都是要揭示一个关键信息:这是我们真的想要的人吗?

你知道,经验是廉价的。只要有时间,你就能有经验。技术本领难求,但事实上只要你努力就能得到——很多人都能做到。但是态度就不一样了。你要么有,要么没有。我们要找的是对编程有热情的人,他们离不开编程。他们大多是大学之前——有些是中学之前——就开始编程了,而且一开始就停不下来。他们开发各种程序,从汇编到jQuery,从个人电脑到移动手机,从复杂的底层计算图形到高端的社交网络。他们各个领域无所不至。

无所不至,但是,不包括 .NET。

让我来解释一下——.NET是一个很不错的语言。它很新潮,很独特,各种花哨的东西应有尽有。如果你要是开发Windows Mobile 7 应用(统计数据显示你应该不是),它应该是你的不二选择。选择 .NET 也是一种选择,如果有谁要做这样的选择,我不会阻止,但要问一声“为什么?”

不要误解我的意思:.NET 在你的简历上并不意味着一个大红叉。但在电话筛选中的确会引起我的疑问,其中的理由让我们用个开心的比喻来解释:

用 .NET 进行编程就像是在麦当劳做烹饪。那里有全套神奇的设备能够自动的造出所有的东西。只有你按一下正确的按钮,跟着提示灯的指示,你就可以批量的制造出完美无缺的1.6盎司的汉堡,比地球上的任何其他人都要快。

然而,如果你想做出一个1.7盎司的汉堡,很抱歉,你做不到。很简单,没有这样的按钮。馅饼是预先做成了那样的尺寸。它们做出来之后就被冷冻,所有你无法把它们揉到一起做成其它尺寸,解冻机和烹饪机是一体的,你没有办法在它们之间进行拦截。麦当劳的厨房产出的食品精确的和麦当劳的菜单保持一致的——这种模式使你的大脑不需要任何的思考。可是,它不能偏离菜单,对烹饪机器的任何你妄想的压挤变形都会导致它停止工作,而被送回返厂维修。

然而,我们要找的是另外一种人。一种能够用削尖的树棍在野外篝火上烧烤松鼠的人——那是在深山老林里为了生存而捕捉并剥了皮的松鼠。我们不需要快餐店厨师长,我们要的是由野狼带入文明社会的《蝇王(Lord of the Flies)》,在堆满铜钱底壶和精选香料的法国厨房里喂养大的人。我们要的人不仅仅能做汉堡,他要能够从无到有做出任何东西

你也看见了,微软是特意这么做的(而且非常成功)。.NET要跟其它所有东西都表现出尽可能的不同,让程序员们远离细节,这样就导致他们完全彻底的依赖微软神奇的编程工具套件,让这些工具替他们思考。微软早在舞台上只有他一个演员时就这样做,明确的使这些东西要么很难移植到非Windows平台,要么看起来很难实现,以此来保持他的垄断地位。

这种做法——或者这种对立的思维——导致了无数的分歧。小的方面,比如在文件路径中使用反斜杠,而不是像其它经典系统中使用正斜杠,或在DirectX中使用左旋坐标系统,而不是使用自从计算机诞生以来就采用的右旋坐标系统。大的方面,比如通过无数的分层把网络架构搞的晦涩难解,使人们很难想象出字节在网络中如何传输的。还有成百上千这样的事情:他们的开发工具在你没有写任何代码前就先生成了一大堆复杂的文件,笨重的服务器上本来对于任何人只需要敲几下键盘的操作却非要启动一个远程的GUI终端,那是一个对开源许可协议过敏的编程文化。这样的事情举不胜举。

这些并不会让你成为一个“差程序员”。如果你只想尽快的做出一个1.6盎司的汉堡,把余生奉献到无尽的系列菜单上,那所有的这些特立独行对你来说不会有任何影响。但是,每天你在那种厨房里的日子并不是真正的厨房生活,学不到如何做真正的食物,写不出真正的代码。

更糟糕的是,在微软厨房里学一天的东西需要两天去忘记,我是说,一旦你心安理得的走上了.NET的事业道路,你很难再走回头路。因为你被深深的桎梏到了这些工具和技术里,而这些工具和技术跟 .NET 之外的东西毫不相干,这样一来,对于一个创业公司来说,你实际上没有什么价值,你的这些年就如南柯一梦。

那么,这篇文章是要告诉你什么?两个事情:

  1. 如果你想着在一家创业公司工作,别用.NET。它会让你不受欢迎。
  2. 如果你创办了一个公司,想招聘真正的人才,留心那些简历上有 .NET 的人,问他们为什么要写上它。

这些听起来很刺耳,但却是事实。有时候我们只有松鼠可以吃,我们需要能把它做出好的味道。

请关注我们的新浪微博:http://weibo.com/aqee

[英文原文:Why we don’t hire .NET programmers ]
分享这篇文章:

221 Responses to 为什么我们不要 .NET 程序员

  1. Platinum says:

    一个无关紧要的小问题,那本书名还是就叫《蝇王》的好,已经是约定俗成的叫法了

    • Aqee says:

      谢谢提醒,看来你读过很多书

      • hbwhypw says:

        语言之争,对于coder而言,毫无意义。
        物尽天择适者生存。我们才是它们的天!
        而普通.NETcoder成了受害者,但是这篇文章传达出来的想法可以理解,就是谨防懒惰和思想禁锢。

    • simon says:

      估计这篇文章让不少.net程序员伤心不已。不过文章的主旨并不是说.net不好。而是.net实在太好了,替程序员做了大量的工作,入门很低,导致很多.net的程序员一离开微软的开发工具,什么都不会做了。

      • Capricair says:

        长期处于一个依赖各种现成工具来解决问题的环境里,解决问题的思维能力长期得不到锻炼,这部分能力就会衰退,能用C++做的东西用C#也能做,但是C++程序员能做的东西,C#程序员还真不一定能做到。

      • jayjay陈 says:

        这个我不太同意,你深入学过.net这些发表的看法?我老本行学的java,现在正在学.net我并不赞同你说的,最开始 我没深入学习.net也是你这种看法。其实java php .net这些语言也差不多

  2. Arch says:

    用了好几年.NET,这一看完,整滴我的心哪,哇凉哇凉啊。

  3. haitao says:

    标准和灵活,封装和自己做 的优劣而已

  4. Coomy says:

    .Net的确不受欢迎,但是它的确占据了很大一部分市场。
    因为有需求~ 它的快速开发,正应正了如今这纷乱的市场~
    但是大型的项目,的确,,很少有用这玩意儿的

  5. 宋** says:

    不知道你们怎么想的。.net现在还拖控件?真傻。 .net 网站 现在在 linux 跑。见的也不少。至少我做的网站就好多在linux上跑。
    要知道 .net 并不是一定要拖控件。

  6. bugyang says:

    .NET我已经抛弃它了,虽然招聘它的人依然很多,但是都是中小型公司,上不了台面,开源给力我们更多的资源以及深入的机会。不过C#依然是我见过最好的语言,单纯从美感上来说

  7. mind5day says:

    各有各的好,只是个人观点而已,毋须。。。

  8. Carson says:

    很傻的认识,我想写这篇文章的人,根本就没用过.net一点点,有什么资格去说别人,虽然我也几乎不用,很多做web开发的人之所以选择.net需要的根本不是他的控件,而是几个安全校验机制,.net的.cs文件和其他语言一样,完全是写你自己的代码,自己实现功能,但是说,你蛋疼的用C,然后自己实现个session,你说蛋疼不?虽然说实现起来很简单,但是你能保证他没问题吗?就算你写的再完美,没有大量的实践,根本没有可信度,.net有这么多人在用,不是说他的session完全没问题,没有办法证明,但是至少可以证明没问题,所以,作者就一典型国人,以自己的臆测去推断一个自己不了解的东西,然后乱喷。
    .net有可以借鉴的地方,我们可以用任何语言实现类似的封装方法,你想要1.6,1.7还是任意尺寸,自己写一个,调用就是了,不可能说这个尺寸你只要一个,以后再也不要了,那这个程序不写也罢。

  9. ak47 says:

    深深地刺痛了我的心

  10. hdehvda says:

    有一种人,自己写不出东西,就怪能写出东西的人使用的工具太先进

  11. oyster says:

    两点疑问:
    1.作者是资深.net coder吗?
    显然不是,因为他说了学一天dotnet需要两天去忘记,所以他肯定不会去i学精了。
    dotnet 的确提供了非常丰富的类库和框架以供使用,并且当你越来越资深,的确会发现这些越来越约束你,但是这并不表示dotnet 就不能完成你想完成的任何东西,资深的coder 会沉淀大量的适合自己的类库,而使用到的仅仅只是dotnet的底层协议和基础框架,而且即使是使用这些底层的东西去做事,也比使用其他语言在不使用第三方框架下去开发自己的框架做事来得快得多,并且质量和效率同样也一点也不差。
    不过的确它有局限性,所以说dotnet是适合高级(含)以下的coder 高效优异的工作。
    资深的coder就已经不限制语言,开始寻求思想上的突破了。
    反观我最鄙视的初中级的java coder ,一样用的别人的框架,而且还对框架一知半解,然后就飘飘然好像很NB的样子,时不时发动口水战。
    当然我很崇拜那些自己做出流行框架的java 资深 coder。我鄙视的只是这些coder的心态,至少dotnet 初中级coder在业界的口水中已经不会盲目骄傲自大了。

    2.创业公司应该避免dotnet?
    我不赞同,除非你创的是技术研究院,只要你是为了赚钱,就不应该排斥dotnet,因为它的人力成本低,可控性高。如果你用其他语言,你可能招聘的需要都是比较资深的人来创业,而dotnet 你只需要1,2个资深的且善于指导他人的资深coder即可,而且效率更高(大家都懂的,不解释.),作者说出这些话来我极度怀疑,他就是我所鄙视的,初中级,飘飘然的其他语言使用者。

  12. zoujia says:

    其实这又是一篇语言之争的文章,真的完全没有必要,以后我也不会再看这样的文章,真的是无聊至极~
    .net发展到今天已经不单单是直接使用微软封装好的东西了,.net只是提供了一个工具,如何使用它,完全看使用者~楼上的一些人说他抛弃了.net,其实是他抛弃了他自己,对一个知识或技术一知半解的人,根本无法认识到这个工具或知识的强大之处~不要再抨击哪个语言不好了,哪个平台不好了,有本事你们从计算机的硬件开始一点点造出一台计算机,然后再造个操作系统,然后再开发一切你要的软件~难道在开源的世界里,你们都是重复发明轮子,不喜欢使用好用的东西吗?难道你们对Linux的每一行代码,每一个细节都了如指掌吗?当你们做编程工作到了一定程度之后,你们会发现什么语言都是浮云,唯一有用的你的大脑,你的思维,如果你的思维受了局限,给你任何工具都是扯淡,你也造不出有用的东西~语言的差异,只在于其语法不一样,其适用的环境不一样,还有你的习惯性~别再用这种观点争来争去了,你们会误导很多人的,别再做可笑的人了!!!

    • Adam says:

      说得很好,语言之争,无聊之极!

    • 昊云 says:

      一开始看到文章标题,深受打击。我是一名半路出家的.NET程序员。看了一些评论之后,心情好些。毕竟。NET的出现,实际应用,还是很好的!
      “如果你的思维受了局限,给你任何工具都是扯淡,你也造不出有用的东西~语言的差异,只在于其语法不一样,其适用的环境不一样,还有你的习惯性~别再用这种观点争来争去了,你们会误导很多人的,别再做可笑的人了!!!”说的真好!

    • jhdqds says:

      语言之争,没有必要。
      没有最好,只有合适。
      我用ASP.NET(C#)作企业应用,没用WebForm,也没用MVC。
      以自己的方式封装。
      我觉得很好啊。

  13. bbpnb says:

    SB文章,还以为有什么高深的见解,完全是个自以为是的家伙。至多不过是了解了.net之外某一些东西,对自己完全不了解的东西大放厥词还放出优越感来了。

  14. mikespook says:

    Saturday edit:
    ……
    Sunday edit:
    ……

    原作者已经有两次编辑的补充,为什么不一起翻译出来呢?
    那些不怎么留意原文,或者英文阅读有困难的朋友很容易受到误导而落入陷阱中去。

  15. 高翌翔 says:

    俺作为一名.NET程序员,鉴定结果为,“此文纯属标题党”,一笑而过~~~

  16. Litah says:

    你所说的我不赞同,无论什么语言都是作为一种工具存在的。他们有榔头,有铁锹,显然没有必要去比较是榔头牛X还是铁锹牛X,归根到底都是人的工具而已。工具的目的是什么?简化人的劳动,对吧。国人就是有这种劣根,永远就是对对手(语言)是一种瞧不起的态度,夜郎自大。

  17. haitao says:

    现在又忘了建筑就需要标准化了?你总是造特殊的砖头,建的大楼能稳固吗?

  18. mike says:

    写这篇文章多人,只能说,对.net认识很少,并且认识很浅显,更可以说对编程认识比较浅显,才会说出这样一篇带有严重偏见的文章,鄙人不敢苟同

  19. mike says:

    写这篇文章的人,只能说,对.net认识很少,并且认识很浅显,更可以说对编程认识比较浅显,才会说出这样一篇带有严重偏见的文章,鄙人不敢苟同

  20. phil says:

    我讨厌.net,我讨厌封装好的东西,哈哈,我用c/c++,我喜欢深钻研,几年过去了,我喜欢更fashion的东西,像node.js,rails可能我们关注的点不一样

  21. imt says:

    太偏激的文章都不用看的,基本是谬论,编程根本在于思想,跟编程语言关系并不是那么密切。

  22. yangcong says:

    mic的软件,依靠它成熟的技术背景制造出成熟悉的软件,使用者忽试了自己拥有技能的重要性,这是在开放的互联网时代有差距的

  23. Jo says:

    俺是初级.NET程序员,俺觉得1.6/1.7那个问题纯粹是设计上问题,多态什么的就可以解决吧?感觉作者是只懂得按需写实现不懂得设计可重用的家伙。

  24. zhangda10 says:

    我翻到英文的那个文章看去了,外刊评论最好把那篇文章的评论也翻译一下,否则倾向性强会挨骂的。

  25. eric says:

    真正的.Net程序员不但能做出各种尺寸的汉堡,而且在野外烤松鼠能更快更美味。但是只会拖控件的程序员,恐怕连1.6寸的也未必做得好。

  26. zhangda10 says:

    程序员总有普通中级和高级之分,不能总拿高级非.net程序员去跟普通的.net程序员去比,每个高级程序员也都是从低级走过来的,干嘛老是去鄙视普通程序员呢。

  27. kadisc says:

    .net给人的感觉就是快餐,吃得快,饿的也快,而且吃过的味道一擦嘴巴就没有了

  28. proaholic says:

    不同意作者观点可以写出反对的理由,但请不要用什么SB,白痴之类带有攻击性的字眼。作者虽然说了.NET的一些不好的地方。但也没有像你这群动不动就SB,白痴进行人身攻击的。

  29. 绿豆蛙 says:

    .net从framework 1.0到framework4.0。。。
    似乎不该有.netframework,那么jdk,mfc呢?
    .net不开源,不代表你不能扩展,开放--封闭原则没有违背,自带控件并不能满足所有需求,就本人当前开发的项目来说,继承修改、纯绘制的控件不低于50%.
    .net程序员被瞧不起,这是很正常的,个人感觉java程序员最瞧不起.net程序员.
    就用.net咋啦?有意见?咱速度快。
    啥?用框架用组件有错呀?wcf,wpf,remoting,gdi+,mschart,….有车不坐选择步行?
    NO…..咱不是原始社会的!
    在wcf出来之前咱也穿过墙,打过洞。
    mschart出来之前咱也调用win32画过图。

    咱不是人才,但你能做的咱不一定不能做到,咱能做的你也不能全做到。

  30. 四不象 says:

    JAVA也差不多,我觉得JAVA coder没资格嘲笑.NET coder

  31. evan says:

    “三人行,必有我师焉。择其善者而从之,其不善者而改之。”
    语言也一样。

  32. 名剑风流 says:

    这篇文章是标题起的显眼,如果没有标题,你会怎么想?

    这只不过是一时工作之余的感概罢了.飘过…

  33. Sweet says:

    话说我都快忘记那些控件怎么用的。现在基本上喜欢用.NET来写中间层,前段展现形式太多了,现在的跨平台,跨语言通信更本不是问题,喜欢效率的你可以用二进制,喜欢规范的可以选择JSON或XML。而且还有那么多其他技术可以搭配使用,比如将node.js和.net(mono)结合起来使用。我也没感觉.NET在大型项目上有啥瓶颈,当然,还是要看设计和开发的人是否精通.NET,并且不会被.NET限制死。
    还有一点,我是从C到JAVA再转.NET的,在转.NET之前,还是比较排斥的,但是一旦深入应用之后,我觉得.NET确实带来了一个很舒适的环境,让我可以专心于业务和功能的实现,不用被繁琐的配置搞的晕头转向(估计这也是为什么作者说会使程序员变懒吧,但是如果你只是使用了,而不去了解它为什么这样用,任何一门语言的使用者都不会有太大的收获,比如我就知道一些学了1-2年的.NET程序员,连ASP.NET的基本运行机制也没有搞明白,但是一样的可以做出网站,只是稍微看起来不是那么聪明的实现),而且一些C#的语言特性比JAVA还优秀,但是不可否认的是JAVA可以让你学到更多的东西,因为它几乎所有的框架都是开源的(但前提是你还是需要去研究,不过.NET的Port基本也是开源的)。这也是为什么.NET的程序员(50%吧,猜测)不会看不起JAVA,因为很多都是从JAVA转过来的,真正的使用者才能知道哪个语言更舒服。而且我认为在国外,大部分排斥.NET的不是因为.NET自身的原因吧,而是因为开源社区对MS不满(.NET也算是一门商业语言吧,真正能称的上标准的语言就C/C++了,JAVA现在都是商业语言了),要不怎么没看见有太多人排斥Delphi呢?呵呵。
    还是那句话,语言只是工具,最好在你开工以前,把工具都带齐了,否则你很难解决真正的问题(一个工具就能解决的问题一般不叫问题)。

  34. Gooesfly says:

    又是一个固执的人,读书时候的学的什么,事物两面性,矛盾论啥的估计这孩子都忘记了。

  35. chen says:

    什么都有两面性 不能太绝对

  36. bigqiang says:

    纠正一下,作者说“.NET是一个很不错的语言”,这是不正确的。.NET不是一种语言,是一个框架,一个平台。

  37. Natsuki says:

    “然而,如果你想做出一个1.7盎司的汉堡,很抱歉,你做不到”

    我觉得楼主连什么叫图灵完备都不知道。。

  38. 刘风 says:

    感觉到作者完全是针对.NET的,好象对.NET有不满一样,要不为什么他只说.NET而不说JAVA呢?最开始的时候.NET就是模仿JAVA的思想而开发的,如果JAVA离开它的框架和现成的大量的类库(就象.NET一样),JAVA也没有了存在的基础,用.NET和JAVA完成相同功能的代码其做法基本一样,甚至有时候连类名和方法名都会一样,就是说JAVA和.NET是极其相似,那么依作者的观点,用JAVA的人与用.NET的人一样是同样不受欢迎的(不要说什么JAVA是开源的,99.99%的人不会去研究开源的什么类库,只会用,而且研究JVM对用JAVA编程没啥帮助),但事实是,现在使用JAVA热度在世界上是排第一位的,那不是说世界上绝大部分的人都不受欢迎了么?其实语言不是问题,就是看你会不会应用它来完成自己想干的事情,作为一个程序员,有不有自己的一技之长才是最重要的!

    • 叶剑飞 says:

      可是作者也没有恭维Java啊。没准对Java也是持反对意见,只不过发表于另一篇文章罢了。

    • CrazyIce says:

      (不要说什么JAVA是开源的,99.99%的人不会去研究开源的什么类库,只会用,而且研究JVM对用JAVA编程没啥帮助)不好意思,这里我可能要说的难听点:你这纯属放屁!

      • LV says:

        笑死了,这就是.NET程序员的思维
        自己不行,所以想当然别人也不行
        事实上很多JAVA工程都用ASM来做代码优化,居然还说研究JVM没用啊擦
        还99.99%的人不会去研究类库,事实上JAVA阵营最擅长的就是分享经验以及取长补短,研究代码那是家常便饭,倒是.NET根本没几个项目代码可看的
        .NET程序员们继续坐井观天好了

  39. AN says:

    我用过Java现在主要做.Net
    分析下他们之间的优缺点:
    技术框架:
    Java开源的技术框架很多。用的人也很多。的却做的很不错。但是在语言方面确实没有.Net先进。
    .Net:封装得确实很厉害也很强大。对于一个初级的程序员来说,可见度就比较低了,
    但是对于一个高级的程序员来说,那就不是什么神秘的东西了。拖拽控件的编程方式我觉得也不是微软提倡的编程方式,但是为什么会出现在开放工具里呢,很明显是微软的商业化需要,想吸引大多数的初级开放者,最后再占有市场。然而,不用控件编程方式如何做呢?想想看我的.Net也有很多开源的框架,NHibernate,Spring.Net.在大型系统开发也可也做的很不错的。不要说这两个框架是Java里面借鉴来的,软件不分先后,只要你成功了,就有价值的。
    在我看来,微软在.Net方面仅仅是提供了一个’钓鱼竿’,无论怎么样使用他你都可以钓到鱼的,至于你怎么使用它能钓到更大的鱼得看你的钓鱼技术了。
    至于性能方面:我觉得.Net有的地方性能不如Java,为什么呢,很简单你使用的不当,因为你使用的东西是微软已经给你做好了,封装好了的。这就是初级Coder经常出现的问题。如何解决:了解软件的内部实现。封装属于自己的东西。运行速度不是语言所决定的,是我们Coder决定的,再快的运行速度的语言也会被写的很烂。再慢运行速度的语言也可把它变得很快。
    请做.Net的朋友不相信这种文章的真是性和可靠性。相信自己,相信自己的选择的目标。

  40. Ivan says:

    哗众取宠而已,.Net的思想是快捷、高效,你抛弃了这些,我无法想象你的公司有运营下去的资本。连技术是什么都不明白的人,你是打算让你的程序员们写1和0让CPU去读么,还是让你的架构师也成为码农呢。

    无法想象你那浅薄的“无尽菜单”的想法哪来的,或者你是基于你浅薄的技术泛泛而谈,拖拽只是手段,为了高效率,我们在不择手段路上走着。

    .NET给你做的事只是用最快的方式帮你把松鼠烤熟,料是你自己去添的,料添不好是你的技术问题,用句通俗的话,大便不出,不要怪马桶没吸力。

    我想说的只是告诉你两件事:
    1.如果你要找码农,那没必要全世界找,不仅浪费时间还浪费精力。
    2.不要用语言来衡量一个程序员的价值,这会让你显得更加浅薄。

    这可能很刺耳,不过我还是要说,可能你认为能写出1和0程序的程序员才是你想要的,很抱歉,我想你还生活在打孔的时代。

  41. Mam says:

    真正懂做程序的人就会不存在语言歧视。

  42. aq says:

    狗屎文章,微软的AD是愚蠢的Linux什么的比的了得嘛?微软的玩意儿才是为大企业大方案搞得东西啊。信微软不用CLR不是自虐吗?
    我看到这些什么 我们公司在招聘世界上最优秀的程序员,我们公司做最酷的东西 就下意识的反胃。都2012还写这种话出来骗小孩,不害臊吗?

  43. velvetMArk says:

    作为彻头彻尾的.net开发者,我曾经和这个作者的一些观点却是一致的,我曾认为.net世界没有任何DDD的开源框架简直就是在证明.net社区的苍白无力。还有这个作者说快餐文化式的开发,不会促进自我思考,限制创造力,我也认同,但这都是基于程序员圈子内固有的思维,我会做法式大餐了,你还只会组装汉堡!不是白痴么?但现在我觉得,他还是很天真,从商业角度麦当劳还是成功的,微软也是如此。程序员呢,该做好本质工作就好,有时候我们就是要执行力而不是创造力。该用什么技术是企业订的,.net平台性价比更高为何不用,至于人才,只要是有点追求的,眼界和思维都不至于那么狭隘只盯着一种平台和技术吧。

  44. 齐敏 says:

    O(∩_∩)O~,

    其实我可以告诉,我是如何利用最原始的代码 在C#上将mp3解压成wav文件的。

    第一步: 利用open source的 libmad, 这是全部用C语言编写的
    第二步: 利用C++, 将libmad 包如一个dll库中,加入命名为 MadCSharpLib.dll
    第三步: 在C#中调用MadCSharpLib.dll

    这里,没有任何的拖控件的做法,因为在open source中主要是用C语言编写的,C#只是最上面一层实现。 如果你的水平只能存在于第三步,那没关系的,即使你换种语言,我估计也只能停留在第三步。

    任何的编程都是有层次的,如果你希望,在第三步,完成所有的工作,这其实也是不可能的。

    相比较的,你可以观察观察Android系统,也是这种思想。至于是谁抄谁的,我还没有权利进行比较

    • haiyidao says:

      mp3 解压成Wav?你确定?
      大哥,先google下 mp3 跟wav吧..
      好吧,我承认我蛋疼了..在一个“争论”编程语言的帖子来说数字音乐..匿

    • 不知道制作1.6盎司的汉堡和制作1.7盎司的汉堡是怎么个类比法,LZ这么说我只能说一声你并不了解.NET的真正运作机制,语言和IDE只是工具,不能说明一个人的技术和能力,之所以大家不使用.NET我觉得更深层次的原因是因为商业策略,不想受到微软的牵制,看看.NET这些年的发展: LINQ,拉姆达表达式,匿名委托,Entity Framework 等等,都是很伟大的创新,我相信.NET未来一定会走得更加平稳,可以不去学它,但请尊重它的价值

  45. .net菜鸟 says:

    让我来解释一下——.NET是一个很不错的语言。
    楼主要傻叉吗? 连语言跟平台都分不清, 楼主不是写代码出身的吧?更像是在厨房工作的!

    • phwei says:

      对语言的歧视,本人很不提倡,关键是你所谓的需求,没一门语言都有自己的长处,要么你开发出一门完美无缺的语言。我学过asp也学过php两者都能做出完美的程序,两者都是我喜欢的语言!

  46. 郭轩铭 says:

    如果没有深入了解某一项技术,就不要随便乱说。
    为什么您不说C#语言特性比Java的语言特性要好很多呢?
    每一门技术都有其存在的意义,我就一直用.net 开发。
    开发速度、安全机制、语言特性、…….许多鄙人都觉得微软的确给我们很多好东西,我们应该发扬他们,而非排斥。
    你说.net 程序员不懂得原理和深入性的东西,您太外行了吧!
    如果老赵在此的话,辩的尔等无话可说!
    还是多学点东西,说说的无用的比较好!

  47. leizisdu says:

    谢谢分享:D

  48. noevil says:

    如果大家都用DotNet,那么世界上再不会出现比DotNet更出色的东西了。
    不过我真心希望大家都用DotNet,而这一想法的出发点绝对是因为自己心胸狭窄。
    (窃笑)

  49. jianwu says:

    没用过.net,但它的存在还是很意义的。
    主要是上面哪些朋友所说,它的用途决定了它的工作方式,作为web来说,安全、快速开发、方便部署是最主要的,而不是创造力。
    如果你换成php/ruby/pyth/jsp还不是一样的工作方式?!

  50. yang says:

    却是sb的文章,刚接触.net没太多认识,但随着使用的越来越多,开发的项目越来越多,我发现.net却是很强大,微软是封装的很好,但提供的扩展及重写也很好,如果项目开发期限很短,.net有很快捷的开发方案,如果项目性能很重要,.net有很好的性能优化方案,虽然有些地方可能会绕个弯,不如其他语言直接,但是.net能承接各种需求的开发,我真没发现的有其他语言能与之抗衡,不要拿所有语言的优点来对抗.net自己,本人只限B/S,对于form应用涉及到windows底层的东西毕竟不如c/c++.
    另外不要做狗熊,告诉你为什么都说.net不好,是因为第一个人用的时候就很浅,所以一传十十传百,就说.net不好,你技术不好,不能说一门语言不好.

  51. 648155643 says:

    首先纠错:.net不是一门语言!!!!!!!!
    很明显,你这是道听途说,没有自己的根据和研究。
    没有强项的理论作为依据就不要乱放!!!这会误人子弟的

  52. WQ says:

    我用过.NET,也用过MFC。
    感觉MFC过于复杂和晦涩,编写MFC程序其实大部分时间你都在考虑如何与Windows打交道而非C++本身,一个完整的MFC程序真正用到C++特性的地方又有那里呢?.Net不过是想帮忙把程序员从地狱般的底层实现中给解救出来,让程序员有更多的时间去思考程序的逻辑而非代码上的细节,当然微软明显低估了程序员需要面对情况的复杂性,很多时候程序员会发现他想要的东西.Net里面并没有——不过话又说回来,.Net里面没有的东西,用C或C++就一定很好实现么?我们使用C或C++实现的功能需要我们自己去进行大量的测试,可即便这样我们还是整天担心客户会来抱怨程序上的bug,同样的功能.Net可能已经有了现成的实现,不同的是.Net的实现经过微软大量而严格的测试和考验已经被证明是比较成熟的机制(当然,如果大家觉得自己的团队有能力证明.Net的东西存在未知的bug我也无话可说)。有些公司使用.Net,是因.Net为作为商用开发拥有极高的效率和可靠度,而这也成为更多公司拒绝.Net的理由:对于底层的过度屏蔽导致了客户对于程序故障风险的极大担忧——越是大型的项目,这种担忧就越是强烈,因为相对于一些小型的应用程序,大型的软件项目通常是不允许出现错误的,没有哪家公司敢承担这种风险,正因如此,很多大客户才会要求使用非.Net语言,他们宁可多花成倍的心思和成本去使用见得到摸得着的C,也不想碰在理论上存在风险的.Net。
    除非微软开源.Net,否则.Net的前途不甚明朗,正如文章作者所说,有些时候我们只有松鼠可吃:因为我们的客户只给了松鼠。

  53. locker says:

    从作者,文章中第五段说.net是一门语言的时候,我已经发觉作者实在没接触过.net。.net是平台,.net平台有很多种语言,c,c#,j#,作者连这个都分不清,很显然,他没用过.net去编写程序,换言之,你没使用过,有什么资格去批判一个东西。每一种东西都有他的价值。程序员不是为了需要有多高深的编程思路,而是需要有一种解决方法的思路和态度。

  54. 佛曰说话要注意分寸 says:

    白痴的人在说白痴的话,大家白吃一顿视觉餐,至于自己白吃了没有,大家心里知道就可以了,抱歉,佛祖,我说话没注意分寸。

  55. Eddy says:

    我一直认为,盲目否定是一种很无知的表现,看来楼主 一点也不懂编程。

  56. Masson says:

    我只想说:存在即是合理。

    一款语言,至今仍在发展,证明还有她的优点和价值。

  57. yaya says:

    一味说什么什么不好的人,只是自己见解不够深,见识不够广……

  58. belial says:

    我不太熟悉.NET,但是我不太喜欢他.
    不喜欢的理由:
    1.为什么要有一个framework.java和其它一些脚本语言都有运行环境,我同样不喜欢,但我可以接受,因为人家要做跨平台,LINUX,UNIX,WINDOWS,MAC OS都不是自己的,没有权利在别的的系统中集成自己的运行环境,但是.NET不跨平台,为啥要弄个运行环境,还那么大,我给朋友写一个几百行的小工具,却要安一个上百M的运行环境,烦不烦.为啥不能集成到系统中,打个补丁的事,微软的补丁少吗?不差这一个吧?
    2.在我的印象中,java的东西多数是面向接口的,而.NET的ADO.NET是面向实现的,比如JDBC,各个数据库有自己的实现,只要我使用的是标准的SQL,不用某个数据库特有的东西,换个数据库很容易,可是.NET的ADO.NET呢?SQL SERVER和其它数据库用的却是不同的.如果我有个程序最开始用SQL SERVER,而且不管什么原因,没有封装DAO层,那个,以后想人换个其它的数据库要很麻烦!当然,你也可以说我的水平有问题,要封装DAO什么,做的不对,但是程序到那种地步想改很难是肯定的.这只是我知道的一个例子,肯定还有其它.

    • 乐乐 says:

      这位童鞋,我就不太同意你的说法了。
      首先,你的第一点理由,微软的framework我认为确实是一个高明之举。如果java的JVM实现了跨平台的使用,那么framework则是实现了跨语言的使用。因为编译的时候,编译器不会把你所写的代码直接编译成机器语言,而是统一先编译成一种中间语言(MSIL),然后再编译成机器语言。
      可能你会说,干嘛还要中间语言啊,这不是闲的蛋疼吗,我认为不是的,举个例子,比如你用C#写了一个程序,而你想把他转换成VB.net,那么你就可以很快的通过反编译编译成MSIL的C#程序。

      然后你所提出的第二个观点。
      其实在.net中也可以通过接口编程来实现对数据库的操作,因为无论是他们都是实现了相同的接口。

      虽然我自认为是一名初级的.net程序员,但是我同样可以比较自豪的说java有的咱们.net也会有!!!

      • belial says:

        我并没有说不要用中间语言,只是不喜欢framework,自己装一个要上百M,
        还超慢,windows补丁少吗?不差一个.NET framework吧?当成系统的一部分不好吗,为什么叫我自己装?
        然后你所提出的第二个观点。
        其实在.net中也可以通过接口编程来实现对数据库的操作,因为无论是他们都是实现了相同的接口。
        你也说了,也可以,也就是说,他现在不是,能做为什么不做?
        现在的语言差别都不大,没有说什么功能哪个语言实现不了的,就是看语言用起来比较方便.因为这两个原因,我感觉用起来不方便,所以不喜欢!

    • springwarm says:

      1. 写几百行的小工具。如果开发之前先考虑下部署的问题,那么这个需求场景和实际的情况下,你可能就不会选择.NET。它不适合你这个具体的需求场景。
      另外,运行环境不只是为跨平台存在的,它的思想在于,提供一个中间层,这里有GC,有丰富的类库,运行时可以根据宿主环境自动做一些优化。。。.NET项目现在还支持打包框架的一部分,因为作为基础框架,它包含了很多我们可能一时甚至永远用不到的领域,早期.NET安装包较小的时候MS没有考虑大家这个需求,当然也可能有商业和内部管理和争执的原因。
      2. ADO.NET从来没有宣称并且实际上它也不是面向实现的,也许如你所说,你真的不了解.NET,你可以去MSDN里看看IDbProviderFactories接口,有兴趣的话,你还可以追下去看看其他相关的接口。如果你还有余兴,把EF推荐给你看看,了解下用表达式树映射的方法,填补不同库的差异。

  59. warmsun says:

    评论永远是最精彩的……
    不知道楼上诸位各种言辞激烈的抨击作者的同时,想没想到两个俗语:当局者迷和真理往往掌握在少数人手里。任何观点都应被尊重,至少我没看出作者写文章是在信口开河……

  60. 老陈说 says:

    语言没有差异,做开发的,何必去追求语言呢。.NET只是有好的工具,我喜欢使用.NET,虽然我是个PHP的开发,对我而言.NET 简洁高效,让我有更多的时间去考虑如果设计整个项目的架构。论CODING语言算什么,你能开发出和单片机媲美的东西,开源的均衡负载软体能和F5设备的比?PHP能做什么,.NET也同样可以做。NGInX 高效、LINUX 高效?你有了解过WINDOWS吗,你了解IIS7.5吗,优化过后,性能上并不比APACHE差多少,维护方面 SHARE CONFIG 同样可以让你鼠标一点,同步所有。POWERSHELL 是运维人员的福音,如果你是个喜欢用命令的SE。什么百万级、千万级? HOTMAIL告诉你上亿的数据对 微软架构而言,妥妥的

    • aaa says:

      你了解IIS7.5吗,优化过后,性能上并不比APACHE差多少!!也就是说正常情况下性能是不如apache的,而且据说NG在很多方面要比apache高效很多!
      什么百万级、千万级? HOTMAIL告诉你上亿的数据对 微软架构而言,妥妥的.
      myspace告诉你不是妥妥的,会有问题

  61. dubuyunjie says:

    .NET isn’t a language, it is a platform and a set of base libraries.

    You can “use” .NET and program in C#, Ruby, Python, Boo, Lua, and various other languages.

    Some hold your hand and restrict you more then others. If you really want to see what you can do, try writing in MSIL.

    “.NET” is simply Microsoft’s implementation of ECMA-335, Mono is another implementation.

    Perhaps before you start judging people on the tools they use, you should learn what those tools actually are?

  62. 无名 says:

    经验是宝贵的财富,因为时间是无价的。时代在发展社会在进步,既然有现成的东西,你为什么不用呢?有了电灯你咋不去点煤油灯呢?

  63. springwarm says:

    看了一半的评论,不明白框架到底给这些高人们带去了什么困扰,框架就是要提供便利性,它不可能也没有能力束缚住人们啊。还有语言在,自己想实现什么就上啊,关框架什么事!

  64. hello says:

    我试一下可不可以发出去。

  65. zhangxin says:

    单纯从语言上来看,C#语言是无与伦比的优美。不过从应用上来看,确实太受制于微软了… 木有办法,转行做java了,留恋C#

  66. zd4hz2 says:

    这类话题的争论最总会走向对于编程语言的信仰问题上。

  67. nbtcnet says:

    一个武林高手是不会在乎用什么武器的!朋友。

  68. summerworm says:

    滚了半天,终于到底了。。。

  69. x'顾问团 says:

    其实我很早就不想对这些做讨论了;很无奈我不晓得是中英文之间的翻译导致的错误还是怎么的。首先,.NET的不是一门语言,她只是一个平台。C#才是实现她的语言,可以说.NET就是封好的一个个超大的类库而已,你可以完全不用这些类库自己从底层去写照样OK。只要你愿意,当然。NET帮大家做了太多了。让更多的人容易使用他开发。只是由于有一大批人只学会了用这些类库,而不懂用C#去自己写类库,所以微软一出新东西就觉得又要去学习那些新东西了。当你往下学一点点学原理后,会发现都是没有变动的C#代码而已,微软没给你封装你自己也能写出来。
    所以不要再用 “.NET”和“JAVA”或是其它语言去比了,根本就不是同一样东西,没有可比性(拿一个平台和语言来比脑子想什么去了!)。
    退一万步要讨论就用“C#”和“JAVA”做对比来吧。(个人看来:比较语言的优劣的人,完全吃包了没事做,语言就只是实现编程的一段代码罢了。重要的是在设计者,如何来实现功能,流程,逻辑思维才是最重要的)

  70. 牧马 says:

    接触.net也三年了,看了这篇文章和大家的评论后很有启发,自己的不足可能就是对底层的东西了解太少,凡是只要把功能做出来就行了。如果有人问底层实现的原理,怕还是讲不明白。空闲之余还得多专研才是。

  71. SIM says:

    你也讲了关键是态度,要去了解一个人是怎么学怎么用某一种语言才知道是不是有态度问题,换句话说学开源学汇编就一定态度上会比.NET领域的人好?
    知道这文章只是炒作,但还是忍不住要上来评价一下

  72. 大川 says:

    以前做了四五年.NET,只拖过半年控件,VS图形界面几乎没用过,现在用linux,php,微软把VS做的傻瓜化,你不傻瓜的去用就可以了。最讨厌这种给人打上标签的,有时间出来写这种狗屁文章的也是个半吊子。

  73. ethan says:

    语言??有什么关系,拿着书躺床上看两晚上就搞定,需求和设计完成后,拿着API就开始编写。
    同时找此语言或平台下的开业框架或库。
    还局限于语言的层次的人,怎么有资格去评论一个语言的优劣?

  74. King says:

    说实话文章不太赞同说法,面对日益复杂的软件项目来说,还在纠结底层协议你是要把团队带入万劫不复啊?说更明白了,现在谁不是在封装,难道Java上那么多开源框架都是闲的慌??难道其他语言的socket不是封装的?这是有人巴不得找机会就黑一下,弄底层自己玩C去,干嘛在这里JJYY

  75. King says:

    说实话文章不太赞同说法,面对日益复杂的软件项目来说,还在纠结底层协议你是要把团队带入万劫不复啊?说更明白了,现在谁不是在封装,难道Java上那么多开源框架都是闲的慌??难道其他语言的socket不是封装的?这是有人巴不得找机会就黑一下,弄底层自己玩C去,干嘛在这里JJYY

  76. bobo says:

    如果是大牛,自己写类库,自己写框架,什么语言他都会去琢磨,
    反之你总是用别人的类库,用别人的框架,用什么语言都一样.如果你能用.net写一套自己的框架,无论好坏,那去别的语言里面也只剩习惯的问题了不是..

  77. 星飞林 says:

    看了这篇雄文,终于下定决心采纳DotNET作为公司的主力平台了。

    • 阿童木 says:

      我是从VB6过来的,现在用DotNet给自己写些东西,项目不算很大,也不算小。

      我觉得软件业,从投入产出来说,存在巨大的浪费。不是封装过度了,而是封装不足。程序员认为封装存在的效率和灵活性问题,不是该不该封装的问题,而是封装的方式问题。
      就好比即使C语言,用到一个计算三角函数也要链接整个数学函数库,降低了速占用了资源,是链接和库的实现方式问题,而不是链接本身问题。

      从程序员的角度,都是希望自己掌控开发过程,灵活性越强越好,约束越少越好,工资越高越好。
      但是自己从客户角度,则希望开发速度越快越好,稳定性越强越好,开发成本包括程序员工资不要太高。

      我是学自控的,一直想不通为何在自控行业很多年前就用组态来完成项目,到现在软件业还在不停大量写代码。能组态的系统也多数都有C语言接口的,以提供一定的灵活性。组态最大最大的好处,不仅仅是开发效率大为提高,稳定性更是有了极大改善。

      不明白为何99%情况下都不会对属性的内部进行计算的属性定义,非要强制写一堆get/set。
      不明白为何只是用于字节通信的socket,非要改成写一堆重复性代码。
      不明白为何多线程非要自己去处理那么多重复性的事物。

      封装确实会造成一定的性能和灵活性损失,但是那是封装的方式和写的问题吧。就比如某个语言不具备某个特性或者效率低速度慢,其实是编译器的问题,不是语言本身的问题吧。
      再说封装的东西如果确实做不了的,你语言本身可以直接写嘛。

  78. taniel says:

    这坑可真烂,照作者的逻辑现代高级语言都可以吃翔去了,回归汇编甚至机器代码才是真善美

  79. ddd says:

    你在编程之前应该先造台电脑,然后在编个操作系统,在做个平台语言,你开发一个应用软件,这个很适合你

  80. 孙燕飞 says:

    我求求你们了,别喷了,我是.net程序员,但是我以前写过很久的java,我现在在写object c ,我只知道我是程序员,是一个用程序改变世界的人。

  81. 下面给你吃 says:

    不知道写文章的人是什么心理,但我敢断定他不是个成熟的程序员。甚至觉得他不懂技术。高级语言的衍生完全是为了节约开发成本与提高开发效率。有些C能做的,C#是做不了。但是在一个纯粹的开发环境下,c写一个contorl需要一天时间。,而c#只需要点下鼠标。设想如果你想完成一个简单的功能。硬是用C语言写,是不是脑子有病呢?

  82. 路过的.NET学生 says:

    我最讨厌这种根本不懂.NET却天天在冒充.NET大师在评论的人,感觉他不仅把他自己当.NET的大师,而且还是所有编程语言的大师。在你没有用一门语言写过几年程序之前请不要随便评论,恶心。。

  83. 路过的.NET学生 says:

    看得出来,作者对.NET的认识水平只有不足一年的功力。。不要说你是某某公司的某位大师,这种话只能证明作者的思想已经日渐与时代脱节了,根本没有仔细去琢磨的“能力”,这只会让我更鄙视你。不喜欢.NET的,请不要说三道四,请永远滚出.NET的世界,.NET与你无关。

  84. Steven says:

    http://blog.expensify.com/2011/03/25/ceo-friday-why-we-dont-hire-net-programmers/

    先别骂了,你看看这篇博客原文之后跟的评论,基本上全是骂的。你们以后转载文章把评论也一起转了,省着误导人。

  85. 123 says:

    看得出来.NET粉丝真心不少,可惜除了微软,支持.NET的大公司一个没有。对于创业型公司,不要选择.NET,这个绝对赞成,尤其是想最后做大做强的。京东就是个例子。

  86. 我去 says:

    有本事你就别做程序员,天天在那里扯哪门语言好哪门语言差。

  87. says:

    语言重要??码农就是码农,让你写php你就是高富帅?让你写java你就是白富美?让你写c++你就是李嘉诚了吗???

    码农已经很苦逼了,还在哪里讨论哪门语言好!!幼稚

  88. 清洁工23号 says:

    刚学.net,被你这样一说,心凉呀

  89. zoo says:

    就像王小波写的冷兵器才叫武器,现在什么阿猫阿狗只要轻松扣下扳机就能把人杀了,按个按钮就能打击一个地区,这算什么?但是这就是效率,没有人愿意把打火机扔了钻木取火吧?

  90. jkdls says:

    非常同意博主的观点。
    允许自己的职业生涯被捆绑在一个或者几个由别人选择的平台上的程序员,活该做一辈子苦力。
    .net会解决很多小问题。但是从宏观上,很少有人乐意为.net平台的代码开源。微观上,.net的效率和弹性不错,但是也就是那个样子。没有人能发布一个自己修改过的的.net平台——别再拿微软的网站举例子了,微软当然可以自己修改.net。
    上面的评论有人提到.net并不是一个语言:Java也不是,很多语言都能运行在或者一开始就被设计运行在JVM上。但是运行于这些抽象层的语言实现都会受制于各自的抽象层,这是很简单的事实。抨击翻译的水平不能改变.net的地位。

  91. kene says:

    谁好谁不好这不必讨论,值得讨论的是Mic的战略。
    试想:
    1.当所有程序员都使用他们封装好的控件或者类库,N年后有依赖了,突然新的更好控件或者类库变成收费。
    2.当程序员已经依赖封装好的东西,比如说现在的垄断思想,制造砖瓦有一天只有一个厂有这个技术,而其他建筑商已经依赖了现成的砖瓦,有一天砖瓦厂倒闭了,后果可想而知。
    3.mic .net工具更新的思想就是 简单 快速开发更容易上手,可想而知,当世界上每个人都能用.net开发软件,拿我们.net程序员的薪水会是多少?生活低保?
    4.当一个软件公司做一个软件需要实现一个功能,要像Mic买200W的类库,而这个项目总收入100W,但可能做其他软件的时候并用不到。
    等等

    • ah says:

      看来你也是个.net初学者,自定义控件,自己整啊,不过你的第三点写的太好,赞一个

    • 沈源淳 says:

      有没有想过 其实你可以用90天测试版本。。。就能解决这些问题

      倒闭的软件公司并不意味着他曾经伟大的软件体系也彻底倒闭
      比如 delphi 就是个例子 到今天不少人用

      微软的体系的庞大 就算windows都没人用了 。net还有linux版本的mono这样的实现版本

    • 沈源淳 says:

      1 养出人的依赖 再收费 不止微软如此
      很多公司都这么干
      2 vb6 vc6 今天还有人用 这就意味着 根本不会随公司如何而如何
      3 msi的快速开发平台其实超级复杂 所谓的快速简单无基础开发 仅仅开发出了一套根本不能商用的内容 依旧要很有实力的商业开发者来继续
      4 到目前为止没听说mic开始卖这种类库吧。。。。数据库windows服务器许可证比较多 哈哈哈

  92. 安迪拉斯卡 says:

    反正当汽车出来的时候还有人骑自行车,因为向来人往前走靠的都是双脚而不是握方向盘的双手

  93. Fan says:

    本来想说幼稚···不过这个词用过太多次了···这次用···自相矛盾吧···

  94. homan says:

    语言没有高低之分,只有开发的人水平有高低。
    没有垃圾的语言只有垃圾的人

  95. leon says:

    语言之争,没必要。喜欢了,精通了,到哪都能活!一个半桶水的C++程序猿你们会要吗?

  96. lrui says:

    对于一个热爱编程的人来说,封装好的东西就剥夺了他亲自创造的快乐。当然,他也没兴趣创造所有的东西,只是喜欢创造自己感兴趣的部分,结果nmd直接封装好了,我还编个P啊?所以我非常理解文章作者的感受。不仅是.Net,其他语言也一样,甚至包括C++也有很多封装,喜欢编程的人是不会喜欢这些封装的。

  97. personball says:

    文章作者对.net的理解,还停留在webform开发网页拖服务器控件的水准上。。。

  98. 沈源淳 says:

    文章作者对.net的理解,还停留在webform开发网页拖服务器控件的水准上。。。

    哈哈哈 确实确实 可怜可怜

  99. 沈源淳 says:

    实际上 webform的一些深层类应用 自定义等 非常麻烦复杂 能用好的人 心智非常强健 能力不俗

    我个人就不是很喜欢那样干 太过多摆弄别人的东西不爽 还是喜欢自己的条条框框

  100. 预子 says:

    我就经常在自己简历上写厌恶.net

  101. 13yan says:

    有点废话吧,自己都说经验不是问题,我也这么认为。
    既然经验不是问题,那还讨论什么语言之分,反正是个程序员一般都会3种以上的语言,就像外语专业的人都会讲3国以上的语言一样。

  102. Joy says:

    我来发表一些我的观点:
    如作者所言,.Net确实帮我省去了很多事情,他为我们提供了丰富的工具和库,降低了初学者的门槛。
    但是,如果你还不是一个小菜鸟,而是一个变成老鸟的话。你就不会觉得.Net不受欢迎了。
    首先,.NET使变成更加容易,相信这都是大家认同的。所以如果在创业公司更容易降低编程和人员成本,以致降低创业成本。
    其次,.NET虽然不支持跨平台,但是他却在Windows上运行良好,如果你选择微软的服务器将不会遇见什么问题。
    然后,我个人是既会Java,又会.NET,通过平时工作的深入,我会发现光了解和使用.NET的工具是不行的,你必须去了解.NET的实现架构和模式。JAVA也是一样的。不然你永远无法做到最好。
    所以,我觉得作者的观点还是非常狭隘,就像上面的评论,对编程还认识不深。

  103. 你妹 对这篇文章的反应是垃圾
  104. 姚军 对这篇文章的反应是赞一个
  105. LDBQH says:

    戴有色眼镜去看待一种语言有些欠妥,个人觉得语言本身没什么太大区别,有区别的是用语言去写程序的人,作者一定要把语言和程序员分开来对待

  106. no says:

    无力吐槽。这篇文章对于所有基于framework编程的语言都适用。你把.Net换成java,把微软换成sun或oracle,这篇文章一样成立。但事实是,基于framework的编程极大的提高了生产力,尽管它可能降低了程序员的门槛。至于文中另外一些针对微软的可笑指责就不吐槽了,很多时候开源阵营这些事情做得比微软更甚得多。

  107. Wind Frank  这篇文章
  108. 李超 says:

    真可惜。如果发表这片文章的是一个负责招聘的,那你会葬送很多人。就是因为你对.net不懂,但是,你却装懂。你装,再装,装像一点,装的像很牛逼什么都懂的样子。

  109. DAVID WANG 对这篇文章的反应是赞一个
  110. alexzchen says:

    我要反问一句:为什么要做1.7盎司?既然机器设计成了固定1.6盎司,那就说明1.6是经过充分验证最满足大众需求的重量,既然可以满足99.999%的客户的需求,为毛你非要搞出个1.7盎司?这个需求是不是本身就有问题?费劲力气做出那0.001%特例,真的有必要吗?

  111. ztx 对这篇文章的反应是赞一个
  112. 刘小龙 对这篇文章的反应是赞一个
  113. rgw5267 says:

    壮哉我大C语言,能烤松鼠的语言。

  114. scott says:

    正如作者说的.net确实在软件开发领域越来越不受欢迎了,看看近几年那些风头正劲的互联网大鳄吧:谷歌、Facebook、Amazon等等,没有一个广泛使用微软技术的。

    但是作者大方向说对了,通篇分析却大错特错,.net失败并不是因为.net(C# VB)是垃圾语言,相反,c#和VB比主流的开源语言要好得多。微软败给Oracle公司(Java是最广泛使用的开源语言吧)的原因是市场推广、生态系统、消费者体验综合因素造成的,是个失败的商业案例。

    Java用一个垃圾语言占领了绝大多数市场,这是个难得的以弱胜强的例子,足见oracle领导层的睿智。

  115. 甲壳虫  这篇文章, 并对这篇文章的反应是垃圾标题党
  116. wwah 对这篇文章的反应是赞一个
  117. keso 对这篇文章的反应是飘过~
  118. 吴官迪 对这篇文章的反应是垃圾
  119. 小笼包  这篇文章, 并对这篇文章的反应是垃圾
  120. 小笼包 says:

    我目前就是一个.NET程序员,我喜欢这份工作,不怕挑战,看到这篇文章,我只想说:存在即合理!

  121. Samliuzhou says:

    现在的语言没有哪个最好哪个最不好,我出来工作五年了,现在我发现谈论语言好不好真没点意思,一个语言的好坏,怎么样才算好呢。其实我觉得语言要看市场的需求,如果市场需求量大供不应求那这个语言的工资就会高,反之异然。现在在深圳java的需求量依然很大,供不应求,但.net的就不行了,供过于求。我本人是C#程序员,身边的搞java的朋友工资都很高,而我们C#的真心低,个别不论,拿平均水平来说。java拿个1.5W正常得不得了,.net拿个1.5少之又少。主要还是看市场需求啊。不过如果东莞又不一样了,那边的市场是java和.net平分,一半一半。我现在已经开始在慢慢转向java了,没办法啊,我还是要养家糊口的。

  122. Shaun says:

    Java的不是一样么,只会用框架的一大把,问个简单的分页实现,很多都说不出来……
    不过,做B/S开发,.NET真心没大差别……除了跨平台……

  123. Kafuka says:

    别扯那些什么封装不封装,自己没本事的借口而已。
    有头脑的人不管用java 还是 .net 都可以做同样好的事。

  124. LMX 对这篇文章的反应是赞一个
  125. 马克吐温 对这篇文章的反应是笑死了
  126. aaaa says:

    第4代编程语言来临时。你的话都将成为废话。
    例如SQL。他的强大没有任何一门语言可以相提并论。这就是第4代的强大。

    • sysa says:

      当第4代语言出来时候。C、C++\PHP\JAVA\C#\.NET 都会跟汇编一样慢慢没落。。这是趋势。
      因为第4代语言设计的基本概念就是。让人不用考虑其他的事情。不需要考虑怎么写出来的。甚至不需要思考。
      这点。.NET做的还不够甚至差距还远。
      但是像C、C++ 这些差距更远。因为C\C++他们需要考虑的事情太多了。不合适。

    • wcsasho says:

      当第4代语言出来时候。恰恰java和.NET 才是优秀的程序员。因为他们距离第4代更近一些。

  127. dd says:

    这不是傻逼写的文章么,用。net就不会底层的东西了?真是sb啊,正如你自己说的,不会的就学啊?猪脑子写文章也有人看,这么片面的东西一文不值

  128. 玉米同学 says:

    我大学写了三年.net,毕业后写了两年Python,现在在写Java,最喜欢Python,然后是.net,然后是java,.net在java之后出,里面有很多比java优秀的语法,比如扩展类方法,属性包装器,动态语言特性等等。我不是在黑java,也不是在抬高.net。

    我只想说写这篇文章的人,如果我开公司,我肯定是不会要你这种人的。

  129. loywong 对这篇文章的反应是笑死了
  130. 路人 says:

    个人认为,不要.net程序员的大都是因为老微各种版权费用是个不小的开支(小企业被查的概率不高,可要做大就2333了),而不是什么让人变得傻瓜!你不喜欢高度封装的类库难道.net就没有相对较基础的东西给你用?java、php之流的难道现在不说所有人,就大部分人都是用着基础的东西一步步堆?各种开源框架就不是框架了?用惯了这些框架,不深入研究的人多了去了。毕竟现在是个“争分夺秒”的时代,这些都不是什么错,关键看自己的思想!最后“因为你被深深的桎梏到了这些工具和技术里,而这些工具和技术跟 .NET 之外的东西毫不相干”,不是很理解,难道你可以脱离jvm部署java写的程序?还是可以用java去写php?

  131. JRoger 对这篇文章的反应是垃圾
  132. Gary says:

    这篇文章不知道误导了多少人,从这篇文章来看,作者也是一个非常不负责任的人,内容太多,我只提出一个问题,.NET不是一门语言,只是一个平台而已,在技术日新月异的高速发展道路上,希望作者自己好好反思反思,本人的观点如下:
    在2016年开始以来,C#和.NET是一个上涨的趋势,C#语言的优越性我就不说了,至于平台问题,已经是跨平台了,没什么纠结的,那么在移动端领域xamarin也是一个很不错的前景,并且也免费开源了,我觉得.NET前途是光明的(虽然我也做php)
    “其次,作者不要把程序猿的水平低,和.NET挂在一起,以及和其他技术挂在一起,这种脑残言论不知道坑了多少新人”

  133. NEOYI says:

    行内看门道,外行看热闹.

  134. bcc 对这篇文章的反应是垃圾
  135. 111 says:

    呵呵,.net framework中的零件都是可以替换的···
    甭说改汉堡尺寸,改成皮萨饼也是可以的···

  136. AntichristM says:

    .NET不是一个语言,C#才是一个语言,而且也不算太新,2003年出来的,已经十多年了,.NET framework是一个框架,类似Java中各式各样的包,所以说,以后出来吹牛皮的时候先Google,如果你在墙内,那么请先百度。

    • 阿童木 says:

      在我眼里,程序员大部分是SB,特别是所谓的高级的,出于对技术的偏执,极大阻碍了行业的发展。

      .net不是封装过度,而是明显封装不够。
      上世纪90年代自控就组态了,完全是拖控件设参数,生成项目可靠,开发速度极快。效率不够功能不够的,往往留有C语言接口可以自己实现,我认为这才是发展方向。
      各种编程语言的封装比我预计的慢的多,我觉得不是需求问题,而是程序员对于技术的偏执。
      2010之前写个属性都要写一堆get/set,2012之前多线程要自己写那么多必须的重复性代码。socket处理从VB6到.net是巨大的退步。
      我就很奇怪对那么多重复的东东,网上整天那么多人都在发帖问的问题,为何不封装,这些大部分人都不会做特殊处理啊。
      做程序员的朋友说因为有人要在这里面做其它处理。问题是这应该是不到1%的需求呀,为何不提供封装和原始接口两条路?封装的用于快速开发,原始接口的用于有特殊需求的。

      封装本身没错,只要留有原始接口就行了,写应用的人使用工具,搞系统和平台的人不断完善和提高平台的效率。

  137. Jiakcs 对这篇文章的反应是垃圾标题党
  138. 余书华 says:

    看了你的文章,我只想说“井底之蛙”

  139. wk 对这篇文章的反应是垃圾笑死了
  140. wk says:

    呵呵你咋不去开发一门语言傻缺~~

  141. wk says:

    奉劝楼主,好好了解一门语言,等你真正了解了你会你发现你可以把麦当劳改成中式菜馆,当然前提是你得了解,别拖了几天控件就以为了解C#了。

  142. wk says:

    奉劝楼主,好好了解一门语言,等你真正了解了你会你发现你可以把麦当劳改成中式菜馆,当然前提是你得了解,别拖了几天控件就以为了解C#了。
    我遇到了很多整天吹嘘java好C好的2B~码了几年代码写了几年if else就开始评头论足~没事多读书~少撸~

  143. 林程序员 says:

    就语言当前本版,Java与c#在若干方面的比较:
    (1)lambda:前者不允许使用来自表达式范围外的“变量”,即使在表达式内不重新赋值。限制较多。
    (2)generic:前者无法从类型实参取得运行时类型,前者编译器还生成了辅助作用的方法。
    (3)属性访问器:前者仍要求代码里填满get和set。
    (4)regular expression:前者支持的正值语法量少于后者。
    (5)语言形式:前者对新关键字的引入控制比较严格,但另一方面形成的相对复杂的语言形式,例如,函数接口。
    (6)异步编程模式:前者或许仍在用监听者设计模式,后者在提倡async加await。
    (7)其它:前者有很多后者没有的特性,例如,巧妙利用前者泛型中的原始型,能比后者以更简洁的代码,不使用重写(利用运行时多态),实现父类对象对子类方法的调用。
    我感觉,对于语言本身,学习深入了,才能灵活应用,能充分表达程序员思想和实现业务逻辑的,便可取。
    平台与框架方面:主要看应用程序的功能和宿主环境。我们程序员往往处于应用端生成环境(或者说的软件产业的下游),不应该过多纠结平台和框架的优越性。平台和框架,在上游,同样有一帮人马在拼杀使它发展。如果我们有余力,是可以多思考上游那帮人的所思考的问题。
    鄙视和排斥,会让自己思想禁锢。有主攻、多认识,才能令人尊敬。有机会,请多发表您所掌握的、熟能生巧的、能让大家受益的技术知识文章。

    • JohnnyZ says:

      讲的好,懂得自然懂

    • Shannon says:

      同时使用java、scala主要用C#的人表示,之前C#被摒弃的原因应该主要在微软闭源以及不支持跨平台。但单纯就语言来看,我觉得C#在各方面都要优于java与衍生出来的scala,无论类库(scala不就是java的一个大类库么)还是语法特性。
      同时,鉴于文章是2011年的货,现在实时不同不再讨论。但是确实,只知道使用封装好的库,不知道自己思考底层的程序员,确实属于低级。现在.Net开源,我认为应该资深程序员应该进一步深扒C#底层,弄清其常用的基底。

  144. abc says:

    这口气,是招聘传销人员吧。先不说.net。开头的几句话已经不知道是干啥的了。经验不重要,技能不重要,那技术还剩下啥?原来只有热情最重要。这世界上除了传销和骗子,还没见过有谁敢这么误导的。跟这样的公司能干点事出来那叫见鬼了。

  145. 辛亚平 says:

    去看看原文吧:
    https://blog.expensify.com/2011/03/25/ceo-friday-why-we-dont-hire-net-programmers/

    看看原文后面的评论,洋洋洒洒的几乎全都是在批评这个浅薄的作者的评论,好多人的评论写得比原文还要长,详细地表达了为什么这篇文章的观点是浅薄的、无知的。

    但是这丝毫不影响国内的IT编辑们把这篇文章翻译过来,奉为神灵。

    是不是老外写的东西就都是对的?编辑们?

    真的,有本事把评论也翻译过来,看看你们转载了一篇多么烂、多么误导人的文章。

  146. wn 对这篇文章的反应是垃圾
  147. suunndy@gmail.com says:

    呵呵,写文章的人根本就是井底之蛙,思维方式还停留在1000年前手工作坊生产的时代,工业生产,社会分工都没有理解,就这里大谈什么创意,创造性。难道汽车制造商会让工人去挖铁矿,炼钢,然后再加工成汽车零件么,社会有分工,工业化大生产导致产品细节越来越多,各司其职,互相配合。麦当劳虽然只能生产固定尺寸的汉堡,但是这汉堡能满足上班族短时间吃完午饭的需要,而且这种需求量极大,不是每个人都要天天吃顶级厨师的满汉全席。

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据