开发者血泪控诉:千星项目被微软“白嫖”!大量代码相似

开发者血泪控诉:千星项目被微软“白嫖”!大量代码相似

文章图片

开发者血泪控诉:千星项目被微软“白嫖”!大量代码相似

文章图片

微软再次被指“抄袭”开源项目 , 这次主角是一个名不见经传的独立开发者 。
微软先是找他谈“合作” , 然后便默不作声地推出了一个类似产品 。 而这位开发者在巴黎的 KubeCon 大会 , 目睹了自己的开源项目被微软抄袭并以新的名称出现了——获得的只有一个致谢 。
他意识到:这个项目其实是微软 fork 了自己的开源项目 。
这段经历在Hacker News上引发了爆炸性的讨论 。

评论区有大量开发者讨论自己被“借用”甚至被“白嫖”的经历——这不只是 Spegel 的问题 , 而是整个开源模式的结构性问题 。

有类似经历的开发者愤慨地强调“Don’t work for free(不要免费干活) 。 ”

“一些专业人士在早期云计算时代就开始做这类工作 。 我当时只是想解决自己的问题 , 也不想把它变成一门生意 , 所以我很乐意以开源软件的形式发布它 。


后来微软一位主管 , 负责多个产品团队的那种 , 联系我说想“合作” 。 我说很乐意 , 不过可以先看看我的咨询协议 。 他们对我的报价有点嘟囔 , 我就直接重申这是我的费率 。 经过一番法律方面的扯皮 , 他们最终签了合同 , 我为他们做了一个两天的研讨会 , 解答了一堆问题 , 然后他们付了钱 。


如果他们真的很想要你 , 他们会付钱的 。 ”
那么 , 这篇博客讲述了怎样的“踩坑”故事 , 开源作者又该如何维护自己的权益?
事件回顾:谈合作后微软推出类似项目 , 与源码大量相似!博客作者Philip Laine所开发的独立项目 Spegel ,是一个旨在解决 Kubernetes 集群中镜像分发瓶颈的开源项目 。
其灵感萌生于Kubernetes 在高并发下拉镜像的仓库宕机问题 ,Spegel通过采用 P2P 分发机制 , 减少了对中心化镜像仓库的依赖 。
当微软主动联系Philip Laine时 , 作者一度非常激动 。 他一度与一位微软工程师保持沟通 , 帮助他们运行 Spegel , 并回答他们提出的架构问题 。
他原本期待微软会对项目有所贡献 , 换来的确实微软方面长久的沉寂 。
直到Philip参加巴黎的 KubeCon 大会 , 才发现“房子塌了” , 他在参与一场关于加速镜像分发策略的演讲时 , 才了解到是微软同样开发了一个 Kubernetes 容器内容的 P2P 分发工具——Peerd 。
而作者收到的只有PPT页尾对他本人和 Spegel 的致谢 , 仿佛微软是在该启发下独立开发的 。
然而 , 作者在深入研究后发现 , 完全不是这么回事!Peerd中的一些函数签名和注释 , 几乎和Philip自己写的一模一样!甚至 , 就连Peerd的一些测试用例都直接来自作者的Spegel项目(作者说 , 而且直到今天这些引用仍然存在) 。
作者无奈地表示 , Spegel 是以 MIT 协议发布的 。 根据该协议 , 允许其他人 fork 和修改项目 , 而不要求他们将改动反馈给原项目 。 作者选择 MIT 协议的原因是协议简单且宽松 。
尽管如此 , 微软在使用其代码时未给予充分署名 , 已经违反了开源社区的道德规范 。 而且Peerd 项目的出现给新用户带来了很多混淆 。
在微软巨大的品牌影响力面前 , Spegel 想要争取自己的一席之地 , 几乎举步维艰 。
不过 , 即使困难重重 , 作者目前仍在坚持维护 Spegel , 项目有 1.7k star、千万次下载 , 并开启了 GitHub Sponsors 。
他正在考虑更换协议 , 也呼吁开发者更谨慎地选择许可 。
微软与开源的历史纠葛:曾称Linux为“癌症” , 购入GitHub成功“洗白”【开发者血泪控诉:千星项目被微软“白嫖”!大量代码相似】其实 , 微软过去在开发者社区里名声很差 。
最典型的莫过于 2001 年 , 时任微软首席执行官史蒂夫·鲍尔默(Steve Ballmer)在接受《芝加哥太阳时报》采访时 , 曾将 Linux 描述为“癌症” , 并表示:“Linux 是一种癌症 , 它在知识产权意义上附着于它所接触的一切 。 ”
他认为 , Linux 所采用的 GNU 通用公共许可证(GPL)具有“病毒性” , 因为它要求所有衍生作品也必须以相同的许可证发布 , 这可能迫使企业将其专有软件开源 。

鲍尔默的这一言论在当时引发了广泛争议 , 被视为微软对开源软件的敌对态度 。
然而 , 随着开源软件的广泛应用 , 微软逐渐了改变立场 。 2018 年 , 微软以 75 亿美元收购了 GitHub , 成为开源社区的重要参与者 。
但是 , 每当博客控诉的事件再次涌现 , 人们还是情不自禁的吐槽——“微软没有变 , 又在干老把戏了 。 ”
开源项目被抄袭的深层矛盾何在?开发者如何避坑?博客作者Philip遇到的抄袭事件并不是孤例 , Spegel 事件揭示了开源社区与大型科技公司之间长期存在的深层矛盾 。
开源许可证(如 MIT 协议)在法律上允许他人自由使用、修改和分发代码 , 甚至用于商业目的 。
然而 , 这种自由也可能被滥用 , 大厂在商业利益的趋势下 , 其行为更容易违背开源社区的道德规范 , 例如将直接将开源项目进行商业化改造等等 。
而独立开发者在面对大型科技公司时 , 往往处于不利地位 , 难以维护自身权益 。 此外 , 独立开发者通常缺乏足够的资源来维持项目的持续发展 , 尤其是在项目被大公司“借用”后 , 原项目的关注度和支持可能会受到严重稀释 。
为避免类似情况的发生 , 独立开发者需要有自己的避坑方法:
首先 , 更谨慎地选择合适的许可证:如上文中提到的 GPL , 可以强制要求衍生项目开源 。
其次 , 可以寻求开源社区支持 , 获得更多的资源:如 GitHub Sponsors等方式获得社区的经济支持 。
最后 , 和大公司合作谈报酬也是开发者的必修课 。 在与企业合作时 , 记得签订正式的咨询或合作协议 , 确保自身权益 。

正如一位在大型科技公司与第三方合作的开发者所言:
“真正让你拿到报酬的过程很简单:对方找他的上级打声招呼说‘可以’ , 然后财务部就能走流程 。 他们不会因为你要报酬就拒绝你——这就是做生意 , 企业就是为服务付钱的 。 如果他们连谈都不谈就拒绝你 , 那他们根本不是真心的 , 和他们合作也不会有好结果 。 ”

    推荐阅读