這次授權轉換中我學到的事
原文由 Salvatore Sanfilippo 于 發布,訂閱此部落格
昨天是非常緊湊的一天。5 月 1 日在義大利是勞工節,所以早上我和朋友們去埃特納火山健行了四個小時 <3,我很喜歡走路,寫程式時也常會暫停下來去走一走,再回到鍵盤前,腿上又多了幾公里的里程,而在埃特納火山健行真的很棒(埃特納火山是歐洲最大的活火山,而我剛好就住在它山腳下的卡塔尼亞)。
到了下午六點,我回到家發表了關於改用 AGPL 授權的部落格文章,然後開始關注各方的留言、回饋和私訊,在這個過程中學到了幾件事。
1. 撇開少數幾條在我看來確實有差異的條款不談,AGPL 和 SSPL 最主要的差別在於 AGPL 是「被理解的」。整體來說,昨天我第一次意識到,談到授權時,重點不只是你能做什麼、不能做什麼,還有這個授權被理解、被驗證、被採用的程度……
2. Simon Willison 針對這件事寫的話讓我很感動(https://simonwillison.net/2025/May/1/redis-is-open-source-again/),因為很奇妙的是,不同的人,生活在世界不同的角落,卻因為年紀相仿、有著相似的軟體背景,對事情的感受竟會如此相似。我在寫 Vector Sets 的時候也是這樣想的:如果它不是要用 AGPL(或其他我理解的開源授權)來發布,我自己根本就不會想用它。這種心情,只要在社群中有為數不少的人都有,最終就會讓開源在當今如此複雜的軟體環境中依然勝出。
3. 大家還是很在意軟體發行版。不是說我不在意,只是過去我在這上面吃過虧。我是很早期的 Linux 使用者,用的是 SlackWare 3.1 之類的版本。這些年來我寫過驅動程式,也為核心貢獻過一些 patch,這些年 Debian 上大概有十來個我寫的東西被打包,從 hping、Visitors 網站日誌分析工具、dump1090、Redis,還有其他幾個。但到後來,我開始看到各種碎片化、某些流程的僵化(比如 Linux 核心模組的二進位相容性)、缺乏一致的設計、也沒有一種能把所有函式庫都包在一起的二進位發行格式等等。於是我在桌機上改用了 MacOS,在伺服器上則繼續以非常務實的方式使用 Linux,很多時候反而更樂意直接「tar xvzf software.tgz; make」,而不是依賴發行版提供的東西。或許,我對於發布零依賴軟體的執著也跟這有關。但大家還是很在意這件事,而且在許多希望盡可能做到自動化、可重現的情境下,讓 Redis 以發行版套件的形式存在或許真的很重要?現在就有不少人在問,Redis 是否會重新回到各大發行版中。
我對這件事的看法很簡單:Redis 和 ValKey 已經在相當程度上分道揚鑣,未來差異只會更大。我認為發行版應該兩者都收錄,讓使用者有選擇,有時這個選擇甚至是被功能差異所決定的。舉個最簡單的例子:如果你需要做向量相似度搜尋,你就得用 Redis;反之如果你的公司有禁止使用 AGPL 的政策,你就得用 ValKey,諸如此類。
4. 大家對我很友善。在各處的留言中確實有一些比較嚴厲的看法,但這很正常,甚至是健康的(畢竟這也是為什麼越來越多公司認為他們不能使用 SSPL 或其他非 OSI 認可的授權的原因之一)。不過,當大家直接對我發言時,我看到的大多是溫暖的話語。我只想說:謝謝你們。
5. 我們多少都活在同溫層裡。在某個論壇上,有人突然問:「但你有從 Redis 換到哪個分支過嗎?」底下就出現一串回覆:「從來沒有」、「能用就好,誰在乎」之類的。這對 ValKey 來說也是一樣,如果大家打了 apt-get install redis,結果裝進來的是 ValKey,而他們只是用用 SET、GET、DEL 等幾個指令,其實根本不在乎。我的意思是,軟體已經不再是 1998 年那個樣子了(借用一個對開源、對網路、對我個人都至關重要且具象徵性的年份),那時候我們人人都是開源軟體授權的專家。大多數人,尤其是較年輕的世代,有著不同且更務實的看法。所以這一切都很重要(對我而言至關重要),但也要理解,不是每個人的感受都一樣。歸根究柢,最重要的,還是努力做出好的軟體。
隨機一篇部落格
留言
登入後參與討論