专栏首页BestSDK万能的编程语言

万能的编程语言

我刚开始写程序那会,十分在意于各种编程语言之间的比较。每次自己使用的语言被别人说三道四,心里就跟打翻了五味瓶一样,很不是滋味。

同样情况下, 换成那些在知识技术上过硬或业内稍有所成就的人, 一般都会心平气和, 有理有据地跟别人争辩。心里压根儿不会感到丝毫冒犯, 更不会突然觉得自己缺胳膊少腿似的低人一等。反倒是那些新手们, 没有技术又眼高手低的半吊子, 一番胡乱瞎扯后,就恬不知耻地开始骂娘。

为什么有些程序员这么纠结于编程语言呢?

我们都知道,作家所描写的故事无论多么跌宕起伏,精彩绝伦, 人物勾画的再怎么惟妙惟肖, 跃然纸上, 都跟紧握在手中的笔没有任何关联。 说到底,笔和纸只是他们所熟悉的一种表达工具。就算改用石器, 降低的也只是写作效率,而非他们的创作功力。

“A tool is only as good as the person using it.”

那同样的道理适用于程序和编程语言吗? 答案是肯定的。

如果把编程语言也简单地看作工具。那么,静态和动态语言,只是对运行速度和开发效率之间进行取舍; 面向对象编程(OOP)和函数式编程(FP)各有所长, 因此选择时脱离不开实际业务的需求与运用场景。

大多数时候,真正区分程序员技术高低的往往是像常用算法,数据结构这样基础的 ‘硬知识’, 还有对硬件工作原理的整体了解程度。只要肯多花时间学习琢磨与实践,多少都是可以做出成就来的, 完全没必要过分留意语言之间的比较。

但这也正是问题的根源所在。日常生活中, 人们严重低估了自己对天性的掌控能力, 错误地以为成就很大程度上是跟某样东西挂钩。但事实上呢?并非如此。

“生活中你想的每一件事,都没有你想的那么重要。”

这是诺贝尔奖得主丹尼尔·卡纳曼教授对他提出的 “聚焦幻觉”所作的总结, 他还举了个例子:

“教育程度是决定收入一个重要因素, 最重要的因素之一。但它并没有大多数人以为的那么重要。假设每个人都受到完全相同的教育,收入差距只会缩小不到10%。当你聚焦于教育时你忽略了无数其他决定收入的因素。有些人受的教育程度相同,但收入有天壤之别。”

按照这逻辑继续做推断, 想必天赋也没印象中那般重要。即使重要,可能也起不了作用了

以大多数人的努力程度之低,根本轮不到去拼天赋

看到这,你可能觉得我在偷换概念; 觉得程序员之所以这么在意程序语言,框架这些东西的比较, 完全是由于他们对技术的热爱, 就像赛车手对速度的执着一样。还有你看F1,赛车的硬件难道跟赛车手的成绩没半点关系吗?

同一赛道上, 给你一辆世界上最快的赛车,非专业车手的你确定比的过坐在跑车里的舒马赫? 不在技术上研究着如何进步,反而对工具挑三拣四,吹毛求疵。整日妄想着能找到一种万能的语言,以此一劳永逸。这不是在思想上偷懒吗? 是抱怨周边环境的影响容易些还是承认自己的懒惰更容易些?

PS: 关于编程语言那段, 讲得未免有点笼统。现在很多动态语言的运行速度基本与静态语言持平,甚至超越。不像几年以前的天差地别。而像Go这样新生代的高性能静态语言,在开发效率上一点也不输Python和Ruby。最后,每个人都有自己的思考模式,所以找对合适的语言来表达自己的思维也很重要。但无论如何,不要习惯性地把工具当作你天性缺陷的遮羞布。

作者: Calvin Chen

本文分享自微信公众号 - BestSDK(bestsdk)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-08-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 2017最不受欢迎编程语言榜,PHP上榜

    01 最不受欢迎的编程语言 在 Stack Overflow 上,开发者可以创建属于自己的“Developer Story”,用来记录项目开发、获得的成就等个...

    BestSDK
  • 四大机器学习开源框架:Theano、Caffe、Torch 和 SciKit-learn你最喜欢哪款?

    1.Theano Theano 在深度学习框架中是祖师级的存在。它的开发始于 2007,早期开发者包括传奇人物 Yoshua Bengio 和 Ian Good...

    BestSDK
  • 深度解析|用API来分析软件,是否存在恶意倾向

    我们发现有越来越多的恶意软件开始使用各种加密、封装和加壳等保护技术来对恶意代码进行混淆处理,以防止系统或程序对其进行识别。除此之外,这些技术甚至还会让研究人员对...

    BestSDK
  • 好的程序员做不出好的软件设计

      你不能看到一个程序员还不错,就把他推到系统分析师、软件设计师或软件架构师的位置上。   如果你在团队或公司里寻找一个能胜任软件架构师或设计师这样重要位置的人...

    用户1289394
  • 2019年2月编程语言排行榜:Java依旧第一,Python干掉C++!

    请注意,TIOBE 编程语言排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。

    老九君
  • Kafka 生产与消费

    接着上一篇博客,本篇主要介绍Kafka的生产与消费的过程。Producers往Brokers里面的指定Topic中写消息,Consumers从Brokers里面...

    大鹅
  • 浅谈Web前端的线下项目开发

    导语 :从15年第一个项目开始,团队以前端技术参与线下业务的项目开发已经快4年了,过程中尝试了很多,收获了很多,些许成就,些许挫败。最近简单整理了一下自己的想法...

    花叔
  • Step By Step Use Abstract 提取LEF File

    Advance Node的需要使用ICADV12.3版本的Abstract,28nm以上的需要使用IC61X

    老秃胖驴
  • 代码审计|PHP代码执行函数进阶版实力上线了!

    本篇涉及函数:call_user_func()、call_user_func_array(),array_filter,usort,uasort() 0x0...

    漏斗社区
  • 网站APP越权漏洞 该怎样进行渗透测试

    渗透测试在网站,APP刚上线之前是一定要做的一项安全服务,提前检测网站,APP存在的漏洞以及安全隐患,避免在后期出现漏洞,给网站APP运营者带来重大经济损失,很...

    网站安全专家

扫码关注云+社区

领取腾讯云代金券