也谈自由软件

Last updated on December 28, 2024 pm

新买的平板已经成为了我最喜欢的写画工具,但其所自带的画板软件(MyScript Nebo)使用起来并不理想。作为一个墨迹管理工具,其墨迹最小单位却严格受限,在画布最大放大比率下有着明显断续的问题(尽管画笔的追踪是连续的)。对使用体验始终不能满意的我又一次踏上了寻找最佳的软件工具的旅途,而在此过程中,一个念头浮上脑海:“作为一名自由软件的忠实拥护者,为何不再相信自由软件一次呢?”、

于是我下载了 Krita 的 Android 版本,但很可惜的是,自由软件依然是那个自由软件。Krita 的移动端与桌面端完全由同一个界面构建,没有任何对小屏幕优化的尝试。当然,对于一款自愿开发的公共软件,我理解我并不能对其的功能性苛责太多;但这样的选择在我看来并不仅仅是力不从心那么简单,这样欠缺考虑的产品决策本就是一种对用户的不尊重。

而不幸的是,这样的不尊重在自由软件社群中普遍的存在着。正好,不妨用这一次机会认真的讨论一下我对自由软件运动的看法。


在谈论自由软件之前,我们首先需要严格的定义何为自由软件。特别的,我们需要分辨自由软件与开源软件的区别。

GNU(和 FSF)对自由软件哲学有明确的定义:“‘自由软件’尊重用户的自由,并且尊重整个社区。”更进一步的,它们提出了四项基本自由:

无论用户出于何种目的,必须可以按照用户意愿,自由地运行该软件。
用户可以自由地学习并修改该软件,以此来帮助用户完成用户自己的计算。作为前提,用户必须可以访问到该软件的源代码。
用户可以自由地分发该软件的拷贝,这样就可以助人。
用户可以自由地分发该软件修改后的拷贝。借此,用户可以把改进后的软件分享给整个社区令他人也从中受益。作为前提,用户必须可以访问到该软件的源代码。

这一定义显著的区别于“开源软件”,FSF 也一直在强调二者本质上的不同:

自由软件运动为用户的计算自由而战斗;这是一个为自由和公正而战的运动。相反,开源理念重视的是实用优势而不是原则利害。我们因此不赞同开源运动,也不使用开源这个词。

虽然其精神如此冠冕堂皇,但自由软件运动从诞生之始,其精神目标和其实践定义就是自相矛盾的,或者说,其所宣扬的“四大基本自由”并不能保障其所试图宣扬的自由。自由软件运动认为非自由软件让开发者能通过软件产品对用户施加不公的操纵,即使开发者本意善良,这样的权力也会引诱开发者实施操纵;相对的,自由软件被认为能够绝对的给予用户以不被操纵的使用软件的自由。在这一层面上,四大基本自由的本质是假定开发者“因为支持自由,所以不会作恶”,并且对作恶者提供了一个基本的反制手段:“Fork it and make it better”。自由软件运动假设只要给予用户修改软件的权力,用户就必然会践行;
但这样的假定显然是片面且幼稚的:如果一个软件满足四大基本自由,但其在行为上是作恶的(Malware/PUA),那么这样的产品还是自由的吗?或者说,这样违背自由软件精神价值的产品还能被认可为自由吗?显然,自由软件斗士们意识到了这一点不自洽,于是它们粗暴的将其重新分类为非自由软件。但如果自由软件的定义不能定义自由软件,那么什么才是自由软件?

更进一步的,四大基本自由中对自由软件的基本假设“用户可以自由地学习、修改、分发该软件修改或未修改过的拷贝”已经不再适用,因为现代的自由软件已经成为了一个无比复杂的系统工程,特别是,在如今软件业界由快速迭代的业界前沿所促生的产品服务化(XaaS)的图景下,某些自由软件由长久的技术债积累或源码本身的防御性编程实践所人为施加给用户的阻碍,让缺乏开发者支持的个人用户几乎无法对软件作出任何有效/有意义的改动,并长期维护。正如我之前所说:

换句话讲,一切架构的外包本质上都是在用安全性风险换便利。理想来讲,我们都希望自己能够从服务器硬件到 Linux 内核到 OpenSSL Nginx 一律 Attest,把 Web 数据整个生命流程都尽在掌握。这当然是绝对安全的,但也是根本不可能达到的。

在这样的背景下,前述的对作恶产品的反制在上述条件下已经不再适用;对于既有用户来说,如果他们依然想得到关键的软件系统支持,他们就只能忍受原始控制者的作恶行为。社区也同样不能起到多大帮助:自由软件斗士们自己都认识到了,即使在更加宽松的开源软件社群中,大部分软件也都并未活跃到存在一个可以随时制止并逆转开发者作恶行为的社群。很多自由软件项目中,第三、第四自由所确保的“用户集体对开发者绝对的权力抑制”这点并不适用,因为这样的集体本来就不存在。从这种意义上来说,区分“自由软件”与“专有软件”的区别已经消失,只有选择使用与不使用好软件与坏软件的区别。


最近一段时间,出于自我提升的目的,我读完了沃尔特·艾萨克森所编著的《史蒂夫·乔布斯传》。虽然这本书更偏于对乔布斯的个人描绘,但其中对苹果公司的发展,特别是乔布斯所提倡的技术方向也同样引起了我的兴趣。

