為什麼很多美國IT公司願意開源自己的某些代碼?


其實很多中國IT公司也願意開源自己的某些代碼。

代碼不都是核心競爭力。大部分技術團隊的任務還是支持公司業務。開源既可以借用社區的力量幫助自己,還可以增強技術影響力,提升技術人員個人價值,也幫助招聘。

大部分時候開源的最大障礙是代碼寫得太爛又缺文檔,放出去怕給公司丟人。


公司主導的開源項目很少有純粹為了社會利益的,更多的是處於公司角度考慮。畢竟本質上公司還是個盈利機構而非公益機構。那麼開源的考量可能有如下幾點:

1)為了能夠吸引人才。在美國要想吸引最頂級的人才,除了公司夠優秀之外,還需要良好的口碑。而開源無疑是塑造口碑的一種方式,因此可以依賴這種方法來吸引一流人才加盟。像facebook等走的是這樣的路子。雖然對外提供開源軟體,但是本地還維護了一套私有版本。

2)為了提升軟體質量。Linux等系統軟體是這種類型的典範。通過開源來得到眾多自由軟體精英的鼎力相助,從而快速發展挑戰版權軟體。

3)一種商業模式。像spring,mysql走的便是將代碼開源,提供免費程序,靠收取服務費來賺錢。

4)打擊對手。這招用的爽的便是IBM。eclipse前身是visual age for java,這款軟體在當時的佔有率並不高。但是通過開源免費的方式,靠著多人的貢獻。eclipse最終超越Jbuilder成為最流行的Java IDE。而Borland公司也逐漸的一蹶不振。

雖然舉得例子不限於互聯網公司,但是背後的初衷無外乎這些考量。


因為不開源的東西,除非是像蘋果這種業界霸主,別人不敢用在商業用途上,出了問題還得找售後,有時候自己的代碼可能還有商業機密還不怎麼好找售後。有了源碼,這些事情都能自己來,當然還有能自己定製功能這個很大的有點。

舉個栗子,cocos2dx如果沒有引擎的霸主地位敢出閉源的cocostudio嗎?即使是霸佔2D界,但是cocostudio因為其閉源也曾經差點被槍斃,後來找了途徑繞過這些問題才敢用的。


有些開源是為了集思廣益,共同開發,如linux,webkit等,這些常常通常會接受廣大開發人員提交的代碼,這些開源項目大多為歐美公司或者團體主導。這些代碼往往是非常有商業價值的。

有些是個人為了share/show一把,如github上大量,這些其實不接受他人提供的代碼,不過有好的建議也許會採納。這個量很大,各地都有,但是代碼良莠不齊。

某些開源代碼及其發布平台後面有商業公司支持的,是為了繁榮公司自身某個社區或平台,如NuGet,這個也以歐美為主。

國內的公司和個人,用開源多,提交代碼少。技術是一個問題,主要還是生存狀態的問題。歐美的不少開源是非營利的,參與管理和提交代碼的多是資深的開發人員。而國內的開發人員都忙著加班去了,非盈利的東西不太有時間做。

等到天朝碼農朝九晚五就能買房買車以後,估計會對開源會有更多的貢獻。


有的東西開了你也用不上(很難用(玩不轉(不敢用


在一個健康的 良性競爭的環境中 這樣做利大於弊


代碼早就不是核心競爭力了,數據才是。哪個公司敢開源自己的數據?


因為他們洋人性格!


提高公司在圈內的知名度, 吸引人才. 但是, 如果開源的代碼爛的很shi一樣. 估計會起到反作用.


開源是為了更好的壟斷。。。


技術專利的收割就像捕魚,一開始待開發的漁場還很多,但是後來捕魚的人越來越多越來越貪婪,吞併刮分勢力範圍,旮旯里的一寸小魚都要被絕戶網補絕了,這樣後來的新人要入行的話連捕魚學徒都難當。有人意識到了問題,提出了幾種解決方法,比如划出某一些區域,某一些時間段為保護區和休漁期,大家都遵守,這裡面的魚不被誰獨佔。某些物種禁止商業捕撈,大家一起出力搞水生生物的保育共享科研成果。在一定範圍內投放魚苗,恢復經濟魚類的數量。


同意@yLong Cheung,在一個良性競爭和完善的產權保護的體制之下,開放是絕對的有利於發展的。


有被動也主動的啦,被動主要是遵守GPL,主動嘛,我覺得主要是因為觀念問題, 老外他們不覺得源碼公開出來會被別人據為己有(中國人確實很多這麼無恥的哈),相反別人會給你提出建議,當然還有很多別的原因,至少很多都是不開源的,戰略不同吧


因為他們本身不是靠這個技術盈利的


恩~ 好多時候能夠成功不是靠的技術,而是策劃力、宣傳力、創意點!


個人覺得這樣可以起到一定的宣傳作用,而且可以吸引一些優秀人才加入。


推薦閱讀:

如何看待阿里開源的dexposed框架?
Python有哪些高大上的項目?
如何運營一個開源項目並取得較大影響力?
C/C++ 編程有哪些值得推薦的工具?
你有用了Gentoo就不想用Arch的感覺嗎?

TAG:互聯網 | 美國互聯網 | 代碼 | 開源 |