Hello World
Spiga

程序员的档次?有没有搞错?!

2010-08-28 02:43 by 老赵, 6001 visits

最近有一幅老图很火,很多人说这是“从语言来区分程序员的高低”。很多人说这幅图有问题,我说是你们的理解有问题,类似这样的对话在推特上面出现过多次,一般说着说着也就过了。不过突然发现,在CSDN——这个中国最大、最权威的IT类网站上居然发布了一篇名为“程序员的档次”的新闻,让我有些愤慨。CSDN首页是我常去的地方,在我印象中以前最令人不满的也最多是技术方面的硬伤吧,但这次就不明白了,这是故意的还是怎么的?我已经很难相信这是“无心之失”了。如果不是故意的,那么某些编辑同志的业务水平的确需要提高了。

首先来看看CSDN这则新闻是如何理解这幅图的吧,下面的文字是它的“导读”,在此一字不漏地摘录:

程序员是否可以以它熟悉的语言判断高下?国外某程序员对此表示认可,并绘出了一张有趣的有关于程序员的图像,箭头的意思是表示某语言的程序员比另一语言的程序员更高级。最高阶自然是神级Lisp和汇编语言,最后一个嘛,自己看吧。

很显然,它认为这幅图在表达“某语言的程序员比另一语言的程序员更高级”。那么您的理解呢?如果您的理解与它相同,那么我建议您洗把脸,透口气,再仔细看看右上角的深底色框内的文字——如果还没有意识到其中问题,我想以您的某某能力,还是放弃程序员这门很有前途的工作吧。

框里的文字是“Consider themselves superior to”,翻译成中文便是“认为他们比对方高级”。例如有个箭头从Lisp指向C,这说明“Lisp程序员自认为比C程序员高级”。这里的关键在于“自认为”,这是种“自我感觉”,因此这幅图不是根据语言为程序员排名,而是一个“使用某种语言的程序员”的“自我感觉良好程度”排行榜。而这幅图右上方的注释也说明了这一点:

Ruby programmers consider themselves superior to everybody, but are not aware of the existence of non-web languages so on this chart com in above Perl Programmers.

当然,我这里不想去谈“正确性”云云,因为这一定谈不出结果来。这种“自我感觉”既难论证,又明显不可对整个语言社区一概而论。其实就图片上的文字来看,我的感觉也是有大量调侃的意味在里面(如把“People who refuse to use the word Ajax”也作为单独一类程序员)。那么,别人既没想要分出高下,又是在开玩笑(连CSDN那篇文章都能意识到这点),我们又何必当真?

其实我也一直在努力去“善意”地理解这则新闻,我也想,可能它的“导读”也是在开玩笑的,但是我发现即便在最后,它还是在谈论“语言”和程序员的“水平”关系,甚至还是“档次”问题(如HTML等):

为什么Java会地位这么低呢?除了作者是PHP出身外,也许和欧美国家Java程序员太多,平均水平更低有关?

当然,有一点所有自称程序员的同学注意了,不要再将HTML(其实还包括ASP、JSP)称为一种编程语言……

令人感到可笑的是,在这样一则新闻里面,还出现了冠冕堂皇的“方向性引导”:

我们想特别指出的是,各种语言都有其自身的长处和缺点,笼统比较优劣毫无意义。而且就目前一般的编程任务而言,基本上各种语言都能胜任,开发效率也和使用者的熟练程度密切相关。语言的此消彼长,关键在于社区,如果你热爱哪一种语言,请到CSDN开设博客,多写自己的心得、经验、各种层次的教程,让更多人体验到这种语言之美,扩大自己的社区。我们欢迎有质量有内容的语言和框架比较的技术文章,坚决排斥浪费自己和他人时间和资源的口水战。

原本这幅图并没有挑起争论的意思,而这篇新闻却一边煽风点火,一边道貌岸然地说“大家要讲道理”。就我看来,这篇新闻要不是故意在搬弄是非,便只能说是十分愚蠢了。

但是,点燃我愤怒的却是新闻里的最后一句话:

最后,不要在下面的评论里花费太多口舌,因为已经有国外的同学说了:“使用最佳工具完成工作的程序员”鄙视“对哪种编程语言好争论不休的人”