乔布斯是一个狂热的嬉皮士信徒。他对于许多特异的,反理性的生活价值观有着近乎偏执的追求。“素食主义与佛教禅宗,冥想与灵性,迷幻药与摇滚乐——那个时代寻求自我启迪的校园文化中,这几样标志性的行为,被乔布斯以一种近乎疯狂的方式集于一身。”这样的偏执反应到其对产品的态度上,就酿成了苹果对旗下产品高度专有和生态整合的执念:

他认为一台电脑要真正做到优秀,其硬件和软件必须紧密相联。如果一台电脑要兼容那些在其他电脑上也能运行的软件,它必定要牺牲一些功能。他认为最好的产品是“一体的”,是端到端的,软件是为硬件量身定做的,硬件也是为软件度身定制的。

在如此的价值观指导下,苹果的产品建立在结果论的基础上 (“用户想要借助我们的产品达成某种结果”),并整合于其软硬件,用户界面和底层逻辑,在帮助用户完成其目的的同时潜移默化的迁移用户的使用习惯,以使其“更好的”达成其目的。尽管这样的“更好”是否客观非常值得质疑,但苹果的产品专注于其目的本身:予力于用户成就不凡(尽管这是微软的 Slogan)。即使这意味着对用户行为的“奴化”,苹果也依然代表着生产力的方向(或者说苹果这么认为)。

从用户的角度来讲,软件产品的成败很简单。作为一个工具,计算机应该最大限度的助力而非阻碍用户完成自己的工作。用户首先选择服务,然后在选择精神;软件产品正如任何产品一样,在高效优雅之前,首先应当功能完善。这或许是在产品上每况日下的苹果除了某种宗教般的狂热外,为何如此吸引用户的一个原因:即使是已经开始背弃乔布斯的基本价值观的苹果,其设计语言中对于一些戒律的隐藏追求也传递给了用户。苹果试图设计一款足够强大到能够有力的协助用户,又不至过度侵占用户生活的电子产品,而这正是用户所需要的。

某种意义上,自由软件斗士们与乔布斯这样的嬉皮士并无什么不同。它们都同样的将一种宣传叙事标榜为一种伟大的精神。但如果其产品本身客观上并不完善的话,无论是自由软件还是乔布斯,纯粹出于对用户宣传所得到的盲目的认同本质上都是反生产力且非理性的。换句话说,“因为自由所以用”结果却最终没能完成目标的软件本身是失败的。自由软件解放用户的前提是其产品的服务本身优于专有软件的竞品,才能进一步的以“自由”的动机解用户于专有软件之水火;即使这样的优越由于诸多客观原因无法达成,自由软件开发者也应当至少“试着”去接近这一目标。如果自由软件开发者抱持其“自由”的精神却不愿产出对用户足够尊重的软件,反而要强加于用户以其“极客精神”和“自由风格”的交互设计与底层逻辑,那么这样的软件与专有软件在奴化用户的意图上别无二致,并且比起那些虽然“奴化”但依然具有其生产力的专有软件更加邪恶:它用自己“自由”的叙事哄骗用户将时间与精力浪费于与目标南辕北辙的无底洞中。

而为自由软件所奋斗的所谓斗士很多时候掩盖了这一点,抑或甚者,根本不打算去掩盖这一点。比起开源软件对己务实的定位和对用户“众人拾柴火焰高,所以明天会更好”的许诺,自由软件自我麻醉于“自由”的精神胜利本身,自我逃避于因为缺乏维护和固执己见而产品失格,不能满足用户基本的功能,继而被不得已而淘汰之,沦为故纸堆中的软件尘埃的结局。而正因自由软件的如此逃避,其对非自由软件有效的竞争力随着自由软件日渐式弱而失去,最终背叛了自己的核心价值:平衡于软件业界的图景,与非自由软件做竞争,让更多的软件用户(不论是否主动选择自由软件)能够一定程度上摆脱非自由软件的控制。

当然,成熟完善,功能远超专有竞品的自由软件并非不存在,Blender,OBS 这样即使在工业界也广泛使用的项目就是最好的例子。支撑各种云服务的中间件也是最好的例子:其主要的用户正是最佳的开发者人选,高度重合的社群和自由软件足够低的门槛让贡献比例较一般消费者软件大大提高;如此得到的产品功能迭代和设计优化自然远超专有竞品,完善的功能性和其免费的本身又促进了其商业使用,商业广泛使用又反哺了新使用者的增长。但是这样的例子远远不够;诸如非线性视频编辑软件、浏览器内核这样的领域依然缺乏具有主要竞争力的产品。这些领域上有相应的自由软件(比如 Kdenlive、Gecko),但它们要么功能上远逊于专有竞品,要么在开发本质上已经被专有方把控。在欠缺开发者和资金支持的情况下,功能、速度、安全性逊于专有竞品并不是缺点,但自由软件业界在这些领域安于现状、自甘落后的状态并非可以接受。

自由软件的核心是“赋予用户以利用软件的自由”,这也同样包括“不使用自由软件的自由”。如果正在阅读的你有志于自由软件事业,请首先以戮力写出远超专有软件竞品的作品为目标。如果你并不愿意作为一名自由软件贡献者,不杜绝使用非自由软件并不是你的过错。用户没有任何必要为一种不成熟的精神割舍自己的数字生活体验,支持一种自由运动并不意味着盲目听从一种叙事。在支持一种精神观念之前,请首先为你的数字生活应援。


也谈自由软件
http://elfile4138.moe/2024/12/OnFreeSoftwareMovement/
Author
Matrew File
Posted on
December 25, 2024
Updated on
December 28, 2024
Licensed under