唯一有權利決定開源「應該」如何運作的人,是那些管理專案的人,而他們的權利範圍僅限於自己的專案。
僅因為有人將某個東西開源,並不代表他們欠世界改變自己的身份、焦點或付出,例如從發明者變成社群經理。
作為開源軟體的使用者,你並沒有因此擁有任何權利。你沒有權利貢獻,也沒有權利要求功能,沒有權利獲得他人的關注,沒有權利讓你的抱怨被重視,也沒有權利得到這樣的解釋。
如果你對他人有未被滿足的期待,那是你自己的責任。你必須為自己的需求負責。如果你想要什麼,就自己去做。
開源只是一種授權和交付機制,僅此而已。它意味著你可以取得軟體原始碼,並有權使用與修改它。所有與此相關的社會義務,包括「社群驅動開發」的想法,都是近年才出現的神話,與實際運作的情況相去甚遠。這種神話帶有類似教派的色彩,既不支持多樣化的運作方式,也充斥著普遍的社群權利感。
如果你認為 Cognitect 沒有為社群做事,或沒有聆聽社群,那你就是錯的。但你沒有權利要求他們付出你所期望的努力、焦點或回應。我們有權決定如何分配自己的時間和生活。
我們在 Cognitect 每天都必須上班賺錢。我們從 Clojure 沒有任何版稅收入,也不是為了盈利而開發 Clojure。不到 1% 的 Clojure 使用者是我們的顧問或產品客戶,對我們的生計有實質貢獻。
我們將部分收入,原本可以存入退休金,改用來聘請人員全職投入 Clojure 和社群推廣。坦白說,我本可以把這筆錢存入退休帳戶,畢竟我為了創造 Clojure 已經花光了退休金。但我熱愛與團隊一起工作,為我們的成果感到驕傲。
Alex Miller 非常關注並積極參與 Clojure 社群。他、Stu Halloway 和我定期會面討論社群議題。Alex 在我的指導下,將大部分時間用於開發社群功能或評估補丁與錯誤報告。我花大量時間設計這些功能——如 spec、tools.deps、錯誤處理等,這些時間本可以用來賺錢。
我感謝社群的貢獻。每個 Clojure 版本都包含許多貢獻。絕大多數使用者不貢獻,也不想貢獻,這沒問題。開源是一份無條件的禮物,所有參與者都應該認識到這一點。
Clojure 的開發流程並非封閉,但相當保守。我認為這種保守使 Clojure 受益良多,與那些變動頻繁、功能膨脹的專案形成對比。如果你不同意或有其他想法,那也沒辦法。這是我的人生,我不會花時間在網路上爭論或協商。你可以自己寫軟體,自己管理專案。
我們當然可以做得更多,但聲稱核心團隊阻礙了對 Clojure 的有意義貢獻是錯誤的,因為有很多機會:函式庫開發、推廣、培訓、教學、文件撰寫、演講、工具建置等。
當然,也包括核心的補丁。你知道大多數補丁或問題報告缺乏清楚的問題陳述、沒有計畫說明(請閱讀我的程式碼!)、未考慮替代方案、沒有測試、沒有設計,且構思不良或有缺陷嗎?社群在篩選這些問題上扮演重要角色——感謝 Nicola、Ghadi 和其他許多人!
現在正是重新檢視對開源既定印象的時候。創作者的士氣流失是真實存在的。你的既定印象及行為是你自己的責任,我不會為此負責或回應。
如果 Clojure 的運作方式不適合你——這個流程本身孕育了 Clojure——那也無妨。你肯定知道寫軟體的唯一正確方式。但請不要在離開時,帶著自私的宣言燒毀社群。是的,每個人都有權發表意見,但也要顧及公共利益的悲劇。
我鼓勵所有對自己無法做到的事情感到沮喪的人,轉而選擇一件自己能做的正面事務,並付諸行動。
附註:我在 Cognitect 的夥伴和同事並未參與此訊息的討論——我確信他們會勸阻我。這些觀點僅代表我個人。
附註二:我認為絕大多數 Clojure 社群成員都是優秀且正向的。如果你覺得這篇文章不適合你,那它確實不是為你而寫的!