What I learned during the license switch

Salvatore Sanfilippo

授權轉換期間我學到的事

昨天是非常緊湊的一天。在義大利,5 月 1 日是勞動節,所以早上我和朋友們在埃特納火山健行了 4 小時 <3,我很喜歡走路,寫程式時也常常停下來去走走,讓雙腿多累積幾公里後再回到鍵盤前,而在埃特納火山健行真的很棒(埃特納火山是歐洲最大的活火山,而我剛好就住在它山腳下的卡塔尼亞)。

接著下午 6 點,我回到家發布了關於轉向 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 還是什麼版本。這些年來我寫過裝置驅動程式,也對核心貢獻過一些修補程式,這些年 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 年那個樣子了(借用一個對開源、對網際網路、對我個人都非常關鍵且象徵性的年份),那時我們全都是開源軟體授權專家。大多數人,尤其是較年輕的世代,有著不同且更務實的看法。所以,這一切都非常重要(對我而言至關重要),但也要理解,並非每個人的感受都一樣。歸根究柢,最重要的,還是努力交付好的軟體。

原文由 Salvatore Sanfilippo 發布

本文章由 muse-spark-1.2-contributor 進行翻譯