文/一个在技术论战里看够了对骂的人
技术圈子有一个很有意思的现象——程序员们在网上吵起架来,那架势比什么饭圈都猛。
前端框架之争,React派和Vue派能互喷好几百楼。语言之争,Java和Go的支持者互相嘲讽对方的代码啰嗦。编辑器之战,Vim和Emacs的老用户至今还在用”圣战”这个词形容他们的关系。数据库、操作系统、测试框架、代码风格,任何技术层面的东西,都能分裂成若干派别,大家各占一个山头,老死不相往来。
但我注意到一个非常奇特的现象:无论你在哪个派别、无论你支持什么技术、无论你用什么语言——当你提到”Hello World”的时候,所有人的态度都是一致的,没有任何分歧。
没有人说”Hello World是React派的””这个写法是Go派的””Java的Hello World比Python的高级”。所有人都觉得,Hello World就是那行字,所有人都写过,所有人都承认它的存在,没有人争论它该不该存在、该长什么样。
在这个被技术立场撕裂的世界里,Hello World大概是唯一一个”所有人都在同一页上”的东西。它不站队,不选边,不被任何技术派别占有。它属于所有人,或者说,它不属于任何人。
那些吵得不可开交的技术群里,只有Hello World能让所有人安静
我加入过很多技术社区群,里面最常见的一种场景就是”吵架”。从”微服务好还是单体好”到”Rust会不会取代C++”,从”云原生是不是过度设计”到”AI会不会取代程序员”。每个话题都能激起两拨人,各执一词,谁也说服不了谁,群里的消息记录动辄上千条。
但有一种情况会让整个群突然”休战”——有人发了一句:”我刚写了第一个Hello World,入坑了。”
然后整个群的画风就变了。刚才还在吵架的两个人,会同时回复”恭喜入坑””欢迎””第一条路开始了”。那些激烈的争论瞬间消失,所有人回归到同一种情绪里——”我们都从这个起点过来的,我们都记得那种感觉”。
不管你是写了二十年代码的架构师,还是刚学了三天的菜鸟;不管你用的是C++还是Python,不管你是在AWS上部署还是在本机跑——当话题回到Hello World的那一瞬间,所有的区别都被抹平了。大家共享的是同一段记忆,同一种体验,同一个起点。
好像你的技术选择可以不同、立场可以不同、观点可以不同,但你的”起点”跟所有人一样。在那个起点上,没有派别之分。
不同语言的Hello World文档,暴露了那个生态的”温度”
我后来发现,Hello World虽然内容一致,但不同语言的官方文档是怎么”教你写Hello World”的——这个细节很有意思。
有的语言,官方文档第一页就是”Hello, World!”,下面配了详细的安装说明、环境配置指引、常见问题解答。它的Hello World页面写满了”你可能会遇到这个问题””如果报了这个错,请检查那个配置”。你能感觉到写文档的人一直在想着”有人在第一次试,他们可能会卡住,我要帮他们提前化解”。
有的语言,官方文档第一页也是”Hello, World!”,但下面只有代码,没有任何安装指引。默认”你已经有了环境,你已经知道了怎么配”。新手打开之后,可能连第一步”怎么新建文件”都不知道,只能关掉页面换一个教程。
这两种Hello World的”呈现方式”天差地别。前者在说”欢迎你,我知道你是新来的,我来接你进门”。后者在说”你应该已经在了,自己开始吧”。
这个差异,跟语言的”生态温度”直接相关。一个生态对新人友好的程度,第一页的Hello World文档写得清不清晰,基本就能看出来。它不需要你深读整个文档,只需要看那一页——如果那页是”愿意把你当新人对待”的,整个生态大概率也是温暖的。如果那一页默认”你什么都懂”,那新人进去之后遇到困难也大概率找不到人帮忙。
所以Hello World不只是代码,它还是一个”温度计”。你测一个编程生态的”入门温度”,就看它怎么对待那句问候。
你的技术标签再多,Hello World面前没有标签
我在技术社区里观察过一些”吵得很凶”的人。他们在不同的帖子下面跟人论战,有时候言辞挺激烈的。但如果你翻他们的早期发言记录——几乎所有人,在进入这个行业的最初期,发的第一条帖子都是”Hello World跑通了”。
那时候他们还没有技术立场,没有框架偏好,没有语言之争。他们只有一个身份:一个刚让计算机输出了一行字的人,一个还在兴奋状态的人。那个状态里的他们,跟今天被各种标签”包裹”起来的他们,判若两人。
我有时候觉得,每个程序员心里都有一个”最早的自己”——那个在终端前兴奋地看到”Hello, World!”的自己。那个自己还没有被各种技术立场”染色”,还不知道什么是”Java vs Go”,还不知道”云原生”和”微服务”是什么意思。那个自己只有一个念头:这东西活了,太有意思了。
后来你学了更多东西,有了自己的偏好,开始在某些话题上有强烈的立场,开始在网上跟人争论。但那个”最初的自己”一直还在那里,它不参与任何争论,它只是安静地记得那个晚上。
当你跟别人因为技术立场争得面红耳赤的时候,如果突然想起那个最初的自己,想起你和他/她其实都是从同一行代码开始的——你会发现你的立场没那么坚定了。
那个从不站队的程序,凭什么成为所有人的公约数
技术世界是被”分裂”驱动的——新的语言替代旧语言,新的框架挑战旧框架,新的架构否定旧架构。分裂是这个行业的常态,每一代人都在试图推翻上一代人的东西。
但Hello World不被任何一代人”推翻”。它是所有”推翻”的起点。无论你是推翻旧框架的人,还是维护旧框架的人,你都是从”Hello, World!”开始写的。你站在哪一边,不影响你曾经写过它。
它不站队,因为它在所有的”队”出现之前就已经存在了。它出现在C语言时代,经历了无数语言、框架、范式的更迭,但它本身没有被任何”时代”所占有。它不属于任何一个时代的”主流”,也不属于任何一个时代的”反主流”。它就是它自己,穿越所有时代。
所以当技术圈的所有派别都在争论谁”更正确”的时候,Hello World是一个所有人都承认的”公约数”。它不偏向Java也不偏向Python,不看好微服务也不站队单体架构,不支持云原生也不留恋物理机。它就是那一行字,所有人都能对齐的那一行字。
在你跟人争论”什么才是好的技术”的时候,如果你们都能停下来想一想——我们都是写过同一行字的人,我们都是从同一个起点出发,只是走到了不同的方向——那么那个争论就没那么绝对了。
那个”公约数”很小,只有一行字。但它足够把所有人连在一起。哪怕只有一瞬间。
那句话是:你好,世界。
我们都对同一个”世界”说过,那句话把我们串在了同一条时间线上。技术派别有很多,但这个”世界”就一个。