微软发布新品被指剽窃!交涉无果,两年开源项目被迫终结

news/2024/11/29 22:18:15/

作者 | Tina

“我的开源项目被市值高达 1.4 万亿美元的微软偷走了。”

一名开发者用两年的业余时间开发并维护了一个开源项目 AppGet,项目取得了比较大的成功,并引起了微软的注意。

不幸的是,微软在 Build 2020 大会上推出了同样的项目。最终,这名开发者只得停止维护并终结掉了自己的开源项目,但他给出了一系列的证据表示微软在剽窃。

1 填补空白的官方 Windows 软件包管理器 WinGet

Linux 和 macOS 的开发者经常用包管理器来安装和管理应用,特别是一些需要不同依赖的命令行程序,比起手动一个个去官网下载代码编译要方便高效得多。Linux 系统有一些常见的包管理命令,如 apt-get、yum 或 dnf,而 Windows 在“包管理工具”方面则一直乏善可陈。

为了留住开发者和 Linux 爱好者,让 Windows 与 Linux、macOS 使用上差别越来越小,5 月 20 日,微软在 Build 2020 大会上宣布开源一个新工具:Windows Package Manager(WinGet),Windows 软件包管理器。

WinGet 由一个命令行工具和一组用于在 Windows 10 上安装应用的服务组成,可以帮助使用者快速轻松地发现地安装不同的工具,只需要输入一个命令即可:winget install

这次官方发布的 WinGet 命令行工具可以说是意义非凡。有了它之后,不仅是安装软件方便了不少,开发者在其他操作系统中的习惯可以延伸到 Windows 上,也能让 Windows 的工作流更加灵活,特别是通过脚本调用或者部署软件都能更加高效。

2 已经开源两年的 AppGet

在 Build 2020 大会之前,微软官方虽然一直没有软件包管理器,但是位于加拿大的凯文·贝吉(Keivan Beigi)早在 2018 年就发布了一个开源免费的软件包管理器 AppGet,用以在 Windows 中安装和更新软件。AppGet 基本上可以模仿 apt-get 在 Linux 中的工作方式,例如,使用命令 appget install winrar 将在计算机中下载并安装 WinRAR 浏览器。

AppGet 开源至今已经包含了 1400 多个软件包,每个软件包都经过了验证。并且还拥有相当大量的使用者,早已成为 Windows 生态系统的重要补充。

但是这个开源项目的结局并不太好,在微软发布 WinGet 之后,AppGet 的作者 Keivan 表示:“将不再从事 AppGet 开发工作。AppGet 的客户端与后端服务将立即进入维护模式,并从 2020 年 8 月 1 日起被永久关闭。”

更为让人吃惊的是,Keivan 列举了一系列证据,表示微软的软件包管理器剽窃了他的工作。

一年前,Keivan 在 2019 年 7 月 3 日的时候收到了微软高级经理 Andrew 的电子邮件,对方要求和 Keivan 见面沟通 AppGet 的发展。最初他很高兴微软注意到了他的这个业余项目,所以马上答应可以在微软温哥华分部见面。随后他和 Andrew 以及 Andrew 产品组内的中另一位微软工程经理讨论了 AppGet 背后的设计思路,以及 AppGet 未来发展的下一步计划。

Keivan,

我是 Windows App Model 工程团队的负责人,主要管理应用程序部署方面的工作。首先,我要感谢您在 appget 开发方面投入的心力——它已经成为 Windows 生态系统中的重要补充,降低了 Windows 开发者们的工作难度。我们接下来几周计划在温哥华与其他几家公司会面,如果届时您恰好有空,我们也希望能跟您和您的团队直接交流,聊聊怎么推动 appget 更好地发展下去。

一周之后,Keivan 再次收到了来自微软的邮件:

Keivan,