不知道是不是我敏感了,我觉得这句话的重音是在“国外的”三个字──如此普通的一句话,我相信国内也无数人说过,为什么要说是“国外的”?如果真是某位国外同学,那么为什么不说明是谁呢?这让我感觉是类似“月亮是国外的圆”、“国外程序员水平高”的意思,我很反感。丝毫不夸张地说,如果这篇新闻作者在我面前,我很可能就直接“甘礼良”、“草泥马”或是“法克鱿”地招呼上去了。

这篇新闻的恶劣之处,在于进一步扭曲了“语言讨论”的意义与价值。之前有人说语言之争意义不大吧,相对这个还算号,至少说的是语言之间没有必要分出高低,只是语言,和使用这个语言的程序员没有关系——就算争论双方的潜意识里有这样的看法,但是还真没见过有人如这篇新闻一样,赤裸裸地将使用这个语言的程序员拖下水,说语言能够说明程序员的水平。如此这般,还会有人认真地讨论技术么,还不是不分高低誓不罢休了?如此这般,居然还在进行“讨论方向”的引导。

引导?我靠。

没错,我是在批判Java,是在批评它是种不思进取的劣等语言——但我说过Java语言的程序员半句坏话吗?我认为讨论语言是有价值的,从表面上看,这篇新闻是在鼓励大家使用正确方式讨论语言,但是其内容只能让人对“语言之争”产生厌恶之情。这让我这样想要真正好好讨论语言的人情何以堪?

真是“猪一般的队友”。

Creative Commons License

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名赵劼(包含链接),具体操作方式可参考此处。如您有任何疑问或者授权方面的协商,请给我留言

Add your comment

