我写代码写到一半,突然被朋友问住了
上周二晚上,我正对着golang的一个接口调试,朋友突然微信发来一句:“东京奥运会到底是什么奥运会?我看网上有人说它是‘史上最特殊的一届’,还有人说它‘根本不算奥运会’。”我愣了一下,手里的代码都没心思改了,说真的,作为一个写了好几年Go的程序员,我脑子里第一个反应是:这事儿得拆成几个结构体来分析,别笑,我的思维方式已经被golang给“结构化”了。东京奥运会,它到底是什么?答案远比你想象的复杂,而且可能跟你听说的完全不同。
它是一届“2020年举办的2020年奥运会”——但这不是文字游戏
如果你打开golang的time包,你会知道时间这东西可以被精确到纳秒,但人类对时间的理解从来不是线性的,东京奥运会的官方名称叫做“Games of the XXXII Olympiad”,也就是第32届夏季奥林匹克运动会,它本应在2020年7月24日到8月9日举行,但你我都知道,它最后是在2021年7月23日到8月8日举行的,它既是2020年的奥运会,又是2021年举办的奥运会,这听起来像个bug,但在现实世界里,这是一个被COVID-19疫情强行压出来的“补丁”。

它是一届差点被取消的奥运会
在奥运会124年的现代历史上,只有三届被取消:1916年(一战)、1940年(二战)、1944年(二战),还有几届因为战争或政治原因被抵制过,但从来没有一届因为疫情被推迟,东京奥运会是第一个,2020年3月24日,国际奥委会和日本政府宣布推迟,那天我在写一个并发下载的程序,看到推送消息时,代码里跑着的goroutine突然让我觉得——连goroutine都能优雅地处理超时和取消,人类的大型事件反而做不到。
它是一届“零观众”的奥运会
| 类别 | 往届常规奥运会 | 东京奥运会 |
|---|---|---|
| 现场观众 | 数万至数十万 | 基本为零 |
| 运动员入场 | 满场欢呼 | 只有工作人员和媒体 |
| 志愿者数量 | 约8-10万 | 缩减至约5万 |
| 转播方式 | 传统电视+网络 | 大量线上流媒体 |
我查了国际奥委会的官方数据,东京奥运会97%的场馆没有观众,只剩下少数几个场次允许极少量观众,但后来因为紧急事态宣言,又全部取消,你想想,一个运动员苦练四年,甚至五年(因为推迟),结果站上赛场时,听到的是自己的呼吸声和裁判的指令声。没有掌声,没有呐喊,没有国旗挥舞的声浪。 这种“寂静的奥运”,是之前任何一届都无法想象的。
用golang的语境来说,它是一届“并发数极高但资源极度受限”的奥运会
我写Go的时候,经常要考虑goroutine的数量和channel的容量,东京奥运会的组织方,实际上在面对一个超级复杂的并发系统:
- 33个大项,339个小项:这是史上项目最多的一届奥运会之一
- 约11000名运动员:来自206个国家和地区(包括难民代表团)
- 43000多名工作人员和志愿者
- 数十亿电视观众和网络用户
但这些数字背后,是一个被严重压缩的“资源池”,运动员被要求每天核酸检测,限制社交距离,不能随意外出,奥运村本来应该是个欢乐的社区,结果变成了一个“严格管控的闭环泡泡”,我写Go的时候,如果某个函数出了问题,我会用defer做清理,东京奥运会的组织方,大概每天都在跑一个巨大的“defer”函数——随时准备取消、调整、回滚。
它是一届“被骂得最惨但也最顽强”的奥运会
说实话,我查资料的时候,发现日本本国民众对奥运会的支持率一度跌到10%以下,2021年5月,共同社的民调显示,超过80%的日本受访者认为“应该取消或再次推迟”,东京都的医师协会甚至公开表示“医疗系统已经崩溃”,但你看看后来发生的事:
- 日本选手在柔道、滑板等项目上拿了大量金牌,整个国家的情绪开始转变
- 池江璃花子(白血病康复后重返赛场)的故事,让无数人流泪
- 苏炳添在男子100米半决赛跑出9秒83,亚洲纪录,所有人都疯了
奥运会这个东西,它有某种golang里“defer”都处理不了的魔力。 你可以在理智上讨厌它、反对它、觉得它不该办,但当那个开幕式上烟火升起、当运动员站在领奖台上咬着金牌、当世界各国的国旗在东京新国立竞技场飘扬时,你会发现自己眼眶还是湿的。
再具体一点:从三个“费曼式”的维度,搞懂它到底是什么
费曼说过,如果你不能简单地解释一个东西,说明你没有真正理解它,那我就用三个最直白的话,告诉你东京奥运会是什么:
它是一个“时间错位的奇迹”
想象一下,你写了一个golang程序,跑了两个goroutine,一个goroutine在睡1秒后打印“2020”,另一个在睡3秒后打印“Olympics”,结果因为一个全局锁的问题,第一个goroutine被阻塞了整整一年,2020”和“Olympics”最后在2021年才同时打印出来。东京奥运会就是那个被阻塞了一年的goroutine。 它被推迟了365天,但最终还是跑出来了,那个“全局锁”叫做COVID-19。
它是一个“经济账本上的沉重数字”
日本政府为了这届奥运会,前后投入了超过1.6万亿日元(约合150亿美元),这其中包括了延期带来的额外成本(约2940亿日元)、防疫措施的费用(约1000亿日元)、等等,但门票收入呢?原本预计是900亿日元,最后因为无观众,几乎归零,旅游业、酒店业、餐饮业的损失更是天文数字,东京奥运会是一届赔钱赔到家的奥运会,但日本政府为什么还是咬牙办了?这个问题我们也得承认——有些东西不是用钱来衡量的。 一个国家的信誉、国际形象、以及“我承诺了就要做到”的执着,这些在经济学模型里很难建模,但在现实世界里很沉重。
它是一届“让运动员变成哲学家”的奥运会
你见过运动员在采访里说“能站在这里就已经赢了”吗?在东京奥运会上,这种话出现得特别多,因为每个运动员都清楚,他们能来参赛本身就已经是史诗级的经历了。
- 西蒙·拜尔斯(美国体操名将)在团体赛中途退赛,说“我需要关注自己的心理健康”,这在以前会被骂成懦夫,但这次,大多数人都说“她做得对”
- 杜兰特(美国男篮)带着一支临时拼凑的队伍,打出了七连胜,每一场都像在打总决赛
- 谢震业(中国短跑)在200米预赛跑出个人赛季最佳,但他说“这届奥运会的意义已经超越了成绩”
这种“存在即胜利”的氛围,是往届奥运会里不太能感受到的,它有点像你在golang里调了一个复杂的接口,最后它返回了,哪怕数据格式不对,你也觉得很爽——因为至少它没崩。
说到这个份上,你可能还是觉得它“不像奥运会”
我懂你的意思,一个没有观众的奥运会,就像一首没有听众的交响乐,一场没有观众的足球赛,国际奥委会主席托马斯·巴赫说,这是“史上最艰难的一届奥运会”,但我说句大实话:它也是最真实的一届奥运会。 因为当所有外部的喧嚣都消失了,剩下的只有运动本身。
你想想,平时看奥运会直播,观众席上的欢呼声、鼓掌声、甚至是嘘声,都在影响你看比赛的情绪,但在东京,你只能听到:
- 击剑场馆里剑与剑碰撞的清脆声
- 举重台上杠铃砸地的沉闷声
- 跑道上的脚步声——因为没人喊“加油”,你甚至能听到运动员的呼吸声
- 乒乓球拍的击球声,像心跳一样规律
这种感觉很诡异,但也很纯粹,我在写一个爬虫程序时,如果关掉所有的日志输出,只留下最核心的数据流,那才是程序的本质,东京奥运会,就是那个关掉所有日志、只留下运动本身的程序。
它是一届“我已经办完了,其他你们随意说”的奥运会
现在回过头看,东京奥运会已经结束快四年了(写这篇文章时是2025年),人们对它的评价依然两极分化:有人觉得它是人类团结的象征,有人觉得它是劳民伤财的典型案例,但我觉得,哪一派说的都对,也都不完全对。
它是一届被疫情撕裂、被争议包围、被质疑贯穿整个周期的奥运会。 但它最后还是办成了,没有演变成超级传播事件(这一点国际奥委会的数据确实撑得住:奥运村内的阳性率极低),没有中途取消,没有发生重大安全事故,它就像一个用golang写的老旧系统,满屏幕的警告和错误日志,但在最后关头,它成功了。
我写这篇文章的时候,旁边还放着当时东京奥运会的开幕式视频截图,那个穿着白色衣服的运动员代表,戴着口罩,看着空无一人的体育场,那个画面真的很安静,安静得像你深夜一个人敲代码时,显示器左上角跳动的光标。
回到最开始的问题:东京奥运会是什么奥运会?
它就是——把不可能变成了能,哪怕过程很丑,结果也不算完美,但它的确在人类历史上刻下了一个深深的、永远不会被抹去的印记。 不管你喜欢它还是讨厌它,它的确发生了,而且它是独一无二的。
至于以后还会不会有这样的奥运会?我猜,永远不会了,有些事,只会发生一次。
就像你写的第一个golang程序——后来回头看,觉得写得真烂,但你就是舍不得删。
(完)
本文来自作者[kyadmin]投稿,不代表678体育 - 全网热门体育赛事高清直播平台立场,如若转载,请注明出处:http://www.hitsoundcaraudio.com/ly/1442.html
评论列表(4条)
我是678体育 - 全网热门体育赛事高清直播平台的签约作者“kyadmin”!
希望本篇文章《东京奥运会是什么奥运会?用golang的思维聊明白这个事儿》能对你有所帮助!
本站[678体育 - 全网热门体育赛事高清直播平台]内容主要涵盖:678体育,678体育官网,678赛事直播
本文概览:我写代码写到一半,突然被朋友问住了上周二晚上,我正对着golang的一个接口调试,朋友突然微信发来一句:“东京奥运会到底是什么奥运会...