如果程序员是士兵,那编程语言会是什么样的武器?

2017 年 8 月 6 日 伯乐在线 伯乐在线

(点击上方公众号,可快速关注)


编译:伯乐在线 / Florence

如有好文章投稿,请点击 → 这里了解详情


【伯乐在线导读】:如果程序员是士兵,那 C、C++、汇编、PHP、Perl、Python、JavaScript、Java、Scala、ActionScript、Objective-C、Swift、Go、Ruby 等编程语言 会是什么样的武器呢?本文摘编自 Chandra Penke 在 Quora 同名问答贴中的分享,3200+ 顶。


PHP 3 是电锯


对于开发 Web 应用的程序员大兵来说,它是最早的武器之一(在 Web 应用出现之前它就已经很受欢迎了)。它能完成工作,但是看起来有些麻烦,好在现在可供选择的工具已经越来越多了。(PHP 3的语法是个噩梦,导致代码维护起来很困难。php后来的版本在这方面似乎提高了很多)



Perl 是刺客手中的剑

对于想要分派任务的程序员来说,就像是刺客手中的剑。优雅而高能,可以快速击中目标(尤其如果它们是文本文件)。确保与刺客联盟保持良好关系,否则你也许会发现这个武器不是你能控制的。(Perl强大而复杂,但是语法和语义使得它很难被掌握,这导致无法识读,代码也很难维护。就像一个刺客,神秘但高效。)

Python是坦克

自我防御能力很好,坚固,并能确保摧毁你的目标。如果你是初学者你通常可以瞄准射击(经过一定的训练后)。如果你是一个专家,你可以有条不紊地部署征服你的领域。尽管它很有效,但有可能很慢。不过有了挥舞着的武士刀(C拓展)的超级士兵的支持,你可以选择解决任何潜在的缓慢问题。

JavaScript 是战斗机发出的导弹

JavaScript经历了好长时间才成为导弹。它最初只是一个炸弹,仅仅发出恼人而巨大的声音,但是多年来(尤其发布了V8,加上巨大的社区和一些非常棒的框架,又称真正可怕的战斗机技术)它演变成了一个不那么优雅但能快速解决问题的导弹。

Java 是从枪(JVM)里发出的子弹

Java 原本是从枪(JVM)里发出的子弹,然而枪支制造商决定去造不同的枪,所以很不幸,出现了外形类似子弹的轻微变种。然而,这使得 Java 的使用效率更高。

Scala 是来自火影忍者的分身影术

Scala 是来自火影忍者的分身影术,允许你创造自己的分身,可以完全压垮敌人。

ActionScript 2 是一台投石机

想像一下,它虽然使用起来简单,看起来也很有吸引力,但移动速度很慢,并且击中目标的速度甚至更慢。如果你有更好的选择,你为什么还用它?

Objective-C 是一柄没有原力的光剑

有些类似 C,但似乎有更多的样式,和一些额外的功能。你的敌人会认为你要么很傻,要么很酷(如果你有 Xcode 和其他开发者工具,你的敌人更有可能会认为你很酷)。

 C++ 是一柄带盾的剑

盾(OOP / RAII功能、模板等)可以帮助你远离一些危险,但如果没有明智使用,它也可以成为累赘。你可以甩掉盾,只带着剑冲刺(因为 C++ 是 C 的一个拓展集),但有经验的士兵知道如何带着盾和剑冲刺。

C 是武士刀

C 是武士刀,致命且光滑,它激励精通它的人拥有超越现实的力量。但要注意,如果你和很多武士挤在一个房间训练,你可能会意外地被伤到。(有编译器的帮助,C 最接近汇编语言,最有潜力编写高性能的代码。然而,注意那些可能不小心释放你的指针的初学者士兵。)

Assembly 是你自己的身体

如果你是李小龙或者超人,它就是你想要的全部。但是除非你出生在另一个星球拥有超人的力量,不是的话,就好好磨练你的身体和心灵来完善技艺,这样才能用好你的武器(编译器/解释器)。

Swift 是一把有拥有原力的光刀

你现在可以在不接触它们的情况下偏转爆破枪,移动对象,并让你的敌人彻底屈服对你敬畏。但是额外的力量也会伴随着一些黑暗面。(相比较于 Objective-C ,Swift 带来很多自由和能力,但增加的流动性有可能导致代码很难去理解和维护)

Go 是星际迷航中的移相器

