Madame Semver Will See You Now

Madame Semver Will See You Now

塞姆弗夫人(Madame Semver)现在见你

The tent is at the back of the fairground, past the fudge stall. The velvet over the entrance is the exact red of a failed CI badge. Madame Semver is already shuffling when you sit. She does not ask your question. She turns the first card and it says ^1.0.0, just that, black ink on cream. “The caret. It permits everything that comes after, and you put it there yourself, which is the part people forget.” She sets it down. “You came here to ask if you should archive the repository. You will not. We both know you will not. So let me tell you what happens instead.” 🃏

帐篷位于游乐场的后方,走过软糖摊位就能看到。入口处的丝绒帘子呈现出一种失败的 CI 构建徽章特有的红色。当你坐下时,塞姆弗夫人已经在洗牌了。她没有问你想算什么,而是翻开了第一张牌,上面写着 ^1.0.0,仅此而已,奶油色的底色上印着黑色的墨迹。“脱字符(caret)。它允许了之后发生的一切,而这是你自己亲手放上去的,人们往往会忘记这一点。”她放下牌,“你来这里是想问是否应该归档这个仓库。你不会的。我们都知道你不会。所以,让我告诉你接下来会发生什么。” 🃏

She turns three cards in a row and barely glances at them. “In June you receive a pull request. It is polite. It has tests. The tests pass. The code is wrong in a way that costs you most of a Saturday, and at the bottom of the description there is a co-author you cannot find a photograph of. You will merge two more from him before you learn to check.” “In August a stranger opens an issue explaining what your library does. He is mistaken but very sure, and cites a source you cannot argue with. The next week somebody else publishes the package he was describing, under a name one letter from yours, and by September it has the downloads.”

她连续翻开三张牌,几乎没怎么看它们。“六月,你会收到一个合并请求(PR)。它很有礼貌,带有测试,而且测试通过了。但代码的错误方式让你搭进去大半个周六,而在描述的最下方,有一个你找不到任何照片的共同作者。在学会检查之前,你还会合并他提交的另外两个请求。”“八月,一个陌生人开了一个 Issue,解释你的库是做什么的。他错了,但他非常笃定,还引用了一个你无法反驳的来源。下周,另一个人发布了他所描述的那个包,名字只与你的差一个字母,到了九月,下载量就超过了你。”

She turns the Tower, and of course it is the Tower, the tall thing on the tiny base, Nebraska, 2003. She does not explain it because she knows you have it on a mug. “There is a scan in October. The report is long, confident, and formatted beautifully, with severity scores you did not ask for and an executive summary. Eleven of the twelve findings are your own documented behaviour described back to you as flaws. The twelfth is real, which is the only reason you read the other eleven, and the only reason it happens again in November.”

她翻开了“塔”(The Tower),当然是塔,那个底座极小却高耸入云的东西,内布拉斯加州,2003 年。她没有解释,因为她知道你的马克杯上就印着这个图案。“十月会有一份扫描报告。报告很长,语气自信,格式精美,还附带了你没要求的严重性评分和执行摘要。十二个发现中,有十一个其实是你自己文档里记录的行为,却被描述成了缺陷。第十二个才是真实的,这也是你阅读前十一个的唯一理由,也是它在十一月再次发生的原因。”

She turns one more and her hand stops over it. A figure at your gate, helpful, carrying tools. “This one stays. He fixes the small things and asks for nothing and answers the questions you are tired of answering. He is patient in a way you will admire and then, later, look up. In the third year he asks for the keys.” She puts the card face down, which she has not done with any of the others. 🔮

她又翻开一张牌,手停在了上面。牌面上是一个站在你门口的身影,乐于助人,带着工具。“这个人留了下来。他修复小问题,不求回报,还回答那些你已经回答腻了的问题。他的耐心让你钦佩,后来,你会去查他的底细。第三年,他向你要了钥匙。”她把这张牌扣在桌上,这是她之前没有对任何一张牌做过的动作。 🔮

She pushes the deck aside and pulls the crystal ball forward. “Further out. Something with a very long memory has read an old version of your README and will go on recommending a function you removed in March, with total conviction, for about two years. You will add the function back. Don’t look at me like that. You will mark it deprecated, and the warning will be reported to you as a bug.”

她把牌堆推到一边,将水晶球拉到身前。“再往后看。某个拥有极长记忆的东西读了你 README 的旧版本,并会持续两年之久,极其笃定地推荐一个你在三月份就已经移除的函数。你会把这个函数加回来。别那样看着我。你会把它标记为弃用(deprecated),而这个警告会被人当作 Bug 报告给你。”

“There will be a file in your root, all capitals, instructions addressed to no one in particular. It is read more carefully than anything else you have ever written. After a while you find you are writing your other documents in the same voice, and you do not remember deciding to.” “Something in Virginia fetches your tarball eleven thousand times one Tuesday afternoon. It is not an attack. It is somebody’s enthusiasm, running in a circle, and the circle has your name in it. The same month you hire a servant to close the doors you cannot bring yourself to close, and another servant you did not hire arrives to hold them open, and between the two of them a door will open and shut for a year while you watch.”

“你的根目录下会出现一个全大写的文件,里面的指令没有特定的接收对象。它被阅读的仔细程度超过了你写过的任何东西。过了一段时间,你发现自己在用同样的语气撰写其他文档,而你根本不记得自己是什么时候决定这么做的。”“某个周二下午,弗吉尼亚州的某个东西下载了你的压缩包一万一千次。那不是攻击,是某人的热情在循环往复,而那个循环里正好有你的名字。同一个月,你雇了一个仆人去关上那些你狠不下心关上的门,而另一个你没雇佣的仆人却跑来把门撑开。于是,在他们两人的拉锯下,一扇门在你眼皮底下开开关关了一整年。”

She lets go of the ball and the tent is briefly very quiet. “There is a fork. Not soon. The maintainer is tireless and responsive and merges everything within the hour and you will know exactly what he is the moment you see the avatar. A number of people will prefer him.” She almost smiles. “He pins to you with a caret. It permits everything that comes after.”

她松开水晶球,帐篷里短暂地陷入了寂静。“会出现一个分支(Fork)。不会很快。那个维护者不知疲倦、响应迅速,一小时内就能合并所有请求,当你看到他头像的那一刻,你就会确切地知道他是谁。会有不少人更喜欢他。”她几乎露出了微笑,“他用一个脱字符把你钉在了原地。它允许了之后发生的一切。”

The reading has a length, and you have reached it. The board outside lists three tiers, one dollar, five, twenty-five with a small enamel badge. You pay the dollar, which is what everyone pays. “Come back,” she says, holding the velvet aside, “when the next major version comes for you.” She does not say whose.

占卜有时限,而你已经到时间了。外面的牌子上列着三个档位:一美元、五美元、二十五美元(附赠一枚小珐琅徽章)。你付了一美元,这是每个人都会付的钱。“回来吧,”她掀开丝绒帘子说道,“当下一次大版本更新降临到你头上时。”她没说那是谁的版本。