很高兴认识您,并了解到关于 appget 的更多信息。我们正在为您规划一条新的发展道路。如您所知,我们一直非常重视 Windows 系统上的软件包管理工具,也希望在这个领域中有所建树。我们的团队正在成长,当前的一大目标就是建立起专项小组,确保 Windows 上的软件包管理器与软件分发功能得到显著改善。这也许将给 Windows 平台上的软件分发方式带来重大改进,机会难得哦(至少在我看来,这确实是个好机会)。这项工作,有望定义 Windows 乃至整个 Azure/Microsoft 365 生态中的未来应用程序分发方式。

有鉴于此,您有没有考虑过在 appget 身上投入更多时间和精力,甚至直接加入我们微软?

微软希望 Keivan 将全部精力都放在 AppGet 身上。如果 Keivan 同意,届时微软会决定是否需要调整 AppGet 的名称。但在数次沟通交流过程中,Keivan 都弄不清楚自己将在微软中得到怎样的职位,比如职责是什么、需要向谁报告等。但微软方面一直希望 Keivan 能快速移交代码所有权,双方在具体方法上没有达成共识,于是 Keivan 只能继续等待微软下一步的回应。

不幸的是,在接下来的 6 个月里,他再也没有收到任何后续消息。直到上周他听说微软将在第二天发布 WinGet。

Keivan,

您好,祝您和您的家人一切顺遂——跟美国比起来,加拿大对 COVID-19 疫情的控制还比较到位。

我很遗憾地知会您,上次商议的雇用事宜没能解决。但我们仍然非常感谢您的意见与建议。我们一直在开发 Windows 软件包管理器,而且首个版本将在明天正式发布。我们在相关博文中也提到了 appget,微软希望 Windows 平台上能够有多种不同软件包管理器的生存空间。我们的软件包管理器同样基于 GitHub,但其中也包含自己的实现成果。这个项目将保持开源,我们期待着您能够为它带来宝贵的贡献。

在明天项目上线之后,我打算再跟您聊聊微软的这款软件包管理器。但在此之前,项目本身还是完全保密的,因此请您不要向他人透露。

祝好

Andrew

WinGet 核心原理、术语、manifest 格式或者结构,就连软件包 repo 的文件夹结构都跟 AppGet 一模一样。

Keivan 对这个结果也无可奈何,停止维护 AppGet 之后,他表示:“这样一家市值高达 1.4 万亿美元的企业早在多年之前就该做好这项工作。Windows 应用商店曾是无数用户的噩梦,同样的事情不该在软件包管理器身上重演。”而且还大方承认:“无论我在 AppGet 的推广方面投入多少精力,都不可能让它像微软官方解决方案那样获得足够的重视与普及度。我开发 AppGet 不是为了赚钱或者被微软聘用;相反,我的想法非常简单——让 Windows 用户也能获得比较正常的应用程序管理体验。”

他说,真正让他难受的,是整件事情的处理方式。缓慢而低效的沟通速度、永无应答的交流对象,最后则是给人沉重一击的官方公告。客观上讲,WinGet 的大部分设计灵感都来自 AppGet,但微软却刻意把 AppGet 描述成一个恰好存在、因此可以顺带一提的管理器方案。相比之下,反倒是其他跟 WinGet 共通点不多的软件包管理器,在官方公告中得到了更多提及与强调。

3 AppGet 终结之日

AppGet 是一个开源项目,遵守了 GitHub 上的开源协议,也凝聚了这位开发者两年多的心血。但得知微软发布了相同产品之后,他没有任何挣扎地直接终结掉了这个项目。

有网友评论说不应该惯着微软:“他们阅读了 AppGet 的代码,然后将其重写了。根据美国版权法,这是非法的。应该去起诉他们!他们要么买断 AppGet,要么必须取消该项目,解雇从事该项目的每位员工,然后雇用一个从未见过 AppGet 代码的全新团队来遵守法律。”

事实上,微软十年前也曾因为要进军中国的社交网络市场,从而剽窃了加拿大一家名叫“Plurk”的类似微博网站的代码。Plurk 公开指责微软“公开盗窃代码、设计和用户界面”,于是微软在这场公关危机中迅速的关闭了新项目并表达了歉意。

但也有更多网友表示,Keivan 所经历的不过就是这些大公司的通用策略,比如组织技术人员与他交流,套取有用信息,然后发展自己的产品。

