我是怎麼做開源的

發表於2012-05-25

| 2012-05-25 10:36   收藏: 1 分享: 2    

  我最近發現我對開源(Open Source)的看法和我的很多朋友不一樣。我對開源的態度一貫是:

這段程式碼能夠很好的解決我的問題。假如 它也能解決你的問題,我很欣慰。但是假如它不能,我願意做一些改進,但是我也會拒絕一些讓程式碼變的臃腫的的想法。最後,做一個成熟的庫大約需要幾年的時 間。成熟我是指足夠的穩定來釋出一個最終的版本,或者有人做了一個高階版本。我不認為一個開源的專案能說明我在這個行業的成就。

  但是和別人的交流我發現他們不願意做開源的原因如下:

1. 程式碼不夠成熟
2. 不想寫文件
3. 不想被需求和各種郵件佔用太多時間

  我完全理解這幾點,但是我開發生涯中的一些事件改變了我的看法。

  那是我的第一個開源專案,我一直不敢拿出來開源,直到我把他用在生產環境中穩定的執行了一年,我有足夠的自信相信我這個專案能解決一些問題。它是一個 .NET 物件關係對映庫,叫做 NORM,在2005年釋出。我相信你沒有聽說過這個專案。我花了好幾個月的時間來完善這個專案,但是沒有人在乎。然後我就不想再發布什麼東西了。我現在 相信不論我釋出什麼都不會引起人們的注意,所以我最好還是儘快的釋出,如果不行,那就承認失敗,然後繼續前進。

  沒有人會為自己寫文件,他們為其他將要用這個軟體的人寫文件。人們很少從使用他們開源軟體的人那裡得到什麼。這個簡單的現實導致文件的稀缺。但是,缺乏文件不代表你不能開源你的軟體,它只是意味著你的軟體推廣起來會比較慢。

  我兩年以前開源了 expectations, 沒有任何文件,並且在一年之內都沒有任何文件。在這一年中,很少有人關注了這個專案。但是這個專案確實對一些人來講很有用,所以還是有一些應用。最終,有 一些使用者開始產生一些 pull request,提交一些文件。他們的共享讓我產生了撰寫文件的動力。我沒有動力為潛在的使用者提供文件。但是我把程式碼放在那裡,有人用了,這個就讓我產 生了動力,因為這些使用者實實在在就在那裡。

  如果你很幸運的建立了一個廣泛使用的專案,你將毫無疑問的被各種郵件淹沒。剛開始,我相信任 何人都會被這種成功衝昏頭腦,認為增加的工作量不是什麼大問題。但是慢慢的你會發現,這就像是第二份全職工作,然後你會想著究竟是為了什麼?在開發者中的 聲譽並不能讓你提早退休。不管怎樣,這不能成為你不做開源的藉口。還有,我相信 GitHut 已經改變了遊戲規則。如果你的專案託管在 GitHub,當你打算停止維護這個專案的時候,會有很多人願意 fork 你的專案,繼續開發的。

  我並沒有因為離開自己的專案而良心不安。如果你的想法真的有價值,會有人願意接替你的位置的。很有可能是有幾個人願意接替你,然後最強的那個生存了下來。我見到的類似的專案有 Capistrano。Jamis Buck 在2009年高調的離開了這個專案,但是我知道還是有很多人到今天還在使用它。我堅信假如你的專案真的很好,即使有一天你決定去做其他事情,這個專案也會活的很好。

  我看起來不像是一個開源的好公民,過早的釋出,過早的離開。如果真的是這樣的話,我願意接受批評,但在我看來事實並不是這樣。

原文連結OSChina 編譯

我是怎麼做開源的

相關文章