保持自由 - GCC应该接受收费插件吗?
创始人
2024-03-01 13:42:31
0

GCC邮件列表中在争论GCC是否应该接受收费插件,但是认为GCC是一个自由软件(free software)开发的媒介的论调占得了上风

Gcc以及它在模块化方面的缺失又一次作为一个问题被提出来,并且和市场上的新的编译器LLVM做了对比。GCC巨大而古老:5百万行代码,30年研发时间,并且还在继续增长。相比较而言,LLVM更加年轻,更加模块化,并且允许所有的语言都作为一个模块添加进去。

LLVM的核心是‘开放源代码(Open Source)’。GCC是反著作权(copyleft)代表,是严格的自由软件(free software),她不允许以任何形式收费的插件的代码进入到GCC的代码中。争论的一种意见,正如Eric Raymond说的,“FSF不可能既阻止持有所有权的供应者添加他们的插件到一个免费编译器中,又让这个编译器得到发展。就像马儿已经偏离了跑道,反对插件策略的战略目标已经彻底的失败了”。

LLVM已经被苹果公司采用作为OS X和苹果硬件上GCC的替代品,并且正在变得流行起来,特别是在BSD系列操作系统的用户中间。LLVM的拥护者推测LLVM将会在更广阔的应用程序和移动设备开发市场上成为GCC的替代者。GCC的反对者们的观点是GCC太过复杂,并且开发者们必须遵守她的‘反著作权(copyleft)’。这限制了那些不想在‘反著作权(copyleft)’许可证下发布他们的语言或者软件产品。作为典型,苹果公司有一个很长的厌恶自由软件的历史。他们也不允许遵守‘反著作权(copyleft)’的软件通过他们的App Store发布。

LLVM和GCC之间的争论其实是GNU/Linux和BSD系列、开放源代码和自由软件之间历史差异的翻新版。开放源码的开发者允许代码被以任何形式的使用,免费或者维持版权。自由软件则严格地规定,代码或者针对代码做的更新,必须保持永久免费。自由软件的支持者认为完整的‘反著作权’授权有助于GCC的发展,并且已经将Linux和自由软件带到一个其他方式无法到达的高度,同时保证了自由软件不会被收购或者堕落成商业利益。开放源码的支持者则认为开放源码更加的自由,因为使用这没有受到限制,他们可以随意使用,包括开发非开源的版本。

GNU编译器集合(GCC)一直是自由软件发展的关键。编译器是稀有且昂贵的商品,版权软件公司也充斥着对不符合标准的特性的需求。让软件兼容不同的机器和操作系统是一个非必需的复杂任务。GCC作为第一个真正免费的跨平台编译器,简化了这个过程。

GCC对于软件开发者和移动设备开发者来说也是一个划时代的产品,而不仅仅对于那些自由软件概念提出者。GCC不但免费和可移植,她跨越不同硬件架构的普遍性和公用性使得更加容易做到软件的兼容性、鲁棒性和一致性。这和John Gilmore,Michael Tiemann和David Henkel-Wallace在开发GCC时发现的一样。这也是Cygnus Solutions公司主要的卖点,Cygnus Solutions是第一家靠卖自由软件赚钱的公司。[译注:Cygnus Solutions是John Gilmore, Michael Tiemann and David Henkel- Wallace创办的公司,同时也是GNU几个主要产品的贡献者]

LLVM和GCC之间主要的技术差异集中在组成‘前端’,‘中端’,‘后端’的模块分割。‘前端’用来翻译特定的语言。‘中端’对翻译后产生的代码进行优化。‘后端’将优化后的代码转化成特定硬件架构的机器码。LLVM将这些模块分割成不同的实体,但是由于语义的和历史的原因,GCC模糊了这些模块之间的界限。

