標籤:

每個軟體都可以開源嗎?

是否如果作者原意,每個軟體都可以開源。

而開源是否對軟體一定有促進作用。

但是如果遇到殺毒軟體這種,開源是否會對它造成負面影響


謝邀。我本身不是做軟體的,只能隨便發表一下自己對開源軟體的看法,歡迎砸磚。

我覺得對於小體量的軟體(個人或小公司使用)而言,開源沒有什麼不妥的地方。只要作者願意,開源是有利於整個業界的繁榮的。

另一方面,我認為大型軟體的開源並不一定是最好的一種問題解決方案。一般大型軟體的用戶都是非常專業的個人或是大規模的組織。對於這些大型軟體的用戶而言,開源所帶來的好處,比如活躍的社區,新鮮的創意,不斷前進的版本號等等,並不能構成決定性的因素。相反,大型軟體需要的是穩定,是可維護,是隨便換個管理人員都能馬上上手的可替換性。在這個意義上,開源的優勢並不大。面對不斷向前的開源社區,很少大公司能夠,或者說願意跟上變化的——畢竟,世界上絕大多數的公司並不是以it為主業的,不可能養這麼多程序員。

綜上,我認為,小型通用軟體適合開源,大型專業軟體不一定適合開源。&<刪除線&>具體到殺毒軟體,我覺得開源不開源區別不大&——仔細想了想,如 @文平波 所言,殺毒軟體的引擎和特徵庫什麼的,應該不適合開源。


3個問題,回答如下:

1.不同的軟體,有不同的版權協議。就算在開源界,協議也是很多。像開源裡面最常見的GPL協議就規定,只要你用了我的代碼,引用了我的庫,那你就得開放源代碼,這就是GPL的傳染性,這也是現在大多數開源軟體採用這個協議的原因。而像LGPL協議,它其實是繼承於GPL協議的,但是對引用他的庫的程序不做強制要求,也就是說,如果你用了LGPL的代碼,那你必須要開放源代碼,但是如果你只是引用LGPL的庫,那麼你可以不公開源碼,且你可以用作商業用途。還有很多其他的版權協議,比如Apache, BSD等,具體請google。

扯遠了,對於一個軟體是否應該開源,得分兩種情況。a.該軟體作者對該軟體有完全的所有權,沒有引用有版許可權制的第三方庫,沒有使用有版許可權制的現成代碼,那麼,開源與否,完全自己決定。b.如果該軟體中用了他人的東西,那麼對不起,你得兼容他人的許可協議。比如,我編寫的程序,引用了cygwin的庫,那麼你就不能拿你的軟體用作商業用途。

但是回頭看看國內的這個行業,大部分都不是很重視版權許可。很多人甚至干著「強姦GPL」,打擦邊球的事,具體就不說了,其實國外也有!

2.開源是否對軟體行業有促進作用,這個是一定的啦!否則,每個人都在造著同樣的輪子,浪費人力,浪費時間

3.開源是否對安全軟體有負作用,你見過開源的商業安全軟體么?我目前見到的,就兩,一個是clamav,這個真是開源的,但是一直是社區來維護,不是商業軟體,所以也註定了病毒庫和漏洞庫更新慢,效果不好。另外一個是金山前幾年推行的開源計劃金山衛士開源計劃 {v11.08.8.0}開源衛士社區 源代碼下載,但是如果你仔細研究一下,你就會發現,這個其實不是真的開源,金山只是開源了它部分代碼,殺毒引擎,漏洞掃描引擎,系統優化庫等核心部件全都不開源,並且病毒特徵庫,漏洞庫等核心數據文件,也沒有開源。並且你現在去它的網站上看的話,你會發現,這個開源計劃早在2012年就已經死了,基本沒人參與這個社區,文檔少的可憐。所以這只是金山對用戶打的一個廣告,還打的蠻好聽的:)

但是回過頭來,金山這麼做,是不是很沒節操呢?個人認為還是不是的,在安全行業,有很多隱晦的地方。這個行業發展到現在,已經不單單是技術的競爭了,而是數據的競爭。誰手上的病毒特徵庫大,誰手上的漏洞庫多,那誰就是king。如果金山把他的殺毒引擎開源了,把病毒庫開源了,那金山早就喝西北風了。況且如果殺毒引擎和病毒庫開源出來,那麼病毒木馬就更猖狂了,因為可以專門針對某個開源的殺毒引擎編寫免殺病毒。

寫的比較粗糙,不當之處,還請指正!


個人粗見:開源不是目的,商業才是目的。開源其實是有商業目的驅動的,毫無目的的開源,無影響力也不會發展,跟閉源沒什麼區別。


謝邀,首次受邀誠惶誠恐。

我就從一個小碼農的角度來談談自己對開源的看法。

首先,有很多人把開源軟體直接和免費軟體划了等號,這就從某種程度上說明了開源的非商業特性(Free在這裡指的是自由,而不是強調免費)。

第一個問題是,是否程序員願意就可以開源,這是當然的,只要是你寫的,開源世界歡迎您提供任何代碼。比較常見的發布方式就是push一份版本庫到Github或者google code上面,這樣大家都可以自由使用、修改並貢獻自己的代碼。但是由於開源強調的開放源碼,所以對於終端用戶來說其實使用上是沒有太大差異的,因為沒有人會clone源碼下來自己編譯二進位文件使用。

關於是否會促進軟體,上面已經討論過了,商業軟體是不可能開源的(開源之後的軟體盈利主要是後期服務方面,這也是SaaS這一概念流行的原因)。對於個人軟體來說,不把盈利作為目的,開源對於軟體的傳播以及質量肯定是有很大幫助的,加入開源世界之後,就會有大量優質的開源類庫可以使用,還可能有很多熱心的極客幫你提交代碼,你更可以因此認識很多志同道合的朋友。這應該也是開源社區最大的優勢吧。

最後說到具體的情況如殺毒軟體。開源不僅僅表示開放源代碼,GPL協議表示可以自由的使用、修改,重新發布。一個殺毒軟體可以被隨意修改這是難以想像的。而且,你可以自己寫一個病毒特徵識別引擎並把它開源,但是一款殺毒軟體所牽扯到的東西太多了,需要持續保持不斷的更新,這僅僅靠個人熱情很難保證。病毒特徵庫的建立也需要花費大量的成本,這些都需要一個完善的商業環境才可能做到。所以殺毒軟體可以免費,但是不會自由。


只要版權方同意,都可以開源

但是你不能把不屬於自己的軟體開源,那是違反法律的


推薦閱讀:

有什麼適合提高 C/C++ 網路編程能力的開源項目推薦?
那些開源軟體真的會有人去閱讀嗎?
開源軟體的開發是如何進行的?
為什麼很多開源軟體都用 C,而不是 C++ 寫成?
軟體開源後,能否有開源和商業化兩種授權?

TAG:開源軟體 |