|
一名開發(fā)者用兩年的業(yè)余時(shí)間開發(fā)并維護(hù)了一個(gè)開源項(xiàng)目 AppGet,項(xiàng)目取得了比較大的成功,并引起了微軟的注意。 不幸的是,微軟在上周的 Build 2020 大會上推出了同樣的項(xiàng)目。最終,這名開發(fā)者只得停止維護(hù)并終結(jié)掉了自己的開源項(xiàng)目,但他給出了一系列的證據(jù)表示微軟在剽竊。 Linux 和 macOS 的開發(fā)者經(jīng)常用包管理器來安裝和管理應(yīng)用,特別是一些需要不同依賴的命令行程序,比起手動(dòng)一個(gè)個(gè)去官網(wǎng)下載代碼編譯要方便高效得多。Linux 系統(tǒng)有一些常見的包管理命令,如 apt-get、yum 或 dnf,而 Windows 在“包管理工具”方面則一直乏善可陳。 為了留住開發(fā)者和 Linux 愛好者,讓 Windows 與 Linux、macOS 使用上差別越來越小,5 月 20 日,微軟在 Build 2020 大會上宣布開源一個(gè)新工具:Windows Package Manager(WinGet),Windows 軟件包管理器。 WinGet 由一個(gè)命令行工具和一組用于在 Windows 10 上安裝應(yīng)用的服務(wù)組成,可以幫助使用者快速輕松地發(fā)現(xiàn)地安裝不同的工具,只需要輸入一個(gè)命令即可:winget install 這次官方發(fā)布的 WinGet 命令行工具可以說是意義非凡。有了它之后,不僅是安裝軟件方便了不少,開發(fā)者在其他操作系統(tǒng)中的習(xí)慣可以延伸到 Windows 上,也能讓 Windows 的工作流更加靈活,特別是通過腳本調(diào)用或者部署軟件都能更加高效。 在 Build 2020 大會之前,微軟官方雖然一直沒有軟件包管理器,但是位于加拿大的凱文·貝吉(Keivan Beigi)早在 2018 年就發(fā)布了一個(gè)開源免費(fèi)的軟件包管理器 AppGet,用以在 Windows 中安裝和更新軟件。AppGet 基本上可以模仿 apt-get 在 Linux 中的工作方式,例如,使用命令 appget install winrar 將在計(jì)算機(jī)中下載并安裝 WinRAR 瀏覽器。 AppGet 開源至今已經(jīng)包含了 1400 多個(gè)軟件包,每個(gè)軟件包都經(jīng)過了驗(yàn)證。并且還擁有相當(dāng)大量的使用者,早已成為 Windows 生態(tài)系統(tǒng)的重要補(bǔ)充。 但是這個(gè)開源項(xiàng)目的結(jié)局并不太好,在微軟發(fā)布 WinGet 之后,AppGet 的作者 Keivan 表示:“將不再從事 AppGet 開發(fā)工作。AppGet 的客戶端與后端服務(wù)將立即進(jìn)入維護(hù)模式,并從 2020 年 8 月 1 日起被永久關(guān)閉。” 更為讓人吃驚的是,Keivan 列舉了一系列證據(jù),表示微軟的軟件包管理器剽竊了他的工作。 一年前,Keivan 在 2019 年 7 月 3 日的時(shí)候收到了微軟高級經(jīng)理 Andrew 的電子郵件,對方要求和 Keivan 見面溝通 AppGet 的發(fā)展。最初他很高興微軟注意到了他的這個(gè)業(yè)余項(xiàng)目,所以馬上答應(yīng)可以在微軟溫哥華分部見面。隨后他和 Andrew 以及 Andrew 產(chǎn)品組內(nèi)的中另一位微軟工程經(jīng)理討論了 AppGet 背后的設(shè)計(jì)思路,以及 AppGet 未來發(fā)展的下一步計(jì)劃。
一周之后,Keivan 再次收到了來自微軟的郵件:
微軟希望 Keivan 將全部精力都放在 AppGet 身上。如果 Keivan 同意,屆時(shí)微軟會決定是否需要調(diào)整 AppGet 的名稱。但在數(shù)次溝通交流過程中,Keivan 都弄不清楚自己將在微軟中得到怎樣的職位,比如職責(zé)是什么、需要向誰報(bào)告等。但微軟方面一直希望 Keivan 能快速移交代碼所有權(quán),雙方在具體方法上沒有達(dá)成共識,于是 Keivan 只能繼續(xù)等待微軟下一步的回應(yīng)。 不幸的是,在接下來的 6 個(gè)月里,他再也沒有收到任何后續(xù)消息。直到上周他聽說微軟將在第二天發(fā)布 WinGet。
WinGet 核心原理、術(shù)語、manifest 格式或者結(jié)構(gòu),就連軟件包 repo 的文件夾結(jié)構(gòu)都跟 AppGet 一模一樣。 Keivan 對這個(gè)結(jié)果也無可奈何,停止維護(hù) AppGet 之后,他表示:“這樣一家市值高達(dá) 1.4 萬億美元的企業(yè)早在多年之前就該做好這項(xiàng)工作。Windows 應(yīng)用商店曾是無數(shù)用戶的噩夢,同樣的事情不該在軟件包管理器身上重演?!倍疫€大方承認(rèn):“無論我在 AppGet 的推廣方面投入多少精力,都不可能讓它像微軟官方解決方案那樣獲得足夠的重視與普及度。我開發(fā) AppGet 不是為了賺錢或者被微軟聘用;相反,我的想法非常簡單——讓 Windows 用戶也能獲得比較正常的應(yīng)用程序管理體驗(yàn)?!?/p> 他說,真正讓他難受的,是整件事情的處理方式。緩慢而低效的溝通速度、永無應(yīng)答的交流對象,最后則是給人沉重一擊的官方公告。客觀上講,WinGet 的大部分設(shè)計(jì)靈感都來自 AppGet,但微軟卻刻意把 AppGet 描述成一個(gè)恰好存在、因此可以順帶一提的管理器方案。相比之下,反倒是其他跟 WinGet 共通點(diǎn)不多的軟件包管理器,在官方公告中得到了更多提及與強(qiáng)調(diào)。 AppGet 是一個(gè)開源項(xiàng)目,遵守了 GitHub 上的開源協(xié)議,也凝聚了這位開發(fā)者兩年多的心血。但得知微軟發(fā)布了相同產(chǎn)品之后,他沒有任何掙扎地直接終結(jié)掉了這個(gè)項(xiàng)目。 有網(wǎng)友評論說不應(yīng)該慣著微軟:“他們閱讀了 AppGet 的代碼,然后將其重寫了。根據(jù)美國版權(quán)法,這是非法的。應(yīng)該去起訴他們!他們要么買斷 AppGet,要么必須取消該項(xiàng)目,解雇從事該項(xiàng)目的每位員工,然后雇用一個(gè)從未見過 AppGet 代碼的全新團(tuán)隊(duì)來遵守法律。” 事實(shí)上,微軟十年前也曾因?yàn)橐M(jìn)軍中國的社交網(wǎng)絡(luò)市場,從而剽竊了加拿大一家名叫“Plurk”的類似微博網(wǎng)站的代碼。Plurk 公開 指責(zé)微軟“公開盜竊代碼、設(shè)計(jì)和用戶界面”,于是微軟在這場公關(guān)危機(jī)中迅速的關(guān)閉了新項(xiàng)目并表達(dá)了歉意。 但也有更多網(wǎng)友表示,Keivan 所經(jīng)歷的不過就是這些大公司的通用策略,比如組織技術(shù)人員與他交流,套取有用信息,然后發(fā)展自己的產(chǎn)品。 雖然很多人支持他發(fā)起訴訟,但也有人并不看好這個(gè)方式: “第一,將 apt-get 的想法應(yīng)用到 Windows 空間,這對個(gè)人項(xiàng)目而言是不利的定位,基本上逃脫不了最終被大型公司的產(chǎn)品所取代的命運(yùn)。對微軟來說,不過就是個(gè)時(shí)間問題,只需看看 VS Code 和 TypeScript。 第二,大公司可以無限期的將訴訟進(jìn)行到底。開發(fā)者個(gè)人屬于弱勢的一方。 第三,首先就不應(yīng)該信任他們,不應(yīng)該跟他們進(jìn)行交流。” 但是不管怎么樣,開源項(xiàng)目 AppGet 還是被終結(jié)了。 參考鏈接: https:///@keivan/the-day-appget-died-e9a5c96c8b22 |
|
|