对于一个自由软件项目,添加一种新的语言或者架构到GCC也许是一个非常困难的过程,添加有版权的插件也是不允许的。由于模块间界限非常不明确,最容易的添加方法就是让添加的特性遵循自由软件许可证。最初的开发者也许想保持代码的封闭和版权,但最后不得不将代码以自由软件发布。早期的C++以及Objective C就被认为是其中典型的例子。

与此相反,LLVM允许,甚至也许可以说是鼓励添加和发展版权语言和架构,比如英伟达基于Clang和LLVM的对于GPU开发的NVCC。NVCC的源代码是自由软件或者开源软件开发者获取不到的。

Richard Stallman对这方面的演讲中旗帜鲜明地宣布:“在自由软件运动中,我们为自由而战。自由软件的的价值观从根本上就和开源软件不同,后者以写‘更好的代码’为终极目标。如果GCC从免费的编译器变成非免费的编译器,她将不再能够达成自由的目标。

“Clang和LLVM的开发者不认可我们的价值观和目标,所以得出了跟我们不一样的结论。他们反对我们采取的捍卫自由的措施,因为他们只看到这对他们造成的不便,却没有看到(或者不关心)他们真正的需求。我猜测他们把他们的工作定义为‘开源’,并且漠视自由。”

GCC开发者们不可能在许可证的条件上妥协。LLVM在某些行业的部门非常流行,因为它很年轻很新,在编程语言的浪潮中跳跃式发展着。流行的风向着更加开放奔跑,GCC决心跟商业利益死磕也许是这个长期演进路上的一大助力。Unix公司们从80和90年代的Unix战争中学到了一些东西。语言和操作系统都是工具,它们最好是开放和共享的。GCC是自由软件,不属于任何人。


via: http://www.linuxuser.co.uk/features/staying-free-should-gcc-allow-non-free-plug-ins

译者:love_daisy_love 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

相关内容

投教进校园 青春向未来——...
在2025第五届“上证杯”中,西北大学—开源证券队如黑马般强势崛起...
2026-05-15 22:28:17
5月15日湖南黄金跌5.1...
证券之星消息,5月15日湖南黄金(002155)跌5.15%创60...
2026-05-15 22:26:09
沐曦股份携手TileAI发...
5月15日,据沐曦股份-U(688802.SH)消息,沐曦股份深度...
2026-05-15 22:25:17
蚂蚁百灵开源Ring-2....
钛媒体App 5月15日消息,蚂蚁百灵宣布开源旗舰推理模型Ring...
2026-05-15 22:20:22
速递|Anthropic发...
图片来源:Anthropic 据知情人士透露,Anthropic ...
2026-05-14 17:28:33
雷军:小米自动驾驶模型Xi...
5月14日消息,小米创办人、董事长兼CEO雷军日前在社交平台发文称...
2026-05-14 17:27:29

热门资讯

为什么计量 IT 的生产力如此... 在某些行业里,人们可以根据一些测量标准判定一个人的生产力。比如,如果你是一个零件制造商,可以通过一个...
硬核观察 #885 苹果 AR... 苹果 AR 眼镜被无限期推迟据报道,由于技术上的挑战,苹果公司已经无限期推迟了其轻型增强现实(AR)...
值得收藏的 27 个机器学习的... 机器学习 ( Machine Learning ) 有很多方面,当我开始研究学习它时,我发现了各种各...
PHP最佳实践(译) 简介PHP是一门复杂的语言,经过多年折腾,使其不同版本之间高度不一致,有时还有些bug。 每个版本都...
8个有趣的Linux提示与技巧... 我们时不时给你带来关于Linux的提示与技巧。和这个系列保持一致,这里有8个我们从读者收到最有趣的提...
8 个提升你的隐私防护的开源密... 使用一些顶级开源密码管理器,确保你的登录凭证安全无虞。密码管理器是一项非常有用的实用程序。在你想寻找...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
KDE4.11 Beta1 正...   KDE 项目工作组刚刚发布了 KDE Software Compilation 4.11 Bet...