提前锁票 InfoQ 最具价值感的视频栏目 | InfoQ 大咖说 了解详情
写点什么

假如编程语言是《权力的游戏》中的角色 (上)

2021 年 2 月 19 日

假如编程语言是《权力的游戏》中的角色 (上)

如果 C#、Python、C++、Java、SQL、Ruby,甚至 R 都是《权力的游戏》中的角色,会怎么样?


本文最初发表在 Towards Data Science 博客,经原作者 Sajid Lhessani 授权,InfoQ 中文站翻译并分享。


这篇文章不会像以往那样严肃。 让我们来分析一下,如果我们所喜爱的日常编程语言都是《权力的游戏》的角色,会怎么样?


译注:《权力的游戏》(Game of Thrones)是一部中世纪史诗奇幻题材的电视连续剧。该剧以美国作家 George R.R. Martin 的奇幻文学《冰与火之歌》(A Song of Ice and Fire) 系列为基础改编创作,由 David Benioff 和 D. B. Weiss 编剧、HBO 有线电视联播网推出。剧集第一集在 2011 年 4 月 17 日晚首次公映。该电视剧一上映即获得极高的评价。HBO 在 2011 年 4 月 19 日播出第一季第一集后,随即签下该电视剧的第二季。第二季于 2012 年 4 月 1 日正式上映,上映后反响强烈。目前 HBO 已播映五季,第六季于 2016 年 4 月播出中。


可能已经好久没有看过了,但是相信 HBO 的成功仍在我们心中。通过每一幅图的独特性和多样性,可以更好地理解当前编程语言的多样性。


让我们来复习一下,在漫漫长夜里,你可以在同事和朋友面前炫耀。

先决条件

鉴于《权力的游戏》中的角色列表比较长,本文分为两部分。第一部分将讲述四大家族。


  • 史塔克家族(Stark)

  • 坦格利安家族(Targaryen)

  • 兰尼斯特家族(Lannister)

  • 拜拉席恩家族(Baratheon)


在第二部分中,将会有更多有趣的其他角色出现,比如夜王(Night King)、瓦里斯勋爵(Lord Varis)、乔拉·莫尔蒙(Jorah Mormont)等等。


让我们从我最喜欢的史塔克家族开始。

史塔克家族

艾德·史塔克(Eddard Stark):C

绝对是第一季的主要角色之一。最早的编程语言之一。他在过去很有权势,非常受欢迎。



像 C 语言那样,艾德·史塔克(昵称奈德(Ned))在所有事情上都采用传统的方式。这种编程语言需要做很多工作,但是每个人都尊重它。


