天天看點

由C/C++的開源項目和開源協定說開去——和CSDN部落格專家王紹全的讨論記錄

由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

對,是的。