標籤:

把程序做成開源的,對程序作者有什麼好處呢?


對個人而言

  1. 代碼不容易丟失,多了個安全備份的地方

  2. 是自己成長的一個動力,要 show 更優質的作品
  3. 有更好的就業機會,別人更容易了解的你實力

對企業而言

  1. 能提高項目的質量,參與者會顧忌同行對自己的評價
  2. 複雜項目不怕沒人持續維護,只要有實用價值就會有人持續參與無論是否離職
  3. 更容易招到合適的人,流行項目容易被人接觸和學習

對人類而言

  1. 促進人類的知識技能交流

---這只是一條分隔線----

個人開源要注意:

  • 未經公司許可不要開源公司的項目,這種項目你並沒有所有權,其行為要承擔法律和道德風險
  • 開源要注意保護隱私和網路安全,不要泄露重要信息(住址、電話、身份證號碼等)或帳號密碼(郵箱、伺服器、QQ 等)
  • 不要局限只做自己的開源項目,也要積极參与其他人和組織的開源項目,開源的氛圍很重要

參考

  • 在 GitHub 上面泄露了公司源碼怎麼辦?

  • 京東某開發人員意識不足泄漏一些敏感信息(github)


我是因為www.gaclib.net 包含大量C++ template才開源的,這是技術上的限制。不過真的,自從開源了以後,我寫文檔的動力就慢慢減弱了,因為總有一種揮之不去的【啐,不懂就看代碼啊】的想法。開源真是一個降低責任心的好理由啊。你看我給了dll就不行了,人家出了問題還得做人肉客服。

話說裡面的正則表達式引擎比我見過的任何C++寫的正則表達式都快了好幾倍,性能98%逼近全世界最快的正則表達式引擎——.net的那個,就算C++11出了內置的regex也比我慢了一大截,所以這麼多年來很多人都來信告知我他們用了我的正則表達式引擎,也自行移植到了linux上(不過沒有還給我)。

我自己也很喜歡那個正則表達式引擎。我經常用它來給編譯器做詞法分析,性能比我手寫的還快,我無論如何使用奇技淫巧手寫都趕不上我的正則表達式的速度。

大概這就是附加的好處了吧。如果給了dll,那別人就不能從我這裡得到新的知識了。儘管上大學的時候就把正則表達式的秘密都抖了出來:《構造正則表達式引擎》新鮮出爐啦! ,但是事實證明,能理解這些東西的人不多,遠遠少於對這些東西感興趣的。


開源沒什麼不好,代碼開源了,程序中的很多隱藏問題都會有用戶遠遠不斷的反應上來,最給力的是會有很多專業用戶給程序打補丁,幫忙修改程序.還可以和這部分用戶探討架構,取長補短,讓系統更加完善.

當然,最關鍵的是有收入,只要系統做的的確很好,那麼願意捐獻的人也是有的,雖然不如國外那麼多,但也並非沒有.

最後就是收益了,一個成熟開源系統在擁有一定用戶基礎後,就會有些用戶希望得到個性化定製,這部分就不熟開源功能犯愁了.根據客戶需求編寫相應的插件,這也是一部分重要的收入.

ps:不過我覺得如果是試驗性質軟體開源是合適的,如果是比較成熟,穩定的系統多少還是收費的好.至於原因不解釋.


  1. 可以不寫文檔!

  2. 可以推廣技術(尤其是那種比較底層不好拿來騙錢的技術)


對外,你的名氣可能會增加;對內,你自己的一些思考方式或者說是編程思路會受到他人比較好的影響


開源好處很多,除了其他朋友提到的提高責任感,可能會有大牛幫著查錯調試提意見之類的,我覺得還有一個最重要的地方就是可以玩羞恥Play。這對一個程序員來講非常重要。因為羞恥Play除了可以讓自己的內心更強大,還能夠強迫自己把自己的不足之處盡量彌補,擺出一個更漂亮更趨於完美的造型進行羞恥Play....


好處是如果用的時候出了問題不會被罵娘:

  1. 如果是高手,他會自己去debug,然後如果心腸好還會發個patch給我
  2. 如果是低手,代碼都給你了你搞不定怪我?


只是希望若干年化成灰之後

自己的代碼還在世界某處被運行著

使用者不經意間掃了一眼貢獻者列表

「哦,原來作者是這幾位,感謝你們」


一些基本的框架需要開源,但是基於框架的產品還可以進行修改來賣出:-)

別讓開源開發者變成窮光蛋。


開源了,放到類似 Github 的地方,有人會幫你繼續寫啊,會把你的TODO填上啊。當然你要先讓人覺得這個東西有用。如果別人打開代碼一看發現寫得像陀屎一樣(對不起我找不到其他詞了,真的是這種感覺), 那就不太好了。

Github上面的分枝圖能很好說明這一點。有時候最開始的維護者只出現很短一段時間, 後面就換了人在寫了。


geek精神的一種體現,反版權,自由平等。


名氣以及收益。自由不代表沒有收入,有了很好的名氣其實就為自己開了一條很廣的路!另一方面,開源項目也是可以帶來收益的。。


更多應該是精神層面的好處吧。


有些比較知名的企業招聘,如果簡歷上能寫幾個github上的開源項目,是很有優勢的


有了裝13的資本^O^


可以在後期挖掘出更多有益的東西


可以提高一個人的知名度,另外讓更多的人參與到源代碼的改進中


開源作為推廣的手段之一,

需要個性化定製或者修改就可以收費了


為什麼沒人說開源可以方便的共享人類的知識和智慧?我真是這麼想的


開源對我來說就是 GitHub 不花錢不讓建私有檔,只能公開,既然這樣,那我就開源好了,反正也沒人知道我在幹什麼。


推薦閱讀:

你在使用Android開源項目的過程中都遇到過哪些坑?
假如開源項目創始人去世了,項目怎麼辦?
為什麼很多美國IT公司願意開源自己的某些代碼?
如何看待阿里開源的dexposed框架?
Python有哪些高大上的項目?

TAG:互聯網 | 開源 |