維護一個開源專案25年是什麼體驗?

魔術師卡頌發表於2021-06-28

維護一個開源專案25年是什麼體驗?

大家好,我是卡頌。

最近看公眾號後臺使用者資料,關注我的朋友一多半(58%)是26~35歲。

這個年紀,可能已經被社會捶過幾年,對成功一詞有了自己的理解。

雖然不知道什麼樣的人生才是成功的人生,但是有這樣一個開源專案:

  • 開發至今,維護了25年

  • 全球總下載量大概為100億次(全球網民平均每人下載2.5次)

相信你也會同意:這是個成功的開源專案,他就是大名鼎鼎的curl

接下來讓我們看看,是什麼樣的品質才能讓一個專案在歷史的長河中沉澱下來?

結果很可能和你的直覺相反哦~

curl的故事

curl是一款請求資料的命令列工具,支援多種協議。它的名字是client + url的意思(客戶端的url工具)。

作者是Daniel Stenberg

Daniel Stenberg

在90年代初期,正是IRC(一種聊天協議,可以理解為命令列版本的QQ)繁榮的時期。

IRC聊天室

Daniel和朋友開發了一款IRC聊天機器人。接下來,他決定為機器人增加匯率兌換功能

為此,需要通過http Get請求呼叫匯率介面。為了實現這個功能,Daniel使用了一款名為HTTPGet的工具。

單一的公共介面顯然是不可靠的。不久後Daniel又發現了一臺提供貨幣匯率介面的Gopher伺服器,以及一臺FTP伺服器。為此,他必須在原有工具基礎上支援這兩種協議。

隨著支援的協議越來越多,HTTPGet這個名字已經名不副實。於是,Daniel將其改名為curl

在隨後的20多年裡,Danielcurl的實現推廣到全平臺,圍繞獲取資料這一需求,不斷迭代。

這就是curl的故事。

做時間的朋友

不久前Daniel在推上談到:

每天在家人休息後,我會繼續處理curl的工作1~2小時。日積月累,在curl上我大概花了1.5w小時

作家Malcolm Timothy Gladwell在《異類》中提出一萬小時理論

人們眼中的天才之所以卓越非凡,並非天資超人一等,而是付出了持續不斷的努力。1萬小時的錘鍊是任何人從平凡變成大師的必要條件

Daniel作為專家的專業性促成了curl的成功嗎?顯然他並不這麼認為。

在談到curl為何能長期獲得社群認可時,Daniel總結了兩點因素:

一致性

很多庫作者將curl作為底層依賴。他們之所以這麼做,是因為curl做出了一致性承諾,並在漫長的歲月中遵守了這個承諾。

  • curl會不會突然沒人維護了?我承諾了不會,我遵守承諾

  • 這個API會不會突然廢棄了?我承諾了不會,我遵守承諾

如果一個專案在25年間都遵守了承諾,那麼大概率在未來他也是可靠的。

現在很多大廠造的輪子,理念很棒。可一旦需要投入生產時就會讓人犯嘀咕:這會不會是個KPI專案?要是以後沒人維護了怎麼辦?

高速迭代的網際網路,一致性是稀缺的。

沒有天才,只有堅持

很多專案維護者不喜歡新人就拼寫錯誤這樣的問題提PR,認為這是水PR行為。與他們相反,Daniel很鼓勵這種行為。

在他看來,大部分人(包括他自己)都是普通人,沒有誰能一上手就對專案瞭如指掌。從簡單的PR開始是明智的選擇。

可能這個PR糾正拼寫錯誤,下個PR就是修改測試用例,再下一個就是修改專案bug了。

長遠看,成功的專案沒有天才,只有默默堅持的普通人。

強如正義聯盟還有戰力值只有5的蝙蝠俠呢【手動狗頭】

慢下來,一步步來

網際網路真是太快了,薪資長得快,頭髮掉得快,老人淘汰快。

這讓人產生了一個感覺:當碼農就是用命換一筆快錢。

對普通人來說,年薪百萬不是常態,996也不是常態。這些都只是時代背景下,人生歷程的一小站。

如果在網際網路這麼強調精英範的領域,最成功的產品反而是一群普通人、靠漫長的歲月積累起來的。

那我們為什麼不試著和時間做朋友?放下焦慮,你超棒的。

相關文章