虽然很多人支持他发起诉讼,但也有人并不看好这个方式:

“第一,将 apt-get 的想法应用到 Windows 空间,这对个人项目而言是不利的定位,基本上逃脱不了最终被大型公司的产品所取代的命运。对微软来说,不过就是个时间问题,只需看看 VS Code 和 TypeScript。

第二,大公司可以无限期的将诉讼进行到底。开发者个人属于弱势的一方。

第三,首先就不应该信任他们,不应该跟他们进行交流。”

但是不管怎么样,开源项目 AppGet 还是被终结了。

参考阅读:

https://medium.com/@keivan/the-day-appget-died-e9a5c96c8b22

往期推荐为避免种族歧视,谷歌Chrome将不再使用“黑名单”等词 | 文末送书为什么 Linux 默认页大小是 4KB一篇有趣的负载均衡算法实现直面Java第324期:什么是Java dump?深入并发第013期:拓展synchronized——锁优化如果你喜欢本文,
请长按二维码,关注 Hollis.转发至朋友圈,是对我最大的支持。点个 在看 喜欢是一种感觉在看是一种支持↘↘↘

http://www.ppmy.cn/news/696286.html

相关文章

openttd架设服务器_Linux游戏评论:OpenTTD

openttd架设服务器 几个月前,我的一个朋友向我介绍了OpenTTD ,这是一个开源(GPLv2)运输计划模拟器游戏。 适用于Android,我在手机上短暂打开了游戏,发现在5英寸的屏幕上使用该界面有些困难。 我的朋友建议在…

html语言中的表单元素,HTML5中的表单元素有哪些

摘要 腾兴网为您分享:HTML5中的表单元素有哪些,指南针,之了课堂,云端学习,易视云3等软件知识,以及挣钱花,猎豹浏览器本,移动彩铃,豆瓣音乐,mine,dnf雪人像素头…

JS笔记

js概念 什么是js js是一种基于对象和事件驱动的解释性脚本语言. 基于对象: js可以使用自己创建出来的对象 事件驱动: 由事件去触发的 解释性: 编译性来说, 不需要进行编译打包,浏览器可以直接识别 跨平台性: 只要有浏览器就可以识别执行 组成部分: ​ ECMAS…

个人目标——娱乐篇(持续更新)

罗素曾说:让自己拥有一种热情(Zest),这种热情可以是某种爱好,也可以是某种兴趣。一个人的兴趣越广泛,所拥有的快乐的机会就越多。即使失去了某一种兴趣,依然可以转向另一种。 兴趣与获取快乐的多…

vue PC端完成电子签名

最近接到一任务,有一个功能,重来没有遇到过。就是电子签名 看了原型其他基本都是对接口、写表单,难度不大,先把电子签名给攻克了起。 因为项目是vue 所有使用了 vue-esign 组件 1. 安装依赖 npm install vue-esign --save2.使用…

论文分享 --> 数据挖掘

本次要分享的论文是 cikm2014论文 Modeling Paying Behavior in Game Social Networks,本论文由 腾讯公司和 清华大学联合出品,深入探讨了 如何挖掘 游戏数据中的 高潜付费玩家,详细分析了 免费玩家 向 付费玩家转化规律。虽然本论文所提模型…

macOS与Linux:您应该知道的 5 个主要区别

目录 macOS与Linux:您应该知道的 5 个主要区别macOS 和 Linux 的简史开源与专有软件软件管理命令行突出桌面环境多重分布的概念Linux 与 macOS:最佳之战 macOS与Linux:您应该知道的 5 个主要区别 macOS 和 Linux 都是很棒的操作系统。它们都…

macOS 与 Linux: 5 个主要区别

macOS 和 Linux 都是很棒的操作系统。它们都受到 Unix 的启发,并且十分稳定。尽管这两个操作系统有很多共同点,但它们在自己的方式上是独一无二的。让我们来看看 macOS 和 Linux 之间的一些关键区别。 macOS 和 Linux 的简史 macOS 和 Linux 的主要部分是…