具有未来色彩,圆滑,非常小,不需太多装饰就可以完成工作。要击败那些更强硬更有经验的敌人,你现在也许还需要使用另一个武器。(GO 仍然在改进,发展成为武器所需要的社区和支持基地,虽然这似乎在很快进行)。船长 Jean Luc Picard(谷歌)魅力超凡,领导能力出众,你保证可以重拳出击,很快拥有超越“击晕”和“杀死”敌人的设置(强大的库,工具,支持等)

Ruby 是光晕中跑出的幽灵

当它击中目标时非常令人满意,彰显着能力,但是有时操作慢很费力。(Ruby 有很多吸引人的优点,但是最大的缺点是当创建到一定规模时,它需要去匹配一些其他替代品的性能。)

Bash 是一架装有隐蔽货物的运输机,大部分是为需要运输其他士兵或武器准备的

在紧急情况下你可以卸掉隐藏的货物以减少一些损失。但是大部分情况下你还是想要利用它去部署,返回,远距离观察。(Bash 擅长将事情粘合起来,在它自己的角度上它也是一种编程语言。但是它最好做一小部分任务,把更重的任务留给其他语言。)

注:所有图片都来源于 Google 图片搜索。

感谢各位的顶、建议和评论。我从反馈和建议中学到了很多。当我最初写下答案时,这个问题还在一个安静的角落无人问津,我以为没有多少人会看,所以回答得不够认真周全。我没想到它后来竟然引发了这么大的关注!如果你感觉我不够尊重你喜爱的编程语言,我鼓励你去写下自己的答案,因为本文终究就是一个“假想的比较”。

也感谢各位对更多的编程语言提出编辑意见。就此我要收尾了,我鼓励去提交你自己的答案。这是一个有趣的问题,你不会后悔回答它。


看完本文有收获?请分享给更多人

关注「伯乐在线」,看更多精选 IT 职场文章

登录查看更多
0

相关内容

Perl 是一种高级、通用、直译式、动态的程序语言。
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
56+阅读 · 2020年6月26日
打怪升级!2020机器学习工程师技术路线图
专知会员服务
98+阅读 · 2020年6月3日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
IBM《人工智能白皮书》(2019版),12页PDF,IBM编
专知会员服务
20+阅读 · 2019年11月8日
说说我的老同事,前端大神程劭非
余晟以为
17+阅读 · 2019年1月14日
吃鸡手游竟然是Python写的?
机器学习算法与Python学习
7+阅读 · 2018年9月11日
计算:XGBoost背后的数学之美
论智
12+阅读 · 2018年8月20日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
为什么你应该学 Python ?
计算机与网络安全
4+阅读 · 2018年3月24日
为什么 Python 更适合做 AI/机器学习?
计算机与网络安全
10+阅读 · 2018年3月18日
用Python制作3D动画
Python程序员
30+阅读 · 2018年1月17日
给程序员的10条建议,吐血推荐!
R语言中文社区
3+阅读 · 2017年12月21日
Arxiv
14+阅读 · 2020年1月27日
Generalization and Regularization in DQN
Arxiv
6+阅读 · 2019年1月30日
Arxiv
3+阅读 · 2018年10月8日
Hierarchical Deep Multiagent Reinforcement Learning
Arxiv
8+阅读 · 2018年9月25日
Arxiv
4+阅读 · 2018年5月4日
Arxiv
11+阅读 · 2018年4月25日
VIP会员
相关资讯
说说我的老同事,前端大神程劭非
余晟以为
17+阅读 · 2019年1月14日
吃鸡手游竟然是Python写的?
机器学习算法与Python学习
7+阅读 · 2018年9月11日
计算:XGBoost背后的数学之美
论智
12+阅读 · 2018年8月20日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
为什么你应该学 Python ?
计算机与网络安全
4+阅读 · 2018年3月24日
为什么 Python 更适合做 AI/机器学习?
计算机与网络安全
10+阅读 · 2018年3月18日
用Python制作3D动画
Python程序员
30+阅读 · 2018年1月17日
给程序员的10条建议,吐血推荐!
R语言中文社区
3+阅读 · 2017年12月21日
相关论文
Arxiv
14+阅读 · 2020年1月27日
Generalization and Regularization in DQN
Arxiv
6+阅读 · 2019年1月30日
Arxiv
3+阅读 · 2018年10月8日
Hierarchical Deep Multiagent Reinforcement Learning
Arxiv
8+阅读 · 2018年9月25日
Arxiv
4+阅读 · 2018年5月4日
Arxiv
11+阅读 · 2018年4月25日
Top
微信扫码咨询专知VIP会员