57 条回复

  1. 链接

    seerhut 2010-08-28 03:26:44

    话说这图挺有意思的,很有代表性,很典型,呵呵

  2. 链接

    seerhut 2010-08-28 03:27:42

    现在可能需要把erlang和scala也画进去了

  3. HCOONa
    218.9.124.*
    链接

    HCOONa 2010-08-28 07:11:52

    这么早啊。 CSDN有点太乱了,不喜欢,呵呵。 这个图有点意思啊,哈哈。

  4. Bill Lo
    221.4.199.*
    链接

    Bill Lo 2010-08-28 08:05:28

    最近都沒看到老趙寫技術議題文章了啊

  5. bqrm_521
    125.39.109.*
    链接

    bqrm_521 2010-08-28 08:44:22

    CSDN好像一直是一个IT行业最大的八卦娱乐站点,最权威这个,我从来不认可。

  6. 左手
    112.65.176.*
    链接

    左手 2010-08-28 11:35:24

    javascript之上的是ajax。 php之上的是oo php。 太没水准了。

  7. 老赵
    admin
    链接

    老赵 2010-08-28 11:42:04

    @Bill Lo: 最近都沒看到老趙寫技術議題文章了啊

    围绕着技术就可以了,呵呵。

  8. 老赵
    admin
    链接

    老赵 2010-08-28 11:43:57

    @左手: javascript之上的是ajax。 php之上的是oo php。 太没水准了。

    所以说是纯调侃,更像是从一些程序员古怪的习性出发进行的分类。

  9. reus
    221.172.68.*
    链接

    reus 2010-08-28 11:51:13

    有沙发这样的读者,就有这样的文章。

  10. 东方佳木
    116.204.64.*
    链接

    东方佳木 2010-08-28 12:32:46

    挑错: 之前有人说语言之争意义不大吧,相对这个还算""

  11. xiongli
    58.41.85.*
    链接

    xiongli 2010-08-28 13:12:08

    csdn是故意哗众取宠的 这样可以吸引流量 csdn也就是一个商业站点 难道你还真当回事了?

  12. 每日一狗
    115.193.171.*
    链接

    每日一狗 2010-08-28 14:30:48

    技术问题,不懂的说~~~

  13. 链接

    seerhut 2010-08-28 15:17:37

    为啥老赵解释这么清楚了还有读不懂这图的,连我也莫名中枪。。还是根本没考虑我在说什么,只是认为我在说什么就一棒子闷过来。。。

  14. Haipeng
    74.53.3.*
    链接

    Haipeng 2010-08-28 16:46:18

    CSDN上经常出这种狗屎东西,不看就得了,没必要动气

  15. Duron800
    220.181.77.*
    链接

    Duron800 2010-08-28 23:26:16

    CSDN好像一直是一个IT行业最大的八卦娱乐站点,最权威这个,我从来不认可。

    非常同意。老赵骂得好,支持!

  16. Duron800
    220.181.77.*
    链接

    Duron800 2010-08-28 23:28:55

    围绕着技术就可以了,呵呵。

    是太忙了?还是太懒了?呵呵。

  17. 老赵
    admin
    链接

    老赵 2010-08-28 23:32:09

    @Duron800

    一是懒,二是话题比较少,最近搞的东西感觉都没到可写的地步。

  18. 法科时时有
    174.121.161.*
    链接

    法科时时有 2010-08-29 11:36:57

    其实我觉得老赵有时也是挺超蛋的,尤其是文章最后的一段,你骂csdn就骂csdn就好了,干嘛又扯出批判java的道貌岸然样,先不说西方国家怎么样,你在盛大应该有机会话跟印度工程师交流一下,为什么世界上这么多大工程都采用java开发,华尔街晚上休息的时候,是印度人在用java搭建的系统在地球另一侧给他们维护。

    整天站在一个小小编码员的角度就到处大喊大嚷java略质,搞到跟王朔一样靠骂出名,你看上的女朋友都是钟无艳、你吃的都是垃圾、你用的都是非主流。对不起,我没有对你人身攻击,我只是批判你喜欢你欣赏的东西而已。

  19. DJ
    183.3.183.*
    链接

    DJ 2010-08-29 12:56:47

    @法科时时有

    怎么总有这样的人啊...老赵强调他只是批判java语言层面上的东西不少于5次了吧...老用"java做了这么多项目,java有什么可能垃圾呢?!"这种逻辑来说,除了自证自己理解能力和逻辑能力略低之外,还有什么好处啊...

    建议你再看一次文章,看了之后还想骂,那...就骂吧.

  20. zhaohongjian
    218.58.59.*
    链接

    zhaohongjian 2010-08-29 16:12:11

    早先在CU上就见过这个图,双向箭头比较有意思。

  21. jianshen
    117.84.246.*
    链接

    jianshen 2010-08-29 16:37:41

    语言谈不上劣等。 要我说java相对C++,C#,scala还是有很大优势的。 面向对象语言只要这样就刚刚好。就像C对于汇编语言的替代就刚刚好。 java语言对象就是对象,1+1=2,没有其他乱七八糟的东西。是面向对象的思想的完美体现。同时也如C一样保持得非常简约。

  22. gl
    123.138.30.*
    链接

    gl 2010-08-29 17:59:13

    老赵很少有这么气愤吧,有良知。

  23. 老赵
    admin
    链接

    老赵 2010-08-29 18:31:55

    @jianshen

    有primitive types在,Java的面向对象就不够。还有,语言偏要追求所谓“纯粹”做什么呢?你可以说“纯粹”于是可能容易掌握,容易普及,但不能说“纯粹”就是好。就像我不会说“支持范式多”就是好,C++支持范式也很多,但是不好。

    Java的历史地位很重要,很好,但这要在15年前来看。但是就从语言本身来看,2010年的眼光来看,无论是从语言设计来说也好,开发效率上来说也好,都是劣等的……语言当然有劣等的,设计一个劣等语言太容易了,我每年都能设计出很多个,呵呵。

  24. 老赵
    admin
    链接

    老赵 2010-08-29 18:38:39

    @法科时时有

    如果语言用的人多,就说明它是数一数二的优秀语言的话,那么世界上人口最多的国家,在你看来也是数一数二的优秀国家了吧。

    如果某个语言开发的工程规模大,就说明它开发效率高,那么你应该很支持历史上造长城,开运河的方式方法,觉得它们肯定比现在造个住宅楼的工作效率高多了。

  25. jianshen
    117.84.246.*
    链接

    jianshen 2010-08-29 19:28:56

    java的语言设计我认为非常好。面向对象足矣。 剩下不足的由C/C++弥补。 C/C++/java一脉相承, 各取所需。

  26. 老赵
    admin
    链接

    老赵 2010-08-29 19:59:24

    @jianshen

    来谈个实际的吧:我想知道您对C#的Lambda表达式,扩展方法,闭包怎么看,我觉得一个语言如果没有类似特性的话,使用起来实在太痛苦了。

  27. jianshen
    117.84.246.*
    链接

    jianshen 2010-08-29 20:20:18

    Lambda表达式, 闭包我也知道一点的。 Lisp就有。后来被C取代, 然后是C++, 再是Java, C#,现在C#又有Lambda, 闭包。 本质上等于回到Lisp的起点。

  28. 老赵
    admin
    链接

    老赵 2010-08-29 21:07:00

    @jianshen

    呃,好吧,我明白你的意思了。

  29. 链接

    杨永 2010-08-30 12:00:17

    就coding而言。。。我觉得国内的其实很强。。。但是核心技术嘛。。都掌握在国外。。。

  30. 链接

    空明流转 2010-08-30 12:59:08

    老赵你太不淡定了。。。

  31. 链接

    空明流转 2010-08-30 13:00:23

    老赵你这个关于Cpp就不好的论断,是不是有点奇怪了。。。

  32. haskeller
    124.16.137.*
    链接

    haskeller 2010-08-30 13:14:14

    纯论语言语法特性,coq 的dependent types, impredicative types 完胜 Haskell,即使算Generic Haskell,遑论F#, 更别说C#了,按你的说法C# 也是劣等语言了.

    工业界的语言要考虑到普罗大众的接受程度。

  33. flapfly
    61.187.18.*
    链接

    flapfly 2010-08-30 13:46:04

    csdn可能也是借机炒作一把吧

  34. amen
    124.127.119.*
    链接

    amen 2010-08-30 14:13:46

    哎,又给别人打广告了……

  35. Rock.C
    207.46.55.*
    链接

    Rock.C 2010-08-30 15:15:21

    这个图就是个joke嘛~lz不用太认真。

    不过我觉得“people who insist on calling HTML a programming language”放在最下面还有有点道理的,哈哈

  36. 老赵
    admin
    链接

    老赵 2010-08-30 16:19:39

    @haskeller: 工业界的语言要考虑到普罗大众的接受程度。

    没错,所以C#、Scala、Python、Ruby等等都是不错的语言,而Java只能说是二流语言……

  37. ikbear
    221.12.174.*
    链接

    ikbear 2010-08-30 16:48:48

    老外的那篇文章我也看过,我本来想把这个图贴到自己博客上去充个数,后来感觉太水了。没想到CSDN连这么水的东西发上去还出这种误解,继而产生误导。

    程序员所干的工作,不管使用什么语言,都是要付出逻辑思考的过程。这种思考力的“等级”有没有其判断的标准,我不知道,但我觉得通过其使用的语言来判断是很不合理的。事实上,很多程序员会多种语言甚至使用多种语言工作,也无从判断。

    考虑这种“档次”的程序员的档次又如何呢?

  38. CSDN刘江
    72.14.189.*
    链接

    CSDN刘江 2010-08-31 00:34:33

    本来就是一篇大家看了笑笑而过的文章,不必这么较真吧。我不是已经写了吗:

    不知道为什么这幅很老的图(最早出自2006年8月Luke Welling的一篇博客)又被翻出来,在国内外技术论坛里讨论,也许因为编程语言太多了,各种语言都有不少使用者,累了,比较一下当放松吧。 大家不用较真,本来作者最初也是为了好玩的

    透露一点内情:里面大部分文字是我写的,但有些部分保留了其他人包括cnbeta的话,所以显得前后不太一致。呵呵。

  39. CSDN刘江
    72.14.189.*
    链接

    CSDN刘江 2010-08-31 00:37:37

    另外,说此图狗屎啊、毫无价值也不那么客观。这幅图至少上过两次Reddit的头条,那应该算是编程Geek最集中的网站之一了吧。再说,始作俑者是PHP语言的大佬级人物之一。

    我为什么又对这个较起真了呢?就此打住。

  40. 老赵
    admin
    链接

    老赵 2010-08-31 09:05:17

    @CSDN刘江

    图老师这下我眼镜咣叽掉地上了——所以我今天换了备用的。

    其实我觉得这幅图是有价值的,但关键还是解读方法,如果解读的方式是各类程序员心高气傲的程度,那么就是很值得把玩的,也很有趣。

  41. luotong
    123.9.208.*
    链接

    luotong 2010-08-31 09:18:18

    罪魁祸首是“国外的”这三个字让老赵动了肝火,我也觉得这三个字很多余,难道国内的同学没说过吗?国内的同学说的就可以被忽略吗?

  42. 东东
    115.196.204.*
    链接

    东东 2010-08-31 14:17:46

    唉,老赵,博客园又吵架了,还是你这好!

  43. zhaiduo
    89.248.169.*
    链接

    zhaiduo 2010-08-31 14:22:15

    原图只是说明各个语言之间的关系吧,被歪曲了

  44. 老赵
    admin
    链接

    老赵 2010-08-31 15:43:43

    @zhaiduo

    你图片和文章都没看。

  45. 链接

    seerhut 2010-08-31 18:03:25

    图片对某些程序员心态的把握还是很准的,我在进计算机这行前也略有点那个意思。。。呵呵 不过有些国情还是差别挺大,例如ada。。我从没见过用ada的程序员。

  46. shoru
    114.113.197.*
    链接

    shoru 2010-09-01 16:56:40

    请问你的博客模板是minyx lite 还是 minyx pro ?

  47. winter
    61.172.247.*
    链接

    winter 2010-09-02 16:29:20

    Luke Welling:"从前有个人,长得像洋葱,结果就哭了"

    CSDN:"转:'从前有个人,长得像洋葱,结果就哭了',像洋葱会辣到自己的眼睛,但是我们不能以貌取人"

    老赵:"大哥,有你这样听笑话的么?"

    CSDN刘江:"这个笑话流传甚广,应该有值得一笑的地方啊"

  48. winter
    61.172.247.*
    链接

    winter 2010-09-02 16:43:19

    CSDN刘江: 另外,说此图狗屎啊、毫无价值也不那么客观。这幅图至少上过两次Reddit的头条,那应该算是编程Geek最集中的网站之一了吧。再说,始作俑者是PHP语言的大佬级人物之一。

    厚道地说一句 刘江同学 其实你只是理解错了这个作者的意思,啥叫 "Consider themselves superior to"?就是自以为比XXX强

    人家Luke Welling这幅图是讽刺那些天天拿语言做文章,以为自己靠着用的语言就比别人强的程序员 你倒好 把Luke Welling搞成以程序员熟悉的语言判断程序员高下的人了 这完全是会错了作者的意 把作者划到他讽刺的那群人里了

  49. 21天后
    58.34.23.*
    链接

    21天后 2010-09-02 22:39:08

  50. 21天后
    58.34.23.*
    链接

    21天后 2010-09-02 22:40:31

    园林净化器,火药味十足的文章?

  51. 问个问题
    222.92.145.*
    链接

    问个问题 2010-09-03 11:28:22

    @老赵

    有没有什么方法在对DataTable进行操作之前做统一的判断呢,如:

    string foo = DataTable.Rows[0]["ColName"].ToString();
    

    有没有什么方法去对所有的这类操作统一地去做DataTable判空操作呢?可不可以去重写DataTable的什么方法获取事件呢?请教下!

  52. Mattress
    210.193.6.*
    链接

    Mattress 2010-09-03 14:52:24

    呵呵,这种比较是无聊中的无聊,语言极端分子~~~

    小平同志当年说:不管白猫黑猫,抓到耗子就是好猫!

  53. wanin.lezu
    116.28.125.*
    链接

    wanin.lezu 2010-09-04 08:40:37

    蛋定,蛋定.. 莫激动。。呵呵

  54. vincent
    113.97.77.*
    链接

    vincent 2010-09-06 17:47:14

    老赵,这个我顶你, 顶顶顶,我顶顶顶.

  55. Rimifon
    113.240.36.*
    链接

    Rimifon 2010-10-10 13:31:04

    哦,老赵大愤了……

  56. YeeBoo
    60.247.46.*
    链接

    YeeBoo 2011-07-31 15:34:45

    无意之中看到这篇文章。

    我先是仔细看了一下那个图。挺有意思的。浏览了一下文章,顿觉无趣。何必呢。

    又扫了一眼回复。唉,怎么说呢。

    你让我这种“深爱着” Java 的穷学生情何以堪呀。您对 Java 语言(也许还包括其他无辜的语言)的偏见,使您在我心中的地位大打折扣。让我感觉您就是一个“传教士”。

    道不同,不相为谋。

    冒犯之处,还望见谅。

  57. 老赵
    admin
    链接

    老赵 2011-08-01 13:24:11

    @YeeBoo

    说我“偏见”?既然你觉得Java好,那么就来应对一下我提出的具体理由吧。至今没有Java爱好者跳出来说:“你这么写代码不对,Java可以这样写”,听来听去都是些大道理。大道理知道不?传教士的最爱。

发表回复

登录 / 登录并记住我 ,登陆后便可删除或修改已发表的评论 (请注意保留评论内容)

昵称:(必填)

邮箱:(必填,仅用于Gavatar

主页:(可选)

评论内容(大于5个字符):

  1. Your Name yyyy-MM-dd HH:mm:ss

使用Live Messenger联系我