看了開源代碼之後用另外一種語言實現相同的功能算不算侵權?


我來比較系統的回答一下這個問題:

這裡的侵權要考慮三種情況,第一是開源許可證項下的義務,第二是版權,第三是專利權

第一,對於開源許可證規定的義務,一般來說,在法律層面認為是一種合同,即你作為這個開源代碼的使用者,在使用這套代碼的時候就默認和作者訂立的合同。那麼,作為使用這套代碼的對價,你有必要遵守開源協議上的義務。如果沒有遵守,可能侵犯到了開源作者的合同權利。

第二,對於版權,全世界通行的規則是,版權只保護思想的表達,並不保護思想本身。你可以簡單的理解成,版權只保護演算法的表達,但是不保護演算法本身。因此,如果你用另外一種語言來實現這個程序,不會侵犯作者的版權。

第三,對於專利權,問題會比較複雜,首先,與上面所說的版權不同。專利權可以保護思想的表達的,如果這套開源代碼是有專利權的,那麼你必須取得專利權人的授權才可以使用或者改寫。在這種情況下自行改寫理論上也是會侵犯其專利權的。但是實際上,一套代碼申請專利之後再開源貌似比較少見。我反正沒見過。


取決於具體的協議,如果用GPLv2協議,那麼是不能用有專利的演算法的(補充:知友說GPLv3對此有不同的說明,參見評論)。既然該演算法沒有專利,那麼你參考這個演算法自己用其它語言實現一遍沒有問題。

但開源代碼並非一定是用的GPL,還可能用其他的協議。那就不一定了,其中可能含有專利演算法,那個演算法自己實現也是要交專利費的。


An open-source license is a type of license for computer software and other products that allows the source code, blueprint or design to be used, modified and/or shared under defined terms and conditions.

一般看這個就可以了。公司在第三方軟體選型時都會評估的,維度包括不限於是否商業友好(有沒被訴的風險)、社區是否活躍(有bug是否能及時修復)、選用的版本是否是穩定版本、cve上有無相關安全漏洞等等。

至於你以個人名義改寫的話,一般不用來進行商業謀利基本沒人管的。放心吧。


就不說開源了,你覺得HDFS, HBase, Zookeeper等一系列Apache產品是怎麼來的?[doge]


具體要看許可證

有的演算法是有專利的


推薦閱讀:

網易雲音樂每日歌曲推薦的原理是什麼?
求有限元分析軟體dynaform的教程?
為什麼 MATLAB 的矩陣表達這麼反直覺,代碼不優雅,並且符號計算這麼差,還是有這麼多人用它?功能實現上比 C 好在哪裡?以及如此流行是因為它功能強大兼/或易用嗎?
破解 Root 許可權用哪個軟體好?

TAG:軟體 | 開源 | 開源許可證 |