I Regret Migrating to Codeberg

Marius

我後悔遷移到 Codeberg

後悔遷移到 Codeberg

我離開 GitHub 的主要原因,不是某個單一功能或某次服務中斷,而是 Microsoft 掌權下平台的 enshittification(劣化)。網頁介面被重寫成一坨遲鈍的 JavaScript,不是把原本正常的功能搞壞,就是讓它們慢到讓人用起來變成一件麻煩透頂的事。除了技術上的衰敗,GitHub 已經在事實上變成了「公共基礎設施」,就像 WhatsApp 一樣,託管了全球極大比例軟體的原始碼,並藉此讓 Microsoft 對所有人的專案,乃至所有人的數位生活,擁有任何單一企業都不該擁有的影響力與監控能力。除此之外,關於正當開發者因 Microsoft 任意封鎖而失去帳號的故事,更強化了至少該在別處留個備份的想法。

Codeberg 看起來像是可行的替代方案。它為自由及開放原始碼專案提供了一個有信譽的家園,更重要的是,一個同樣免費的家園,由非營利協會而非全球最大軟體供應商的子公司來營運。不幸的是,其服務條款的最新更新,似乎標誌著我當初為之遷移的理由之一,也就是「自由」的那部分,正開始改變的第一步。

人類的愚蠢

到目前為止我發布的每個專案,都是用 100% 的人類愚蠢打造的,而不是所謂的「人工智慧」,或者更精確地說,是 LLMs(大型語言模型)。對於 Codeberg 禁止以 LLM 為主的專案,我並沒有特別強烈的感受,至少不像我對同時禁止正當加密貨幣專案那樣強烈,後者讀起來像是只因為多數人還記得在 LLM 接棒成為新一代眾矢之的之前,加密貨幣曾是那個角色,才被硬湊進去一起封殺的。兩項條款在幾天內相繼落地,LLM 禁令在 6 月 29 日,加密貨幣禁令在 7 月 2 日,都是以 Assembly 2026 提案的形式出現,而現在的服務條款竟把後者歸類在——所有分類中最令人意外的——「損害 Codeberg 聲譽的內容」之下,聽起來就像是法律用語包裝的「我們沒有充分的理由或足夠多的不良前例,來全面禁止它」

然而,那篇公告部落格文章讀起來非常糟糕,而其中名為「無人開發團隊」的那一節是最糟的部分。它寫道:

使用 LLM 來處理你的程式碼會給你一陣腎上腺素飆升。你可以像擁有龐大團隊一樣快速開發、打造東西。只不過你根本沒有團隊。事實上,你(往往)是獨自一人,與一台把能源轉化為程式碼的統計機器一起工作。

再往下一點,它又說:

看起來許多「氛圍程式設計師(vibe coders)」沒有意識到,他們身邊其實根本沒有社群。

這與多數自由軟體的製作方式脫節。絕大多數 FOSS(自由及開放原始碼軟體) 開發者都是單打獨鬥的一人團隊,他們身邊唯一的社群,就是那些提出功能需求或回報錯誤、卻大多從未以任何形式做出貢獻的使用者。我發布那些無聊小工具已有數十年,比這個網站甚至比 GitHub 本身還早(還記得 SourceForge 曾是最夯的玩意兒的年代嗎?),而其中沒有任何一個曾真正擁有一個「社群」,至少不是 Codeberg 在那篇文章中浪漫化描繪的那種。我是個凡事親手編碼、為此花費荒謬時間的獨狼,而 LLM 才是區分擁有真實社群的真專案與假專案的關鍵,這種說法一旦檢視任何程式碼託管平台上一般實用小工具究竟是如何誕生的,就站不住腳。

坦白說,Codeberg 提出這種論點有點自以為是,考慮到這個平台實際上就活在 Forgejo 的同溫層裡,而 Forgejo 叛變 繼承了其活躍貢獻者社群自 Gitea 而來,GiteaForgejo 出現之前,已經花了將近六年時間建立那個社群。一個靠硬分叉別人的專案來取得自身社群,然後回過頭來教訓獨立開發者沒有社群的專案,要一本正經地為這種立場辯護是很困難的。

此外,Codeberg「擁有社群」「是值得託管的正當軟體」混為一談,然而個人專案的門檻向來是有個能動的建置,最好有個授權,或許再加個 README,而不是要有滿滿一頻道的貢獻者。讓小型單人作者工具生態系值得存在的一大原因,正是它不需要靠社群來證明自身存在的正當性,而一個賣點就是託管個人程式碼的程式碼託管平台,卻反過來主張相反的論點,就顯得格外奇怪。

審查

