由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
对,是的。