首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

开发者哭诉:微软“吞掉”我的千星开源项目!代码高度雷同,测试用例直接照搬!开源合作如何避雷?网友疾呼:别给大厂免费“搬砖”

微软再次被指“抄袭”开源项目,这次主角是一个名不见经传的独立开发者。

微软先是找他谈“合作”,然后便默不作声地推出了一个类似产品。而这位开发者在巴黎的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等方式获得社区的经济支持。

最后,和大公司合作谈报酬也是开发者的必修课。在与企业合作时,记得签订正式的咨询或合作协议,确保自身权益。

正如一位在大型科技公司与第三方合作的开发者所言:

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

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O_7-CfEMuLnVWkF1FPvUbqLQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券