為什麼開源?curl 作者:讓世界變得更美好
筆者今日在瀏覽Stack Overflow的時候,看到有開發者發表了一個這樣的問題—— “ What is the incentive for curl to release the library for free? ”,大意是想知道curl作者為什麼會選擇將其開源並且免費提供。
cURL 是一個利用URL 語法在命令行下工作的數據傳輸工具,於1998年首次發布,支持DICT、FILE、FTP、FTPS、Gopher、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAPS、POP3、POP3S、RTMP 、RTSP、SCP、SFTP、SMB、SMBS、SMTP、SMTPS、Telnet 和TFTP。cURL 的原作者是Daniel Stenberg (目前是 cURL 的核心開發者),同時也是 IETF HTTPbis 工作組的資深成員。

這名開發者表示最近開始在自己的VC++ 項目中使用libcurl,並且了解到curl 和libcurl 不但開源,而且完全免費。他好奇作者這樣做純粹是為了幫助開發者嗎?
沒想到curl 作者本尊Daniel Stenberg 親自現身回答,他詳細解答了這位開發者的疑問。以下內容編譯自Daniel 在問題下的回答。
Daniel 在1998 年創建了curl 項目,他編寫了最初的curl 版本,並創建了libcurl 庫。到目前為止,代碼倉庫包括的24000 次commit 有超過一半是Daniel 本人提交的,他依然是項目的核心開發者。Daniel 表示已將curl 視為自己的孩子。
Daniel 在完成curl 的第一版開發後就將其開源了,和許多開源作者一樣,Daniel 表示之所以選擇開源curl,是因為他使用過很多開源軟件,並從中獲益甚多,而回饋開源世界的最好方式當然就是“開源”,而且他也想跟其他開源作者一樣cool。
因為開源,來自全球各地的成千上萬開發者參與進來一起幫助改進curl,包括項目本身、文檔、網站以及其他的周邊細節。Daniel 認為,如果當初沒有選擇開源,curl 和libcurl 絕對不會有今天的成就。現在的貢獻者名單已超過1900 個名字,並且每年保持新增幾百個名字的速度。
正因為開源和不受限制的使用許可,curl 和libcurl 推出後就被許多產品採用,並被迅速集成到無處不在的操作系統和Linux 發行版上,最終覆蓋的範圍超乎想像。
最後也正因為curl的這種“無處不在”,它被全球各地的所有人使用——從而成為了一個事實上的標準“傳輸庫”。
據統計,curl在全球擁有大約60億的安裝量,它運行在數十億部移動電話、Windows 10設備、遊戲機和電視機上,毫無疑問curl是世界上使用最廣泛的網絡傳輸庫。而這離不開最初創建它的人選擇將它開源。
Daniel 表示不會為curl 選擇一個“合適”的許可證進而向用戶收取費用,過去不會,未來也不會這樣的計劃。
為什麼現在仍參與到curl 的開發中?
Daniel 解釋了自己仍繼續參與開發curl 並免費提供給大家使用的原因(Daniel 表示他不能代表其他的curl 開發成員,每個人都有自己參與到其中的原因,所以下面只是他的個人觀點):
- 我認為這仍然是一件值得去做的事。我為自己所取得的成就感到驕傲,我也真心想讓世界變得更美好,但我覺得curl在這方面做得很少。
- 還要修復bug 和增加新功能!
- 雖然curl 是免費的工具,但我的時間不是,我有一份收入不錯的工作來保證生活。curl 獲得的捐贈足以維持它的發展,並保證它足夠自由和中立而不被任何人和機構所控制。
- curl 作為我的業餘時間項目已有二十年,而投身到 curl 讓我認識到了更多的朋友、改變了我的生活,還把我帶到了我曾以為不會去的地方。
- 如果能重來,我還是會這樣做。
雖然curl 已有矚目的成就,但Daniel 依舊在不斷改進它,修復錯誤、增加功能等,希望能為開發者提供最優秀的文件傳輸解決方案。
二十年來,一如既往地堅持一個項目會累嗎?Daniel 表示這是當然的,偶爾會感到疲倦,畢竟這不是一項輕鬆的工作,而且有時候問題會很困難,而外界的聲音有時也不是那麼友好。但curl 作為他生命的一部分,經歷了困難時刻後,大部分的時光都是很美好的—— 可以和優秀的人共事,而獎勵也不一般:自己編寫的這些代碼參與到了推動互聯網革命發展的進程中。
會有結束的那一天嗎?Daniel 表示curl 永遠不會結束,他認為,到目前為止,開發curl 是他能想像到的最有趣的工作。即使這項工作已經持續了二十年,他仍然這樣認為,併計劃堅持下去。