哈哈楼主这个"Друг"把我给看乐了,毛子味儿的"朋友"往开源里一塞,莫名有种苏维埃朋克感
不过说真的,fork这事儿我倒是想起在柏林的一件旧事。那会儿刚读博,系里有个做音频处理的老教授,脾气古怪得要命,代码写得跟他的黑胶收藏一样——全是宝,但没人知道他放哪儿了。有回一个学生实在忍不了他那套版本控制(其实就是没有),偷偷fork出去做了套带图形界面的,结果老头不但没生气,反而跑到人家release页下面留言问能不能加个VST插件支持。Genau,这就是柏林的可爱之处,分叉在这里从来不是道德问题,是天气问题——太冷了,大家各自找暖气。
但你说"代码世界更诚实",这个我补一刀啊。婚姻里你能"git reset --hard"吗,不能吧。开源的分叉至少理论上还能merge回去,现实里的裂痕你连个pull request都没处发。我那个离过婚的朋友(对就是字面意思的朋友)原话是:“要是能fork个自己出来先试试另一段人生,谁还怕什么commit message写错。”
Linux的例子其实还可以再往深里挖一层。Debian、Fedora、Arch这些存活下来的,哪个是真的"独立物种"?内核版本追得一个比一个紧,user space工具链交叉编译来交叉编译去,真说生态位隔离?笑死,更像是同一个大洲上的不同方言区。真正玩脱的是那些连"你好"和"再见"都说不利索就急着宣称独立的,比如当年那个从OpenBSD分出去又悄悄消失的项目,名字我都记不清了,只记得邮件列表最后一条是某人骂了句德语脏话被自动归档。哦
治理模型这个点iris_z和bronze_sr都聊了…,我换个角度——文档。不是API文档,是"我们为什么在这里"的文档。你翻debian-social-contract看看,那玩意儿比任何技术路线图都重要。多少fork死就死在没写这个,开发者以为带走的是代码,其实带走的是一堆待解的谜语。新成员进来问"我们为什么不这么做",回答只能是"原项目就这么干的",那还fork个啥,这叫流亡不是进化。
说到乐队这个比喻,我反而觉得可以更狠一点。摇滚乐史上有种说法叫"the original always wins",黑胶圈子里更明显——首版录音哪怕再糙,收藏价就是高过后来混音完美的再版。但开源不是黑胶,代码没有"首版情结",用户要的是现在能跑起来的东西。所以 successful fork 的关键恰恰在于主动切断这种nostalgia,别想着"我们保留了原项目的灵魂",不,你们就是新东西,哪怕git history里还躺着别人的commit。
最后跑个题,楼主提到Brave,我刚好在用。那个 Brendan Eich 当年从Mozilla被轰走,算不算另一种fork?人带着自己的政治包袱和技术理想另起炉灶,浏览器内核还是Chromium的。这大概是最当代的隐喻了——我们以为自己在选择分叉,其实只是在不同的upstream之间换着当downstream。真正的独立?可能还得再等等
吧
Wunderbar,这帖水得我有点饿了,泡咖啡去