寸锐斋

不送不迎 真君子自来去 无晴无雨 大丈夫何逍遥

方剑斌ID:cunruizhai
205701次访问,排名311好友1人,关注者8
变化是唯一不变的。
cunruizhai的文章
原创 31 篇
翻译 0 篇
转载 0 篇
评论 557 篇
寸锐斋的公告
下载最新Firefox打败微软:
最近评论
zheng_:not "Redundency",is "Redundancy"
soonqian:也别整天什么大学生怎么找怎么找的!!!
上高一的时候看着初三是小孩
上大学看着高中是小孩
那工作了又看这大学生无知
大家都在无知中慢慢变成这样
别一棒子把所有大学生打死啊
jiayajun88:当一个架构师也想过,但我想那是个漫长而艰辛的过程,我眼下就是要先做一个合格的JAVA程序员!!!!
jiyanguo_2007:不管用什么方法,能做到行业的顶级就是高手
zxh13939036040:我喜欢上面说的!嘿嘿
文章分类
收藏
    相册
    灯下黑
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 误导程序员的喧嚣:评CSDN引导Java和Ruby之争收藏

    新一篇: 我为什么反对语言之争?我的语言历险 | 旧一篇: 程序员的灯下黑:坚持和良好心态近乎道

     
     
    今天上CSDN Blog,一眼看到的头条中赫然是:CSDN 博客周刊:RubyJava争锋
     
    我第一个涌上心头的,是异常难受的感觉。我是真心希望不是CSDN在挑起这场喧嚣。语言优劣之争,是程序员界,最有害的争执。
     
    其一,这是最没有价值的争执。
    计算机语言,是工程师用来完成特定任务的工具。在整个研发的过程中,最有价值的是任务;用什么语言,只是根据适用性,效率,成本,的一种选择。做操作系统的,选择一C/C++为主,是C/C++在运行速度,开发效率,面向机器的特性的最佳结合;做应用系统的,也会根据面向的发布环境,用户环境选择Java,PHP,Pascal(Dephi),Basic(VB)不等。这就和挖孔用钻床,刨面用铣床一样。医生治病,感冒就发汗消炎;癌症就开刀化疗。这哪有什么优劣?
     
    其二,这是最有误导能力的争执。
    语言之争几乎就是程序员浮躁的代名词。这后面的深刻含义在于押宝般的赌博心理。许多人在想,嗯,我压Java,Java大热了,我找工作也容易了,工资也上涨了。你看张三,他5年前就学Java了,现在做了经理,考,工资比我多好几倍。我啊,要是那是跟他一起学就好了……
    恰好这世界还真有短时间内的VB热、PB热、Delphi热。严重助长程序员的此种赌徒心态。偏偏忘了,最重要的是怎么做产品,才是最重要的事情。
     
    其三,这是至今为止,毒害程序员最深刻的争执。
    如果程序员心中只是有一些偏好,这也没什么。可我看到了多少工程师在做项目中所谓的非Java或.net不做,或因为没有采用自己希望的语言而做的很不开心,甚至离职。特别是一些年轻的程序员和一些性格执拗的程序员,经常受此误导,影响了发展和前途。
     
    语言之争,已经至少两次了:98年左右,C++和代表Pascal的Delphi之争;2003年左右C++和Java之争;过去说,历史会出现两次,一次是悲剧,一次是喜剧。我没看到第二次是什么喜剧。不过我期望这第三次是个笑剧,大家看笑话的笑剧。从此以后,程序员收拾浮躁,该用什么用什么,没的偷懒,十八般兵器样样精通,真正把精力放到产品开发方法上,真正开发出有用的东西才是正途。
     

    发表于 @ 2006年10月01日 12:32:00|评论(loading...)|编辑

    新一篇: 我为什么反对语言之争?我的语言历险 | 旧一篇: 程序员的灯下黑:坚持和良好心态近乎道

    评论

    #vlinux 发表于2006-10-01 23:13:00  IP: 221.7.194.*
    十八般兵器样样精通
    ----------------
    莫非楼主是超人?
    #rjchen 发表于2006-10-02 07:18:00  IP: 219.236.52.*
    个人认为语言之争还是很有好处的:
    第一、可以让程序员了解各种语言的优劣
    第二、语言本身是一种工具,学习一种工具本身就需要投入很大的时间成本,通过争执可以让开发者了解到开发工具的发展趋势,选择对自己最有利的工具。比如98年的时候PB如日中天,现在用PB的少之又少;后来Delphi如日中天,现在Borland公司本身就活得很艰难。
    另外从CSDN来说:
    1、我们是媒体,媒体的作用本身就是扩大某些现象,让读者去深刻的反思。
    2、我们只是摆出现象,并没有掺杂自己的观点进去。

    同意你的观点,长远来说程序员的精力要放在开发优秀的产品上,但是要善于选择好的利器。

    #operfume 发表于2006-10-02 09:15:00  IP: 222.183.98.*
    每种语言在不同领域优势不同,单纯的比较是没有意义.
    #vstvv 发表于2006-10-02 10:40:00  IP: 202.100.221.*
    这就和挖孔用钻床,刨面用铣床一样。医生治病,感冒就发汗消炎;癌症就开刀化疗。这哪有什么优劣?
    -------------------
    问题是各种语言之间的用途没有分得这么明确。
    比如A药说可以治感冒,B药也说可以治感冒,那么A和B之间谁更适合治感冒呢?不争论,不把A和B的优缺点罗列出来,患者怎么知道?
    #支持! 发表于2006-10-02 10:46:00  IP: 124.21.217.*
    你把太极舞得风生水起,我把少林使得密不透风。
    这就是多姿多彩的软件开发世界,没有什么孰优孰劣。
    #shhgs 发表于2006-10-02 11:53:00  IP: 74.116.184.*
    语言是有优劣的,否则我们现在还在用fortran或者cobol。

    第二,评价语言的优劣是有价值的,否则语言就不会发展。

    第三,预测语言的兴衰是有用的。否则上了一条沉了的船,不但工作找不到,恐怕连编译器都找不到了。

    第四,不论学什么语言都能成为高手,但是要做项目,只有这几种语言可选。如果一定要学一门语言,为什么不选有前途的?

    第五,争端不是谁挑动的。懂得这两门语言的人自然会作比较,自然会有看法。总有人更喜欢ruby,或者更喜欢Java。谁都有发表自己看法的权利,谁都有反驳别人的自由。如果你两个都学了,你会受别人的影响吗?如果你有一个不懂,你有资格去作评论吗?你看得懂别人在说什么吗?所以说,争论的人,自己是不受争论的影响的;旁听的人也是不受争论的影响的,除非你去学了一门新的语言。但是对程序员来说,学一门新的语言难道有什么不对吗?

    总结,你完全错了。
    #fkpwolf 发表于2006-10-02 21:59:00  IP: 211.97.135.*
    热闹而已,楼主认真了
    #gfdg 发表于2006-10-02 22:10:00  IP: 58.61.11.*
    JAVA是垃圾
    #今日不一样 发表于2006-10-02 16:28:00  IP: 59.37.179.*
    如果单纯是“口水战”的话,是没有什么意义的。

    #noname 发表于2006-10-03 11:59:00  IP: 220.248.66.*
    都学一下比较好。

    我觉得程序员至少要能读懂汇编,会用c/c++,熟悉一些脚本和shell语言,再学一门FP语言,基本上再看其它东西都是你熟悉的了。
    #inshua 发表于2006-10-03 12:27:00  IP: 59.40.39.*
    1.计算机语言本身没有优劣之分吗?

    计算机语言不等于自然语言。多元化自然是对的。但如果一个语言是这样的:
    PROGRAM test START PROGRAM:
    PRINT "aaa"; END PRINT;
    END PROGRAM;

    你不觉得累赘吗?
    这是从语法来看的优劣。从这个角度,c# 的 get set 包装就比 java 做的好。

    2. 现在的语言之争仅仅是语言之争吗?
    和楼主理解的不同,现在这场争议不是人家不精通 java 或者不精通 ruby, 也即在既精通 java,又精通 ruby 的前提下,用 java 效率高还是用 ruby 效率高。而这种效率并不仅仅是语言的比较,也是框架的比较。

    楼主说的语言有适合领域的说法,固然有一定合理性。但别忘了,各个语言的适合领域有相交领域,并不是截然分开。目前比的是在重叠区域谁的能力强,以确定在相交区域用何种语言更妥当。
    #go21kr  发表于2006-10-03 14:26:00  IP: 60.188.123.*
    引: 第一、可以让程序员了解各种语言的优劣.
    人有优劣,语言没有(如果有的话那伟大的中文应该成为地球之语可能吗?现在流行学英语难道是为优而学吗?

    引: 比如A药说可以治感冒,B药也说可以治感冒,那么A和B之间谁更适合治感冒呢?不争论,不把A和B的优缺点罗列出来,患者怎么知道?
    广告语:中药(确确的说是,中国药)可治百病,管你性病还是补肾一起解决,你们要不试一下?
    引: 语言是有优劣的,否则我们现在还在用fortran或者cobol。
    哦?是我看错了?上海金茂设计图纸里的设计标准怎么套用了玫瑰园别墅的设计标准?

    哈哈............我支持LZ观点,我是98年的语言之争的直接受害者
    #skymountain 发表于2006-10-03 17:55:00  IP: 202.105.128.*
    想起99年的时候,在大学里非常吃力地学着foxpro。
    当时有一些对计算机了解比较多的同学质问老师,为什么要教这种快死亡的语言?老师就说:“语言是没有优劣之分滴……”
    从最后一堂课到现在,我再没见过人使用foxpro,一个学期的功夫完全浪费。
    #寸锐斋 发表于2006-10-04 02:49:00  IP: 60.166.102.*
    本来我从来不回评论,遇到语言不雅的,一删了之。但鉴于对这个主题,我有切肤之痛,因此集中在这里回答:

    To rjchen:
    在一般意义上比较语言的特点,是有好处的。但我反对的是把语言的比较放在谁更有前途这样的背景下。特别是CSDN来做这件事。
    我从来不觉得学一种特定语言是费劲的事,在我看来,在当今资料多如牛毛,唾手可得的情况下,除了C++和汇编外,两周学会一种语言的语法和基本能干活是程序员的基本要求。在这种情况下,了不了解开发工具的趋势意义不大。
    对CSDN的建议:
    CSDN是程序员网站,建议博客周刊主要收集程序员相关主题文章,如小孩图片,教授哭穷类的文章就不要收集了。另外,媒体对社会现象应该是真实反应,而不是扩大吧?也许只是你的语病。实际上我认为媒体是有引导作用的。而CSDN应该多设一些关于产品开发的栏目。比如,现在的Blog文章分类是以语言为主的,我认为应该把所有的语言归为一种,增加:测试,需要,产品设计,用户体验设计,发布部署,Troubleshooting,调试技巧等栏目。

    To vstvv:
    都治感冒,还得分是流感还是普通感冒呢。不同语言的适用性要靠你都懂,我反对的是为了押宝某种语言会是未来前途而争执。

    To shhgs:
    恰恰相反,我有个在IBM的同学还在用Cobol给公司挣大钱。Fortan还是在数学计算领域中大显身手。
    语言的发展也不靠评论,靠的是解决现实问题的需要。
    预测语言的兴衰真是我说反对的,第一,你在押宝;第二,你不会愿意掌握多门语言。
    CSDN引导了或者说强化了这种争执。这不是事实吗?
    我没反对学新语言。不知道我那句话让你觉得我有这样的想法。

    To inshua:
    你不觉得你的例子很像Pascal吗?作为Delphi的骨干语言,它只有自己的长处-结构化,易学易懂。另外,我主要是从另一个角度来说明语言的无优劣性的,并非指任何两种语言之间在不同的语法之间没有高下精粗之分。

    To skymountain:
    学习Foxpro是否建立了你的数据库基本概念?写Foxpro的程序至少也让你体会了这些。工具的死亡是自然而然的事情,能够迅速学会新语言新工具,并把以前的经验继承下来才重要。
    #microrain 发表于2006-10-04 09:01:00  IP: 221.217.126.*
    提的好,支持。
    呵呵。。。不过争也行,只是需要各方都能冷静对待。不要太偏激,容不得他人观点。
    #asolo 发表于2006-10-04 09:42:00  IP: 61.134.61.*
    没的说,谢谢楼主的文章
    #fxbird 发表于2006-10-04 11:28:00  IP: 221.201.190.*
    即使ruby,java都有某些共同的适用之处,我也懒得舍弃java去学什么ruby,学好一样再说别的。
    #rjchen 发表于2006-10-04 15:19:00  IP: 219.236.48.*
    to 寸锐斋:
    非常高兴看到你的回复,我一直认为理越辨越明,你现在是作为一个过来人来谈你的看法,但是很多新手需要通过一些新旧观点的碰撞来辨明是非,尤其是一些比较关键性的问题,可能很多新手是因为这场争论才知道开发语言曾经有98年和2003年两次争议,因为我们的争论才知道打好基础非常重要。
    另外,我的一个观点是:如果软件业真正发展成熟了,一般的软件工人可能就不用知道一些基础的原理,就像木匠并不用知道力学原理一样照样做木匠一样,他们只要知道什么工具能够做什么用,怎么用,并不需要花时间掌握所有的工具。
    关于博客周刊的问题,我同意你的观点,现在文章人文色彩是比较重,我和我对博客周刊的定位有关系,因为博客的特点在于“博”,我希望能够在这里集结一些非技术的话题,让技术人员在探讨技术本身的同时,能够对生活本身进行反思。关于技术这一块,我是希望能够通过技术中心(dev.csdn.net)和将来可能办的技术周刊来反应。
    关于分类,以前的分类是定位Developer为主,你可能是从整个软件开发流程的角度来提的,从现在的文章数量来看,还是讨论语言和编程具体问题的居多,等待我们的作者群从讨论语言跳出到讨论SE的时候,我们会考虑重新进行分类。
    关于媒体的作用,媒体的作用不仅仅是真实现象的反应,除此之外它还将某些焦点性的话题放大(不是“扩大”,放大更精确一点),让人去反思,只有深刻的反思才能变成自己的东西。我们每个人可以回忆一下,是不是经过多次的反思,才会形成自己这样或者那样的观点。
    #glacjay 发表于2006-10-04 19:14:00  IP: 218.94.9.*
    要用什么,就学什么
    #tShou 发表于2006-10-04 23:14:00  IP: 202.156.153.*
    真正有误导性的是 楼主这篇文章!

    没有比较,哪来的选择?难道楼主使用语言从来没有选择吗?或者是在没有比较的情况下糊乱选择的码?

    不!楼主在文章中也强调选择!楼主却反对别人比较语言!很矛盾!

    ----------
    电脑语言是比较高层次的技术东东,从人们对有关问题的言论看,不少人对电脑语言的认识还是比较肤浅,语言中有太多的问题值得大家关注、探讨、深究。论坛/BLOG中对电脑语言的讨论、争论不是太多,而是太少了。对电脑语言本身的认识,对编写高品质的应用软件致关重要。 这里给大家提两件事(一个很“普通”, 另外一个相当“高端”):

    1) 你们编写C语言程序中是否有留意、怀疑传统C库中字符串处理函数的效率问题?如果大家有兴趣可以测试一下。自己写一些比较一下。。。。。。相信不少所谓的程序高手会懒得做这些事。

    2) 多线程同步(synchronize)操作非常影响程序运行效率,这是个很令程序员头痛的事,很多程序语言在这方面都做得不好,尤其脚本语言在这方面支持差。相信很多程序高手,对该问题也是束手无策!有一个称不上是程序高手的业余程序爱好者,在其设计的脚本语言中却成功解决这一难题:在多个线程同时运行时,用普通同步机制设计时,程序的运行效率会下跌几个数量级!而采用新的方法设计的同步架构,程序的运行效率受同步机制影响很小。



    #redsea 发表于2006-10-05 00:22:00  IP: 59.42.102.*
    记得有些大师不随便比较语言, 一个原因是不同的context 的, 语言的优劣不同, 二是评价者对所评语言是否同样熟悉和是否持正难以保证.

    现在似乎是不让评价语言了.

    语言没有优劣? 那大家为什么不一直用fortran语言呢? 我不相信用fortran 就肯定无法开发企业应用,无法开发web 程序.
    #goodxp 发表于2006-10-05 00:27:00  IP: 59.40.37.*
    这个帖子的观点是有问题的。

    首先,可以将CSDN看作是一个技术观点市场,买家与卖家都是读者。可以将读者的讨论当作“交易”,只要不含非法的内容,CSDN最好不加干预。读者也不要指望CSDN会对网站内容进行什么价值的判断,点击率低或者回复少的帖子自然不会占据主要页面,就象超市里少人光顾的产品自然下架一样的道理。

    其次,CSDN当然有权针对一些热点搞一些“促销”活动,这无可厚非。在这样一个市场当中,每个人都可以选择自己感兴趣的东西,对于自己看不惯的东西不关注就是了,不必感到什么“痛心”或指指点点,没准别人喜欢哪。这就是自由、平等、市场化的运作原则。

    对于计算机语言或平台之争,笔者认为恰恰对于程序员来讲是非常有意义的。

    第一,计算机领域是比较年轻的,主流通用语言的更迭很快,如果不提前有所准备,收入会有影响。我92年毕业的时候,Foxpro非常红火,但是如果我当年没有转到C++, 现在绝对没什么像样的工作好找。后来我又及时转到了Java,收入再次上涨。我的一个朋友还一直做c++开发QQ, 现在已经是腾讯的副总了。但是,目前除了游戏和一些系统软件或嵌入式开发,c++几乎没有市场了。你可以说c++程序员的平均收入没有下降还涨了,但留在那个领域中的机会只属于比较幸运的人,比如我的朋友,其他大多数的c++程序员怎么样了?一半被迫转了.net或Java等,一半去做管理或转行了。后转的人如果仍做编程的明显薪水涨的不快,比如后来投靠我的几个c++同行。你也可以说,做了那么多年还在靠写某种语言的程序生活有点失败。可是我的美国同事讲,他们那边程序员平均要编16年的代码,所以很多人能够成为象Martin Fowler那样的大师或者著名开源产品的作者。如果连一直专著的代码也写不好,就转去做什么管理,又能成为什么样的管理者呢?很可能是又一个感觉良好的浮躁的二混子。

    第二,比较和评价编程语言是学习软件设计的重要方法。我在学习c++时,认为OO不过是类、继承和模板的运用,因为c++的语法在直观上支持这些方法。学习Java后,我懂了接口和模式的运用。学习Ruby后,我懂了如何运用约定简化配置,以及运用动态语言容易地实现依赖注入......真正重要的不是这些浅层次的东西,更重要的是思路的进步。比如说,任何应用系统的设计都可以看作是在设计一种最终用户与应用系统对话的语言。举个例子,从前我设计的软件很多都要求系统管理员事先做一系列的配置,就象c++的头文件。现在我设计的软件都尽量减少系统管理员的工作,很多功能设置改为由高级用户(比如部门经理等)在使用时随时设定,就象脚本语言的变量无需事先声明,在使用时根据上下文语义判断。比如有一个工作流系统,用户就不必事先定义工作流。如果某个员工请假发给了某几个人批准,系统下一次就知道这个人以及同一级别同一部门(组)的人请假就自动依序发给某几个人,直到有人再次改变了方式。这种系统的使用很自然,也很简单,好多表达起来很复杂的工作流定义都能通过系统的自学习方便的随需而变,又不需要用户掌握复杂的工作流定义系统或者等待系统管理员去改流程。还有,为了业务需要,有时不能完全按既定流程办事,这个系统允许这种使用方式!

    第三,存在的就是合理的。什么东西有毒,什么东西有营养,每个人有自己的看法,但不能剥夺别人讨论和使用的自由(在法律允许范围内)。社会的进步与个人的成功很多是在大多数人看来不可能成功的地方取得的。如果 Bill Gates 听他老爸的话继续念完名牌大学,可
    #dounking 发表于2006-10-04 13:45:00  IP: 202.117.25.*
    是骡子是马拉出来遛遛才知道的。

    比较语言的目的不是要挑起争端,而是让大家更加了解各种语言的优劣。以前的很多语言比较最后都演变成一阵喧嚣甚至沦为闹剧,所以现在好像又走向了另一个极端--语言似乎不重要了,谁要是还在谈论Programing language似乎就是层次低了。

    窃以为语言还是很重要的,再说讨论比较各种语言与关注产品、优化算法这些又不矛盾,这些东东都是软件开发中必不可少的组成部分。既然产品可以讨论,算法可以比较,语言怎么就不可以呢?毕竟99%的人学习语言都是有选择性的,就算是你两周真能学会个新语言(到底怎么才算是学会???),那下一个两周到底学什么呢?总不是用掷色子来决定吧。
    #janze 发表于2006-10-05 13:12:00  IP: 60.187.171.*
    to goodpx:
    >>学习Java后,我懂了接口和模式的运用。
    why?
    design pattern 这本书明明都是uml 加 c++做例子的,为啥要学了java以后才懂???????
    92年的c++程序员?太不像了吧。
    #janze 发表于2006-10-05 13:15:00  IP: 60.187.171.*
    to goodpx:
    >>我在学习c++时,认为OO不过是类、继承和模板的运用,因为c++的语法在直观上支持这些方法。
    模板的运用不是OO的。
    #sinall 发表于2006-10-05 10:07:00  IP: 218.97.242.*
    支持楼主。
    比较并非没有意义,对新人而言,可以了解两种语言各自的特性。
    比较的意义不会太大,一般情况下,都不会有什么结果。
    #haoyujie 发表于2006-10-05 21:13:00  IP: 219.239.31.*
    楼主说的不错。
    我也有同感。
    计算机语言还是旧有的乔姆斯基语言学体系,正则表达式和有限自动机,从来都没变过。
    连google,microsoft,IBM都承认,理论没有突破,那许多鼓吹,根本就是在骗人。

    计算机语言发展的方向肯定是越来越接近人的语言,但由于理论难以有突破,起码在近期,不会有什么本质性的新发展。

    需要注意的是,前些天,IBM雄心博博地要仿真人脑,如果那个东西出来,就相当于有了一个永不死掉的人脑,可能硬件的基础就有了。

    至于语言方面,以前有人写了一个论文,外国人的,忘了在哪,大意是面向语言的语言,类似于人的语言,也就有一定的自我演进能力,可以自动识别出非内嵌的单词或句子。

    当然,不需要语言学家出来,我就可以肯定,这暂时还是不可行的。

    但有一些东西还算是有创意,如微软的COM,给程序和程序间的沟通,作了重要的开创性尝试。还有微软的VBA,使人机交互到了一个新的层次。

    但这些还都是基于现有的理论。

    如果IBM的机器出来了,并且语言学有了本质性突破,那么新时代才会到了,不知道我还能不能看到。
    #divineren 发表于2006-10-05 08:08:00  IP: 222.90.80.*
    对我们这些初学者来说什么软件当前用的最火,就学习那种软件!!要是样样都学,可没那么多时间和学费!!
    #甘草 发表于2006-10-06 13:22:00  IP: 219.239.205.*
    楼主把自己当鲁迅了,顺便把别人当成段祺瑞了。
    不争何以明事理?
    #果子 发表于2006-10-06 15:41:00  IP: 218.19.158.*
    这里太多人拾人牙慧了。
    你对各种语言是否真的足够了解了?据我观察和判断,我想能对多数主流语言的优劣和细节机制深刻了解的程序员,是不足2%的。
    我自认为勉强属于这2%,我也依然还是有很多的东西不懂。例如对于函数式语言的掌握就很不够
    是谁说一般程序员除了C++,Assembly,应该两个星期就能掌握一门其他语言的?怪不得在这么多人眼里混IT的人是太多了。要深刻了解一门语言,知道其优劣,我觉得需要半年以上吧。当然了解的标准是因人而已了。现代的语言很多都跟随有庞大的类库,Framework之类,不客气的说,以普通程序员的理解力,不是两三个星期可以解决的
    讨论语言优劣是分很多个等次的。有很低水平的讨论,也有的是非常启发性的,非常深刻的讨论。
    劝某些人不要太中庸了。明显Foxpro就是过时的,如果你偏说学了他懂得了数据库多少多少知识,那就是强词夺理了。教材不需要优化?教学的内容不需要选择?如果拿同样的时间来学习其他有没可能更好?你说的话自己是不是信以为真?还是为了辩论而去辩论?
    少点扮圣人。大家同行,基本都知道水深水浅。我赞同讨论编程语言的优劣,但不赞同低层次的讨论。
    #果子 发表于2006-10-06 15:47:00  IP: 218.19.158.*
    比如我对WmlScript感兴趣,可以花一到两天写个反汇编器去反编译bytecode,中间也理解了一些VM是基于stack的语言的工作细节。而那些用寄存器的脚本语言快在哪里,什么地方是难点,我也很想知道。说白了,没有一定的技术素养是没办法深刻地讨论语言地优劣地。

    WMLScript反汇编器
    http://www.codeproject.com/cpp/dwmlsc.asp
    #寸锐斋 发表于2006-10-07 08:55:00  IP: 60.166.100.*
    to shhgs:
    我的同学是进了IBM后学的Cobol,这说明这种在大多数人眼内死亡的语言还有用。我会不会学去学Fortran和Ruby,主要决定于需不需要;如果有一天某项目需要,我就会去学。

    我说语言没有优劣,从字面上理解,也许说得太绝对。但我这是放在一个上下文语境中说的,并非特指语言语法设计和实现之间没有优劣之分。如果网友认为不对,也许我可以把这话改得中庸点,但这样损害我的原意:各种语言都有自身的特点和应用情形,计较谁优谁劣没有什么很大的意义。一种程序语言被发展或淘汰,原因复杂,技术不见得最重要,举个反例:Smalltalk,它的语言设计比大多数现在流行的语言强吧。还有,某种语言技术的高低都不见得是定论。比如说OO,是越“OO”越好呢,还是恰到好处比较好?这里面有的是设计陷阱。这和产品技术好却被淘汰是很类似的。

    我觉得你把程序员觉察语言的变迁的敏感度看得太重要了。程序员在本质上是工程师,不是计算机科学家,只要对新语言保持一定的跟踪学习就够了。换句话来说,觉得能很快学会够用就可以不用紧张了。

    我看现在参加争论的,算不上什么语言高手。高手们不会在这争论,在这儿吵的,最多也就是学会了某种语言的人,有学得好不好的区别。这让我想起毕加索说的一句话,讨论意境啊,隐喻啊是艺术评论家,真正的艺术家在一起只会谈那里能买到便宜货。:)可是影响大众的是谁呢,还是这些评论家。是这些人左右的世俗观点。你去看看这次博客周刊,参加的人,是高手吗?深思熟虑了吗?大部分上是很情绪的发泄。这让我想起街头吵架,那种争论,根本就辨不出谁对最错来。最后的对错就是站队押宝而已。

    你觉得不会有人受这种东西的影响,恰恰想反,受这种争论影响的人极多(押宝了)。你要是个项目经理,你不妨去问问10个你身边的程序员:做C++的,你对他说,下个项目我们做Java;做Java的,你对他说,下个项目我们做Ruby啊。过不多久,辞职报告就送上来了。如果没受影响,在其他都没变的情况下,他干嘛不爽啊?因为你让他觉得走上了一条非主流的船,影响了他的前途,他心里是有“宝”的。

    我反对CSDN挑起这种争论,主要是我看到了前两次大争论的结果。不知道你听过这样的“名言”吗:聪明的程序员用Delphi,真正的程序员用C++。只是第一次大争论的遗产。不知道当年站在Delphi一边的老兄今天怎么想。

    我今天的建议仍然是别执拗于某种语言的谁优谁劣,要用什么学什么。不要去押宝。

    #shhgs 发表于2006-10-07 12:27:00  IP: 74.116.184.*
    你叫别人不用讨论,用什么学什么。其实也只是看到你自己的情况。别人也不傻。他们主动选语言,跟你被动选,其实都是基于同样的逻辑:维护自身利益的最大化。所以你要相信别人。

    你说的几个例子里,其实都有这方面的因素,只是你没有注意到罢了。

    ---------------------------------------------
    我反对CSDN挑起这种争论,主要是我看到了前两次大争论的结果。不知道你听过这样的“名言”吗:聪明的程序员用Delphi,真正的程序员用C++。只是第一次大争论的遗产。不知道当年站在Delphi一边的老兄今天怎么想。
    ---------------------------------------------

    那么我们反过来问,当初选了C++,或者从Delphi跳车到c++的程序员有该怎么说呢?

    问题是,我们总得押宝。这不是赌场,你可以攥着筹码逛一天。这是职场,铃响了之后,你就得押。与其到时候离哪个桌子近押哪个桌子,不如趁着有时间,挤到最有可能中奖的桌子去押。更何况,这不是押宝。

    ---------------------------------------------
    我今天的建议仍然是别执拗于某种语言的谁优谁劣,要用什么学什么。不要去押宝。
    ---------------------------------------------

    如果是在校的学生,他们该选什么呢?就像前面一个兄弟说的,99年的时候,还在教Foxpro,难道他们也得钻foxpro?这是不现实的。现在的语言,跟平台,跟类库联系得越来越紧密。C已经是绝无仅有的与类库无关的语言了。所以在初学阶段,早入门的优势是很大的。而押中宝,找工作容易的好处也是很现实的。

    -----------------------------
    你要是个项目经理,你不妨去问问10个你身边的程序员:做C++的,你对他说,下个项目我们做Java;做Java的,你对他说,下个项目我们做Ruby啊。过不多久,辞职报告就送上来了。
    -----------------------------

    这跟job security有关。如果是IBM的,经理说下个项目我们用ALGO,你看有没有人打辞职报告。

    不要以为那些辞职的程序员就很烂。每个人都不一样。他们并不比你傻,他们宁可辞职也要守在自己的平台上,肯定有他们的理由。你或许有一份很有保障的工作,所以对你来说,保障工作比平台选择更重要。但是对他们来说,选择平台就是在选择他们的收入。C++人去学JAVA,如果弄个半年,java搞得不上不下,C++又有点生疏了,这时工作丢了,你叫他们怎么办。不要说学一个语言只要两个礼拜。Java的语法或许两个礼拜就够了,但是那些类库,框架,没有两三年,根本谈不上熟悉。而不懂类库,是谈不上熟悉的。
    #soho 发表于2006-10-07 12:51:00  IP: 222.222.60.*
    同意楼主,很多媒体确实有故意夸大之嫌
    但这样也简介让更多的人在争论中获得了新的知识和见解,我想这也是CSDN的想法,不是吗?
    #哈哈 发表于2006-10-07 11:24:00  IP: 133.184.15.235, 133.184.15.*
    争论一下也不错啊,不然怎么进步啊
    #inshua 发表于2006-10-07 14:34:00  IP: 58.61.22.*
    1.计算机语言本身没有优劣之分吗?

    计算机语言不等于自然语言。多元化自然是对的。但如果一个语言是这样的:
    PROGRAM test START PROGRAM:
    PRINT "aaa"; END PRINT;
    END PROGRAM;

    你不觉得累赘吗?
    这是从语法来看的优劣。从这个角度,c# 的 get set 包装就比 java 做的好。

    =============================
    你没仔细看。


    2. 现在的语言之争仅仅是语言之争吗?

    和楼主理解的不同,现在这场争议不是人家不精通 java 或者不精通 ruby, 也即在既精通 java,又精通 ruby 的前提下,用 java 效率高还是用 ruby 效率高。而这种效率并不仅仅是语言的比较,也是框架的比较。

    =====================
    注意是由既精通 java,也精通 ruby 的人来做对比。
    =====================

    楼主说的语言有适合领域的说法,固然有一定合理性。但别忘了,各个语言的适合领域有相交领域,并不是截然分开。目前比的是在重叠区域谁的能力强,以确定在相交区域用何种语言更妥当。
    ====================
    注意对比是在叠加领域。
    像楼主说的,我的某个同学用 cobol,当然可以,cobol 有特定领域,另外可以想像,该公司有 cobol 方面的积累,有框架,有语言,有历史应用,要转语言代价是很大的。
    以前发生过一次 c++ 和 java 的交锋,后果是 java 占据了 c++ 的一大片领域,楼主说是为什么,不会是因为程序员喜新厌旧吧?
    =====================
    #TERRY 发表于2006-10-07 14:49:00  IP: 221.222.171.*
    看看编程语言的最新排名把,或许能对自己有帮助

    http://ddgame.blog.sohu.com/15789502.html
    #shhgs 发表于2006-10-07 03:33:00  IP: 74.116.184.*
    我有个在IBM的同学还在用Cobol给公司挣大钱。Fortan还是在数学计算领域中大显身手。

    你那个同学是进了IBM才学的cobol,还是因为学了cobol才进的IBM?

    Fortran当然在数值计算里面强了,但是你会去学吗?如果让你自己在Ruby或Fortran里面挑一个,你是去选择fortran还是ruby?

    语言当然有优劣。语言一代一代的更替,真是体现着这种优胜劣汰。被边缘化的语言,之所以没有被淘汰,很大程度上是源于商业因素;但是过去曾经占据统治地位的语言,之所以会被边缘化,却一定是因为技术方面的原因。

    孙先生在讲革命的时候,把人分为三类。先知先觉者,后知后觉者,不知不觉者。作为一个程序员,做个先知先觉的(设计一个语言,或者架构性的东西)可能不是每个人都能达到的,但是争取做个后知后觉的,应该是基本要求。

    所以,我坚持我的看法:语言是有优劣的,判断语言优劣和流行的趋势是有价值的。

    此外,我很怀疑这种争论能否真正影响争论双发所试图影响的人。参与争论的人,应该是两个都懂的高手。而高手一般是很固执的。他们肯定对这两个语言都有深入的了解,然后再经过深思熟虑才发表看法的。所以一般的反驳和辩解,根本不足以打动他们(因为他们在发表看法之前,已经否定了这些反驳和辩解了)。而旁听的人,由于没有这方面的背景知识,因而可能听不懂他们在说什么。很多起哄的,是基于人的惰性,懒得再多学一门语言,才支持某一方的(比如现在的Java,03年的C++,当然也有一些是新入门的。比如直接学了Java,不懂C++的)。所以,这种辩论很大程度上是为了宣泄(比如痛恨公司抱残守缺,不思进取等等)。至于真的有多少人会受这种东西影响,恐怕不会太多。
    #坏男孩 发表于2006-10-27 09:13:00  IP: 218.98.159.*
    这么好的帖子
    一定要跟啊
    哈哈哈
    #zhaojiang 发表于2007-02-26 14:15:20  IP: 59.37.44.*
    古往今来,语言的争论一直很热呀,我们没水平,只好当看客了.顶一个...
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 寸锐斋