速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

  • 2021-02-19
  • 本文字数:2993 字

    阅读完需:约 10 分钟

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

如果 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-02-19 15:058148
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 539.0 次阅读, 收获喜欢 1977 次。

关注

评论 1 条评论

发布
用户头像
kotlin是jetbrains的
2021-03-03 14:22
回复
没有更多了
发现更多内容

网易应用创新开发者大赛成功在杭举办,十强队伍现场比拼

网易云信

人工智能 音视频 直播

蒙娜丽莎Rap的秘密!这个AI算法绝不能错过!!!

百度开发者中心

AI

安全攻防实战系列MSF

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

使用Harbor作为Rainbond默认容器镜像仓库,扩展Rainbond镜像管理能力

北京好雨科技有限公司

和合共赢,DataPipeline与麒麟软件完成产品兼容性互认证

DataPipeline数见科技

中间件 数据库中间件

单库单应用 && 内容分发

空空

架构设计

偷天换日,用JavaAgent欺骗你的JVM

码农参上

字节码插桩 代理 探针 签约计划第二季

目前市面上堡垒机的品牌有哪些?采购时候需要考虑哪些?

行云管家

网络安全 等保 堡垒机 等级保护

Redis 6.X Cluster 集群搭建

码哥字节

redis cluster 签约计划第二季

春松客服入驻Rainbond开源应用商店

北京好雨科技有限公司

2021商业评论管理行动力峰会

大咖说

商业 直播

为什么要做团建TB?(6/28)

赵新龙

28天写作

Python代码阅读(第67篇):获取列表中的去重后的元素

Felix

Python 编程 列表 阅读代码 Python初学者

Redis 的事务支持 ACID 么?

码哥字节

redis 事务 ACID 签约计划第二季

弹性伸缩 && 多机房

空空

架构设计

微服务

空空

架构设计

动图图解GC算法 - 让垃圾回收动起来!

码农参上

垃圾回收 垃圾回收算法 签约计划第二季

Smack库 XMPP Tigase异常SASLErrorException

Changing Lin

12月日更

浅谈Java编译优化之常量折叠技术

码农参上

编译器优化 签约计划第二季

【混合云】部分混合云管理平台大汇总

行云管家

云计算 公有云 混合云 云管平台

编译优化后,for循环中i++和++i究竟哪个效率高?

码农参上

字节码 编译优化 签约计划第二季

即时通讯(IM)开源项目OpenIM本周版本发布-v1.0.6

OpenIM

查询分离

空空

架构设计

热门Scrum敏捷看板工具

顿顿顿

项目管理 Scrum 敏捷开发 研发管理 产品研发

【Promise 源码学习】第十三篇 - Promise.allsettled 和 Promise.any 的实现

Brave

源码 Promise 12月日更

【讲坛实录】知识图谱的探索与应用

星环科技

知识图谱

基于HTML、CSS、JS的小游戏/工具制作过程及完整源码

海拥(haiyong.site)

28天写作 内容合集 签约计划第二季 12月日更 技术专题合集

会用泛型,但你知道什么是泛型的类型擦除吗?

码农参上

Java泛型 签约计划第二季

ipvs localhost 为何不正常

Geek_f24c45

k8s IPVS kube-proxy

多级缓存 && 分库分表

空空

架构设计

AI模型也需要资产管理,星环科技重磅推出AI运营平台MLOps 星环科技 星环科技

星环科技

AI

假如编程语言是《权力的游戏》中的角色 (上)_语言 & 开发_Sajid Lhessani_InfoQ精选文章