年轻的开发人员在将来会把他忘记,但他的遗产通过他的孩子们(C++、C#……)保留下来。

琼恩・雪诺(Jon Snow):C++

就像他父亲一样,他的做事方式也很传统。他是艾德·史塔克最真正的后裔,但是更加复杂更有特色



像他父亲一样,传统就是一切;如果你想了解他,你需要大量的工作和投入(坦格利安可以证明)。即便你在他身边完成了很多项目,你也永远不会觉得自己足够了解他。

艾莉亚・史塔克(Arya Stark):C#

你真的认为她会循规蹈矩和家人呆在一起吗?不!像 C#一样,艾莉亚・史塔克已经开源好多年了。



如艾莉亚·史塔克,C# 有皇室血统。在童年时期,C# 生活在一个贵族家庭中(C# 是微软的财产)。但是,就像第三季中的艾莉亚·史塔克一样,在 2016 年 C# 开源后,它已经有了很多新的面貌

珊莎・史塔克(Sansa Stark):Objective-C

根据维基百科词条:“Objective-C 是一种通用、高级、面向对象的编程语言。它扩展了标准的 ANSI C 编程语言,将 Smalltalk 式的消息传递机制加入到 ANSI C 中。”



就像第一季中的珊莎・史塔克一样,Objective-C 帮助平衡了史塔克家族和君临城(King's Landing)王国之间的关系,这要归功于她的闲谈能力和她的外交手腕。


她为 C 语言家族的编程语言添加了一些技巧,从本质上讲,这些语言是粗糙的,难以理解,敏锐而又复杂。


现在我们就来谈谈拜拉席恩家族吧,他们在过去的美好时光里是很耀眼的。你还记得他们的事吗?

拜拉席恩家族

比如在这个系列中,拜拉席恩家族很早就消失了,但他们却是过去最有权势的家族之一。

劳勃・拜拉席恩(Robert Baratheon):COBOL

在过去,COBOL 的功能非常强大,被广泛应用于企业和政府的商业、金融、行政系统。



但是像我这样的年轻开发者(我今年 28 岁)已经把他忘得一干二净。今天, COBOL 几乎已经死亡。而且, COBOL 并没有像劳勃・拜拉席恩那样创造出一种强大的世界遗产。

乔佛里・拜拉席恩(Joffrey Baratheon):VBA

他一点也不像他的父亲(劳勃・拜拉席恩),我怀疑他一定是瑟曦(Cersei)和詹姆·兰尼斯特(Jaime Lannister)的儿子。



和 VBA 一样,他在过去是如此强大,以至于每个人都必须遵守他的规则。就像乔佛里・拜拉席恩一样,VBA 也非常自私,而且与其他公司的外交关系也很糟糕。


每个 VBA 用户都知道,你不可能拥有像 Python 一样数量的库,比如拥有 TensorFlow、GoogleCoLab、 MachineLearning Libraries, 以及 Kaggle 或 Stanford University 等不同的 API。在外交上,VBA 和乔佛里·拜拉席恩是邪恶的,这使得他们都死了。


总之,大家都恨他,没人后悔杀了他。


谢天谢地,他现在已经死了。


现在,让我们点燃火把,去南方见坦格利安家族吧。

坦格利安家族

丹妮莉丝・坦格利安(Daenerys Targaryen):JavaScript

她值得拥有一个完整的篇章,挑战与挫折成就了她的过去。



一开始被低估了,但如今很强大,主要是因为她有 3 个库(Angular、React 和 Vue.js)相伴。


如丹妮莉丝·坦格利安,当 JavaScript 刚刚问世的时候,没人会把它当真,很久以来,人们一直认为它仅仅是一种前端语言。就连谷歌都试图通过发布 Kotlin 来消灭早期的 Java。多么低估了 JavaScript 的价值


现在, JavaScript 和龙一样火起来了,广泛地用于服务器端开发。


我不想多谈坦格利安家族,因为丹妮莉丝・坦格利安代表了该家族的大多数人。让我们回到君临城,去见见兰尼斯特家族。

兰尼斯特家族

正如兰尼斯特家族一样,编程语言丛林中出现了各种各样有特色的编程语言。


“兰尼斯特的人总是会还债的”

— 兰尼斯特家族

提利昂・兰尼斯特(Tyrion Lannister):Python

Python 就像系列中的提利昂・兰尼斯特(译注:是个侏儒)一样,因为它的短小而在早期被人憎恨。但是随着时间的流逝, Python,如提利昂・兰尼斯特,赢得了粉丝和遗产。



和侄子乔佛里国王不同,他凭借自己的外交才能,成为一位重要人物,到了人人向他请教的地步。根据维基百科条目,Python 今天拥有 13.7 万个库。拥有这种外交技巧,你将永远不会死去。


此外,如兰尼斯特家族, Python 是专为金融用户定制的(我每天都在工作中用它来开发我的模型,算法,甚至交易机器人)。这也是为什么提利昂・兰尼斯特才会成为国王的手下,并在这么多年来一直掌管君临城的财政大权。


就我自己的经历而言,比如第一季的提利昂・兰尼斯特,我在早年就非常讨厌 Python(当时作为一名博士生,我开始用 R 编程)。但是我今天完全沉迷其中,每天都在向他请教。

瑟曦・兰尼斯特(Tyrion Lannister):PHP

无法预料,又无情,你想多恨就能多恨,你必须承认瑟曦·兰尼斯特 /PHP 才是强大的网络女王,不好意思……维斯特洛(Westeros)几乎不可能毁灭,但是让我们看看接下来的几季(如果他们改变主意,选择制作更多的剧集,十指交叉)。



不管你有什么经验,所有的 PHP 开发人员都会认为 PHP 总是混乱不堪。

詹姆・兰尼斯特(Jaime Lannister):Kotlin

Kotlin 就像他的兄弟姊妹一样,有皇室血统。由谷歌工程师开发并派去杀死 Java,Kotlin 和詹姆・兰尼斯特依然可爱又迷人。



Kotlin 的直觉和简洁明了使你可以单手编写代码。


在第一部分中,詹姆・兰尼斯特是最后一个代表人物。


在第二部分,我们将对《权利的游戏》中的其他角色进行预测。现在,R、SQL、Java、Go、Perl、Swift、HTML 和其他语言呢?

作者介绍:


Sajid Lhessani,数据科学家,供职于银行和资本市场。


原文链接:


https://towardsdatascience.com/what-if-programming-languages-were-game-of-thrones-characters-as-a-data-scientist-c3a9ae523273


2021 年 2 月 19 日 15:052184
用户头像
刘燕 InfoQ记者

发布了 514 篇内容, 共 158.8 次阅读, 收获喜欢 960 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营第11周总结

听夜雨

极客大学架构师训练营

架构师训练营第 1 期第 11 周学习总结

好吃不贵

极客大学架构师训练营

Sharding-Sphere Proxy 分库分表 简单示例

Java MySQL 分库分表 ShardingSphere-Proxy

月薪8k和月薪38K的程序员差距在哪里?学习Linux C/C++ 这些你就知道了

ShenDu_Linux

c++ Linux 程序员

架构师训练营第七周作业

丁乐洪

5 千字长文+ 30 张图解 | 陪你手撕 STL 空间配置器源码

herongwei

c++ 源码 内存 后端开发 stl

架构师养成第二课

万有引力

秒懂DHCP是什么

网络技术平台

《Linux就该这么学》PDF版免费下载

计算机与AI

Linux

架构师训练营第11周课后作业

听夜雨

极客大学架构师训练营

程序员入门之路

咸鱼杰克

程序人生

极客时间架构师训练营 1 期 - 第 11 周总结

Kaven

架构师训练营 - 第十一周作业

一个节点

极客大学架构师训练营

架构师训练营 - 第十一周总结

一个节点

极客大学架构师训练营

从华为看VUCA时代如何让组织不断乘风破浪?

Alan

华为 战略思考 组织发展 组织活力

系统性能的主要技术指标以及变化

皮蛋

架构词典:缓存

lidaobing

缓存 架构

架构师训练营第二周学习心得

cc

LeetCode题解:874. 模拟行走机器人,模拟情境,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

阿里开源十亿级并发设计手册:数据库+缓存+消息队列+分布式+维护

Java架构追梦

Java 阿里巴巴 编程 架构 亿级流量

ShardingSphere Raw JDBC 主从示例

Java JDBC ShardingSphere

我膨胀了,测试必要商城小程序,用了3种方式!:)

清菡

App

极客时间架构师培训 1 期 - 第 11 周作业

Kaven

架构师训练营第 1 期第11周作业

业哥

框架设计作业

cc

整天都在讨论使用SpringBoot,可你居然连缓存都不清楚

小Q

Java 缓存 学习 面试 springboot

ShardingSphere Proxy 主从读写 入门使用

Java 主从读写 ShardingSphere

架构师训练营 -week11-总结

大刘

极客大学架构师训练营

喝完可乐桶后程序员回归本源,开源Spring基础内容

小Q

Java spring 学习 源码 面试

Mysql Docker 主从配置

MySQL Docker 主从读写

性能压测的时候,随着并发压力的增加,系统响应时间和吞吐量如何变化,为什么?

落朽

打造 VUCA 时代的 10 倍速 IT 团队

打造 VUCA 时代的 10 倍速 IT 团队

假如编程语言是《权力的游戏》中的角色 (上)-InfoQ