把程序做成開源的,對程序作者有什麼好處呢?
對個人而言
- 代碼不容易丟失,多了個安全備份的地方
- 是自己成長的一個動力,要 show 更優質的作品
- 有更好的就業機會,別人更容易了解的你實力
對企業而言
- 能提高項目的質量,參與者會顧忌同行對自己的評價
- 複雜項目不怕沒人持續維護,只要有實用價值就會有人持續參與無論是否離職
- 更容易招到合適的人,流行項目容易被人接觸和學習
對人類而言
- 促進人類的知識技能交流
---這只是一條分隔線----
個人開源要注意:- 未經公司許可不要開源公司的項目,這種項目你並沒有所有權,其行為要承擔法律和道德風險
- 開源要注意保護隱私和網路安全,不要泄露重要信息(住址、電話、身份證號碼等)或帳號密碼(郵箱、伺服器、QQ 等)
- 不要局限只做自己的開源項目,也要積极參与其他人和組織的開源項目,開源的氛圍很重要
- 在 GitHub 上面泄露了公司源碼怎麼辦?
- 京東某開發人員意識不足泄漏一些敏感信息(github)
我是因為www.gaclib.net 包含大量C++ template才開源的,這是技術上的限制。不過真的,自從開源了以後,我寫文檔的動力就慢慢減弱了,因為總有一種揮之不去的【啐,不懂就看代碼啊】的想法。開源真是一個降低責任心的好理由啊。你看我給了dll就不行了,人家出了問題還得做人肉客服。
話說裡面的正則表達式引擎比我見過的任何C++寫的正則表達式都快了好幾倍,性能98%逼近全世界最快的正則表達式引擎——.net的那個,就算C++11出了內置的regex也比我慢了一大截,所以這麼多年來很多人都來信告知我他們用了我的正則表達式引擎,也自行移植到了linux上(不過沒有還給我)。
我自己也很喜歡那個正則表達式引擎。我經常用它來給編譯器做詞法分析,性能比我手寫的還快,我無論如何使用奇技淫巧手寫都趕不上我的正則表達式的速度。
大概這就是附加的好處了吧。如果給了dll,那別人就不能從我這裡得到新的知識了。儘管上大學的時候就把正則表達式的秘密都抖了出來:《構造正則表達式引擎》新鮮出爐啦! ,但是事實證明,能理解這些東西的人不多,遠遠少於對這些東西感興趣的。
開源沒什麼不好,代碼開源了,程序中的很多隱藏問題都會有用戶遠遠不斷的反應上來,最給力的是會有很多專業用戶給程序打補丁,幫忙修改程序.還可以和這部分用戶探討架構,取長補短,讓系統更加完善.
當然,最關鍵的是有收入,只要系統做的的確很好,那麼願意捐獻的人也是有的,雖然不如國外那麼多,但也並非沒有.最後就是收益了,一個成熟開源系統在擁有一定用戶基礎後,就會有些用戶希望得到個性化定製,這部分就不熟開源功能犯愁了.根據客戶需求編寫相應的插件,這也是一部分重要的收入.ps:不過我覺得如果是試驗性質軟體開源是合適的,如果是比較成熟,穩定的系統多少還是收費的好.至於原因不解釋.- 可以不寫文檔!
- 可以推廣技術(尤其是那種比較底層不好拿來騙錢的技術)
對外,你的名氣可能會增加;對內,你自己的一些思考方式或者說是編程思路會受到他人比較好的影響
開源好處很多,除了其他朋友提到的提高責任感,可能會有大牛幫著查錯調試提意見之類的,我覺得還有一個最重要的地方就是可以玩羞恥Play。這對一個程序員來講非常重要。因為羞恥Play除了可以讓自己的內心更強大,還能夠強迫自己把自己的不足之處盡量彌補,擺出一個更漂亮更趨於完美的造型進行羞恥Play....
好處是如果用的時候出了問題不會被罵娘:
- 如果是高手,他會自己去debug,然後如果心腸好還會發個patch給我
- 如果是低手,代碼都給你了你搞不定怪我?
只是希望若干年化成灰之後自己的代碼還在世界某處被運行著使用者不經意間掃了一眼貢獻者列表「哦,原來作者是這幾位,感謝你們」
一些基本的框架需要開源,但是基於框架的產品還可以進行修改來賣出:-)
別讓開源開發者變成窮光蛋。
開源了,放到類似 Github 的地方,有人會幫你繼續寫啊,會把你的TODO填上啊。當然你要先讓人覺得這個東西有用。如果別人打開代碼一看發現寫得像陀屎一樣(對不起我找不到其他詞了,真的是這種感覺), 那就不太好了。
Github上面的分枝圖能很好說明這一點。有時候最開始的維護者只出現很短一段時間, 後面就換了人在寫了。
geek精神的一種體現,反版權,自由平等。
名氣以及收益。自由不代表沒有收入,有了很好的名氣其實就為自己開了一條很廣的路!另一方面,開源項目也是可以帶來收益的。。
更多應該是精神層面的好處吧。
有些比較知名的企業招聘,如果簡歷上能寫幾個github上的開源項目,是很有優勢的
有了裝13的資本^O^
可以在後期挖掘出更多有益的東西
可以提高一個人的知名度,另外讓更多的人參與到源代碼的改進中
開源作為推廣的手段之一,
需要個性化定製或者修改就可以收費了
為什麼沒人說開源可以方便的共享人類的知識和智慧?我真是這麼想的
開源對我來說就是 GitHub 不花錢不讓建私有檔,只能公開,既然這樣,那我就開源好了,反正也沒人知道我在幹什麼。
推薦閱讀:
※你在使用Android開源項目的過程中都遇到過哪些坑?
※假如開源項目創始人去世了,項目怎麼辦?
※為什麼很多美國IT公司願意開源自己的某些代碼?
※如何看待阿里開源的dexposed框架?
※Python有哪些高大上的項目?