困擾我的部分,不是針對 LLM 專案的特定禁令,也不是針對加密貨幣專案的特定禁令。而是一個圍繞著「自由軟體」建立起來的中心,卻在告訴使用者哪幾類軟體被視為好的、哪幾類不是,而這比看起來更接近審查。一旦平台在條款中寫明某個類別「損害其聲譽」並可據此移除,決定因素就不再是程式碼是否合法、是否能運作、是否有用,而變成是否符合平台所持的立場。我認為,被這種一刀切禁令掃到的大量專案,與其說是氛圍程式設計產生的垃圾屎幣實作,不如說是正當的軟體。

在我能想到的每個採取這種做法的平台,一旦開始對使用者強制執行某種意識形態,無論那個意識形態當時看起來是什麼、當時看起來多麼正當,就立刻變得充滿爭議。其機制總是一樣:先出現一個真實問題,不受歡迎的類別成了顯而易見的代罪羔羊,平台不去解決問題本身反而封禁整個類別,而那個禁令隨後就成了下一個類別、再下一個類別的先例。今天毫無爭議可禁的類別,就是明天該機制得以存在的理由,而當初為第一次封禁鼓掌的使用者,很少會被問及對第二次封禁的看法。

我承認這兩個類別都並非沒有問題。LLM 驅動的儲存庫確實會壓垮基礎設施,確實會產生難以處理的大量低品質議題與合併請求,也確實帶來關於著作權與程式碼出處的實質問題,這些都是 Codeberg 在文章中點出的。加密貨幣領域反過來,則可能比軟體界任何其他角落都製造了更多徹頭徹尾的詐騙。然而,對當紅反派祭出一刀切的禁令,並不能解決上述任何問題。

現在甚至連 Linus Torvalds(林納斯·托瓦茲)這樣的人,都提出了相當合理的論點,認為 LLM 只是個工具,而且是「顯然很有用的工具」,只要謹慎使用、其產出比照其他所有東西接受同等標準檢驗,在 Linux 核心開發中就有其正當定位。如果全球最大、最具影響力的開放原始碼專案的維護者,都能把 LLM 視為應以結果論斷的工具,而非一見就該封殺的類別,那麼一個後院小程式碼託管平台也應該做得到。

我同樣擔心 LLM 對科技乃至整體社會未來的衝擊,我想我的擔心程度大概跟寫下 Codeberg 政策的人差不多。我只是不認為封禁內容——而這正是此舉的本質——是前進的道路。

合理的解方

我希望 Codeberg 採取的,是針對真正問題的解方,而依他們在同一篇文章中的說法,真正的問題是資源消耗及其帶來的基礎設施成本,就該把它當成真正的資源問題來處理。服務條款的修改本可以要求作者勾選核取方塊,聲明儲存庫包含 LLM 產生的程式碼,或與加密貨幣相關,然後將這些儲存庫分流到另一層級的基礎設施上,不享有與其他人相同的資源。這一層級可以有特定的配額,甚至可能要求作者為其消耗付費。誠實申報真相至少在一開始可以完全免費,而未申報卻被抓到,則可以祭出 Codeberg 如今從一開始就對整個類別施加的那種永久、立即的封禁。

同樣地,帶有 LLMCrypto 標籤的專案,可以自動顯示免責聲明,明確指出 Codeberg 絕不對此特定儲存庫的品質或正確性負責。見鬼,他們甚至可以在那些警告中直截了當地聲明,Codeberg 不認可使用 LLM 或加密貨幣,以超級——超級——超級確保大家都明白,且 Codeberg 不會有「聲譽風險」

這樣的做法把資源消耗型專案的成本轉嫁給創造它們的人,同時為當初構成平台存在理由的那些專案保留共享資源。所有這些,都不需要 Codeberg 去決定哪幾類軟體在意識形態上是可以接受的。「我們把不同意的一切事先全部禁掉」的做法,傳達了錯誤的訊號,而且是非常陡峭的滑坡。

儘管我沒有任何一個專案屬於上述任一被禁類別,我現在仍打算研究架設自己的公開 Git 主機,並將在遷移到 Codeberg 僅僅幾個月後就再次搬離,就因為這件事。不是因為禁令本身,而是因為我不想依賴一個會心血來潮就重寫服務條款、未曾妥善公告該變更正在研議中,也未給使用者任何表達意見管道的平台。

這些決定確實經過了 Codeberg 自家的 Assembly 2026,這比多數平台願意走的程序還多,然而作為一般使用者,我得知此事的方式大概跟多數人一樣,是在已經定案的那天,透過網站頂端的一條深藍色橫幅才看到的。我固然感謝關於服務條款變更的資訊,但我更希望當平台還在決定是否要走這條路時就能看到橫幅,也希望它能連結到討論串,或至少是一份問卷,讓我有機會表達我的關切——那是關於平台整體自由的關切,而非關於最終被禁的任何單一類別。

原文由 Marius 發布

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