由C/C++的開源項目和開源協定說開去
——和CSDN部落格專家王紹全的讨論記錄
以下,是 2009/11/30 在 CSDN部落格專家群,我(liigo)與CSDN部落格專家王紹全(Eric)的讨論記錄,發表之前已征得他的同意。内容上,主要表達了我私下裡對于C/C++開源項目的抱怨,和由于版權的關系不能有效地将其應用于工作中的煩惱。
王紹全[wwwsq] 14:55:22
http://www.theregister.co.uk/2009/01/21/open_source_projects_08/print.html
在18萬個開源項目中,有47%是用C,28%用Java,11%用PHP
莊曉立[liigo] 17:32:34
不要單純比數量,從實用上來比。如PDF生成器、FLASH生成器、報表生成器,成熟的C/C++開源項目基本找不着,GOOGLE出來的有名的開源項目多是JAVA的。
莊曉立[liigo] 17:33:10
這個我深有體會。
莊曉立[liigo] 17:34:06
(二進制)資料檔案生成,按說是C/C++的強項,是JAVA的弱項。
莊曉立[liigo] 17:34:20
表現出來卻相反。
莊曉立[liigo] 17:36:03
而且,C/C++的開源項目多是GPL/LGPL協定,對商業使用不友好;而JAVA的開源項目多是Apache2.0,對商業使用是友好的。
王紹全[wwwsq] 17:36:13
除了eclipse,有哪些著名開源項目是java的?
王紹全[wwwsq] 17:37:37
OpenOffice官網首頁說,它是C/C++的
莊曉立[liigo] 17:37:47
看上下文,是說的PDF生成器、FLASH生成器、報表生成器,又是與C/C++對比
王紹全[wwwsq] 17:38:35
linux/firefox/emule/putty/gcc/apache這些都是c/c++的
莊曉立[liigo] 17:39:28
而且,C/C++的開源項目多是GPL/LGPL協定,對商業使用不友好;而JAVA的開源項目多是Apache2.0,對商業使用是友好的。
例如GNU BFD(Binary File Descriptor),開源的,看上去發展的很成熟了,可是它是GPL的,我開發商業連結器(linker)的話,就不能用它。
王紹全[wwwsq] 17:40:48
可以繞的,有些公司專門寫個程式來link GPL的lib
王紹全[wwwsq] 17:40:57
别的子產品和這個小程式通訊
王紹全[wwwsq] 17:41:13
這個link GPL lib的小程式可以開源
莊曉立[liigo] 17:41:25
哦。
王紹全[wwwsq] 17:42:52
具體問題,可以咨詢知識産權法律專家。小公司不用擔心,大公司自然有專門的法律顧問的。
莊曉立[liigo] 17:43:02
有時候對GPL和LGPL很無奈,幹看着,偏偏用不上。呵呵。LGPL的庫(lib),還不允許靜态連結。
莊曉立[liigo] 17:43:22
我們雖然是小公司,但對版權還是很小心的。
王紹全[wwwsq] 17:43:58
對版權小心,是要付出成本的。如果你們覺得值得,那麼就需要考察一下别的公司是怎麼對付這個問題的。
王紹全[wwwsq] 17:44:08
我剛才說的繞的方式,隻是其中一種方式。
莊曉立[liigo] 17:44:22
嗯,多謝。
王紹全[wwwsq] 17:44:24
不客氣:)
莊曉立[liigo] 17:46:47
國内外有名的視訊播放器,如kmplayer,QQ影音,暴風影音,都是非法使用ffmpeg庫,都進入人家的恥辱名單了。
莊曉立[liigo] 17:47:13
可見“繞”也不見得繞過去,嘿嘿
王紹全[wwwsq] 17:47:47
那些播放器是繞都懶得繞吧?
王紹全[wwwsq] 17:48:09
多媒體的庫直接和硬體打交道,可能也比較難繞
莊曉立[liigo] 17:52:06
據說GPL/LGPL也是法律專家們研究的結晶
王紹全[wwwsq] 17:52:21
這個倒是
王紹全[wwwsq] 17:52:40
GPL/LGPL也是有一大幫律師參與幫助制定的
莊曉立[liigo] 17:53:24
是啊。
王紹全[wwwsq] 17:54:03
跟着大公司做了,繞的方法是被很多大公司采用的。要有法律麻煩,也是他們先遇到。天塌下來有高個子頂着呢。
王紹全[wwwsq] 17:54:46
我沒有具體證明過。你要是打算采用這個方式,請自己證明一下。
莊曉立[liigo] 17:55:00
嗯
莊曉立[liigo] 17:57:26
還接前面說,wxWidgets是類LGPL協定的,我們如果靜态連結WX庫,編譯出一個動态庫給易語言用,用起來就很友善。偏偏LGPL不允許靜态連結。那麼就麻煩許多,将來釋出程式還得帶着WX的動态庫,還得考慮它的路徑問題。
莊曉立[liigo] 18:00:02
有誰知道,VC6的連結器(link.exe),未經許可可以直接使用嗎?多謝。
莊曉立[liigo] 18:00:41
我的意思是随程式釋出出去
莊曉立[liigo] 18:00:58
我的意思是随程式釋出出去,内部調用。
王紹全[wwwsq] 18:01:05
多半是不行的
莊曉立[liigo] 18:02:08
我估計也是不行的
王紹全[wwwsq] 18:02:18
link.exe是微軟的版權軟體,它的使用許可99%不會讓你再釋出的
王紹全[wwwsq] 18:02:39
gcc打包再釋出應該是可以的,隻要聲明一下,并且提供代碼
莊曉立[liigo] 18:03:06
VC6是十年前的軟體了,有沒有過期一說?
王紹全[wwwsq] 18:03:25
專利會過期,軟體所有權沒聽說有過期的
莊曉立[liigo] 18:03:41
對,是的。