商業項目對使用開源軟體的態度和使用範圍是怎樣的?
看到一個答主貌似對使用開源軟體存在很大意見,有感而問。
&>新技術是好東西,但自作主張用了,多半是作死,特別是自作主張用開源軟體的傢伙
&>&>(我手下要是自作主張用開源軟體,最起碼一個大過處分,不預警,直接通報)
&>Charles Stone
&>有哪些老程序員都知道對新手很有用的經驗?
在微軟,要是律師不批准你就擅自把開源軟體集成在自己的產品里,分分鐘前途要完的。當然了,像下載個firefox上網什麼的自然沒有限制。
一般大的商業公司的商業項目使用開源軟體都需要專門的法務部門審核這其中牽涉到的問題很多。比如像GPL你用了就必須得開源(如果公司把代碼當著一種核心資產,那麼這種情況就完全不適用);再有即使使用也好考慮各個不同的License的兼容性或者拍他性的問題(說的就是你,GPL)。某些大公司會定期掃描旗下產品的代碼,查找代碼是否存在開源代碼,結果是可能工程師對這個開源產品感興趣,但是就是不能閱讀源代碼,只能看看文檔解解饞(這種情況對於某些項目debug問題時及其痛苦的,但是如果外界質疑,那麼可以說我沒看過代碼,我不知道怎麼實現的,我自己的實現,是一個通用的思路,代碼也是自己寫的)。
這並不說明大公司就不用開源產品,只是使用的條件比較苛刻,無論在哪個有點規模的公司,都會有不少的開源產品的使用,因為開源軟體的好處還是很多的,比如成本問題,維護問題等等等等。
小公司的使用情況應該更多,但是在國內的一些小公司(其實很多大公司也是),並沒有考慮到多少法律問題,享受著開源軟體的福利,卻從來不回饋社區,比如當年著名的射手和QQ影音的ffmpeg恥辱柱事件。
微軟目前的口號是擁抱開源,鼓勵大家使用開源項目,不過所以開源的使用都是需要報LCA(法務)部門的,只不過對於不同的用法流程複雜度是不一樣的。如果是內部項目或者是雲服務端的使用,那麼會比較簡單。如果是要包含在發布的軟體裡面分發給最終用戶,那就很嚴格了。最大的風險在於,一個不留神,就有可能需要被迫開源整個windows或者office。
另外有些license比如GPL就是個大雷區,敢去碰的估計不多。真要做的話會有很嚴格的開發流程來確保法律上的安全,比如關小黑屋什麼的。我們以前是產品中用的所有開源/自由軟體組件都要整理出來,填表給法務部審核,然後產品中內置的許可證協議也都要給法務部審核。
對於GPLv2,可以合理使用,通過進程間通信等方式歸避傳染性。GPLv3由於涉及專利,禁止使用。MIT/Apache等也都可以合理使用。我不確定惠普對開源軟體的使用方法是不是常規做法,不過我覺得至少節操還行,可以和大家分享一下:
當一個項目決定要使用某個第三方開源軟體集成到自己商業軟體中的話,首先,公司會給對方公司發郵件申請授權郵件並諮詢相關使用範圍以及其他責任。在收到郵件後才能正式開始在自己的軟體中進行集成。並且在release note中也會標註使用了哪些開源軟體,並在對應模塊的說明文檔中再一次強調本模塊基於某軟體進行二次開發。
我看過我們組產品中集成的某些開源軟體的license至今還留在我們的產品中,雖然其實早就被改的面目全非。。。
也許對於大的商業軟體來說,使不使用開源軟體並不是太重要的事情,但是如果因為非法使用開源軟體而違背商業道德被詬病才是最不能看到的結果吧。
惠普使用的第三方開源廠商也很樂意在官網標註自己的產品被惠普所使用,大概這也是一種雙贏吧?
正規公司用之前都會找法務仔細研讀協議的。。
&>新技術是好東西,但自作主張用了,多半是作死,特別是自作主張用開源軟體的傢伙
推薦閱讀:
※諾基亞宣布在 symbian.nokia.com 開放 Symbian 手機系統源碼,而 Android 3.0 暫時閉源,二者開閉源的戰略是為什麼呢?
※如何用開源飛控PIXHAWK進行開發?
※使用我的源代碼然後把我舉報了,他們怎麼想的?
※Sun 為什麼敢開放處理器(比如 UltraSPARC T1)的源代碼?
※如何使用 HackRF 平台製作一台射電望遠鏡?