不管在哪个技术论坛,总是会看到一些关于语言的争论,有人力挺c语言,也有人骂c语言,有人说C#比C++好,同时又有人说C++比C#好。。。如此种种,似乎永远不会结束。我相信我个人是无法停止这种争论的,只希望通过这一篇短文,让你可以早日跳出这个怪圈,摆脱语言之争。因为只有跳出语言的界限,才能成为真正的高手。语言之争就如同武侠小说里的门派之争,对于门派武功越是执着,就越容易局限于门派之内,就越难成为真正的武林高手。
比较常见的一种语言争论是横向的语言比较,就是类似语言的比较,比如java和c#的比较,或者是jsp和asp的比较。这种比较类似于刀和剑的比较,对于高手来讲其实都没有太大意义。刀有刀的用法,剑有剑的用法,用刀的有高手可以刀过无痕,用剑的有高手可以一剑封喉,而到我手上不管是刀还是剑都是一堆废铁,充其量可以当把古董卖点钱。所以关键在于使用的人,刀和剑本身没有哪个更厉害的说法。语言也一样,不管使用什么语言都有高手,也都有菜鸟,差别在于人,而不在于语言本身。
进一步来讲,真正的高手并不会受限于手中的工具。就如同《飞狐外传》里的胡一刀和苗人凤,一个用刀,一个用剑,比武到最后可以交换武器继续切磋,对他们来讲刀和剑都不过是简单的工具而已。对于编程而言也是同样的道理,对编程有深入理解的人,不管拿到什么语言,适应一下语法和编程接口,就可以做到运用自如。
更深入一层的语言争论是纵向的语言比较,就是高级语言和低级语言的比较,比如c和汇编的比较,又或是java和c的比较。在这种比较中往往都是倾向于低级语言,其中一个重要的论点是高级语言都是使用低级语言编写或者封装的。这种比较也没有太大意义,就如同铁锤和剑的比较。一把把锋利的宝剑都是工匠使用铁锤一锤一锤锻打出来的,但是我们并不能因为这个原因就认为铁锤比剑更好,恰恰相反,在很多情况下用剑比用铁锤更容易达到目的。如同java和c语言,当你面对一个电子商城的项目时,有众多的理由会让你选择java而不是c。
当然,就像上面提到的,高手并不受限于手中的工具。一把铁锤在武林高手手里也可以是一个致命的武器,摘叶飞花皆为武器,又何况是一把铁锤。当年大家都还弄不太清MFC的时候,罗云彬大虾就可以使用汇编直接编写Windows程序。不过高手又不是变态的二傻子,有选择的时候干嘛不选一个顺手的。叫罗大虾带队做个“愤怒的小鸟”,我想汇编不会是罗大虾的选择。
更具有倾向性的是时间维度上的语言比较,就是老语言和新语言的比较,如Basic和c++的比较。这种比较往往都是编程界的浪漫主义者提出来的,进行比较的目的更多是怀旧,在比较中找到一些记忆。在这种比较中大家还是很容易接受新语言比老语言更好的结论,不然推出新语言做甚。就好像拿木棍和做比较,谁不知道比木棍好用。不过仔细想一想,这也不是绝对的,关键还是要看使用的环境。叫个保安拿支枪在小区门口站岗当然好,不过在我们国家好像不让这么干。对一个保安来讲,教他怎么用警棍比教他用枪要来的实际。就好像在word文档里加一个宏,什么汇编,c,C++都用不上,拿VB写可能也就几分钟的事情。
所以说,语言的比较没有太多意义,要突破自己,就要跳出这种限制,摆脱语言之争。
当然,高手并不是一天练成的,高手也有刚入行的一天。对于刚入行的人来讲,选择一种语言是必须的,深入研究一种语言也是必须的。要达到“手中无剑,心中有剑”的高手境界,必须先通过“手中有剑”的过程。
那么,问题又回到了原点,怎么去选择语言呢,不是说语言的比较都没有意义吗? 答案在你自己身上,答案在你的身边。就是说你要根据自己的情况和公司/学校的情况选择一种语言。如果你找到一份工作要求用.net的,项目组都使用c#,那么c#就是你最好的选择,又有项目环境,周围又有高手,不愁c#学不好。如果你是一个学“自动化控制”的学生,不妨按课程进度选择汇编,在学校把ARM汇编搞通,不愁毕业找不到工作。
总之,你选择一种语言是因为这种语言更适合你现在的情况,不是因为这种语言比别的语言更好,所以,你不需要爱上这种语言,也不需要羡慕学习其他语言的人。
到某一天的你成为高手了,不同语言都可以成为选择了,整个项目组会等待你对语言的选择,那个时候,你选择一种语言也是因为那种语言更适合你们的项目,而不是因为那种语言比别的语言更好。
分享到:
相关推荐
CHATGPT是一个出色的自然语言处理模型,可以理解和生成人类语言的语义和语法结构。但是,它目前还需要通过输入文字来与人类进行交互,即使在自动生成文字的情况下,CHATGPT也是基于输入文本进行生成的。因此,许多人...
教程名称:9个视频教程让你摆脱系统菜鸟称号课程目录:【】BIOS设置【9个视频教程让你摆脱菜鸟称号之四】【】DM万用版给硬盘分区【9个视频教程让你摆脱菜鸟称号之九】【】Fdisk分区格式化【9个视频教程让你摆脱菜鸟...
作为Lisp 变体,Scheme 是一门非常简洁的计算语言,使用它的编程人员可以摆脱语言本身的复杂性,把注意力集中到更重要的问题上,从而使语言真正成为解决问题的工具。本文分为上、 下两部分来介绍 scheme 语言。...
摆脱电脑课上老师无耻的控制,不过这只能对凌波有用!
专业学位研究生欲摆脱山寨之名-打破认同尴尬.doc
读书月读后感:读《摆脱贫困》有感1000字.pdf
结合easyuefi工具摆脱黑苹果系统U盘引导,双系统 或者多系统。
【学会摆脱阅读答案】两个魔方阅读答案.docx
aravel 5.4 一键安装包,0门槛学习Laravel框架,摆脱Composer之类的烦恼
如何摆脱孤独?
探索建陶企业摆脱贴牌的品牌建设之路
Ezicomond Assambly Language IDE(汇编语言集成开发环境)是一款非常... EALIDE集汇编语言的源码编辑、编译、调试于一身,可以在X32/X64系统下方便地开发汇编程序,摆脱使用各种工具手忙脚乱的境地。 使用方法 ①在
摆脱光明危机.docx
摆脱鼠标吧! 系统级快捷键 CTRL(Control)组合键 Ctrl + A(All)全选 Ctrl + C(Copy)复制 Ctrl + V 粘贴 Ctrl + S 保存仅窗口响应 Ctrl + B 整理收藏夹 Ctrl + E\ F(Search\Find)搜索助理 Ctrl...
网络安全摆脱网络成瘾症全文共2页,当前为第1页。网络安全摆脱网络成瘾症全文共2页,当前为第1页。网络安全摆脱网络成瘾症 网络安全摆脱网络成瘾症全文共2页,当前为第1页。 网络安全摆脱网络成瘾症全文共2页,当前...
Rust语言圣经涵盖从入门到精通所需的 Rust 知识,目录及内容都经过深思熟虑的设计,同时语言生动幽默,行文流畅自如,摆脱技术书籍常有的机器味和晦涩感。 深入度,在基础教学的同时,提供了深入剖析。浅尝辄止并不...
如何摆脱黑客攻击.docx
智能锁能否让智能家居摆脱“不温不火”尴尬局面?.pdf
摆脱iis即可运行asp程序,无需windows环境即可运行asp程序,摆脱iis即可运行asp程序,无需windows环境即可运行asp程序,
【孤独是摆脱不良交际的一剂良药阅读附答案】时间是一剂良药.docx