如何贡献自由软件运动
2025-02-05 15:16:47 [指南] [贡献]当你因自由软件运动而受益,希望自己也能为自由软件运动做些什么的时候,本指南会对你有些帮助。
自由软件社区是开放而包容的:无论你是否是程序员,是否会编写代码;无论性别、国籍、民族、年龄、宗教信仰等等等等,只要愿意为自由软件出一份力,都可以参与其中。欢迎来到我们的自由软件社区!
注:这个指南基于本人浅薄的个人经验编写,如有不同意见,欢迎联系 carterfswzhcn@autistici.org 批评指正。
对于自由软件本身的贡献
会写代码——当然是贡献代码了
如果你是程序员,或者是计算机专业的在读学生,反正你会编写代码,最直接的贡献方式当然是为自由软件贡献代码。这不仅让你能够为自由软件项目作出一定贡献,还能同时大大提升你的编写和阅读代码的能力。
或许你会选择从头开始一个自由软件项目,编写一些好玩的东西,例如音乐播放器或者小游戏。你需要一个 Forge 来托管你的代码,推荐使用 Codeberg 或 notabug,当然手头有服务器当然可以自建一个。不推荐使用 GitHub,因为 GitHub 是中心化且专有的,并且 GitHub Copilot 因盗窃自由软件代码训练大模型而臭名昭著。为自己的项目选择正确的许可证是很重要的:这个网站帮助你选择正确的许可证。当然,绝大多数情况下我们建议你为你的项目选择 GNU GPLv3 许可证,因为这作为一个 Copyleft 许可证,可以在一定程度上保证专有软件不会因为你的贡献而受益——专有软件是不道德、不公正的,使专有软件从自由软件项目中受益是也是不公正的做法。
当然,你或许也可以贡献现有的自由软件项目。从你应用列表里面选择一个你感兴趣的程序,了解它使用什么语言编写;如果它正好是你擅长的编程语言,则你可以直接打开它的源代码仓库参与到贡献当中。使用 Git 将源代码仓库克隆到本地并修改代码,之后你便可以发起一个 Pull Request。
英语够好——参与翻译
绝大多数自由软件都是使用英语编写的,很多自由软件都无法被英语较差的中文用户使用。因此,翻译这些自由软件可以帮助中文用户们更好地使用这些自由软件。当然,如果你会更多其它语言,那就更好了——你可以同时参与多种语言翻译的贡献。
最常见的自由软件项目翻译平台是 Weblate,Codeberg 便有一个 Weblate 实例。找到你感兴趣的项目,并开始逐个翻译字符串。
当然,翻译文档也是一个不错的选择。这也在一定程度上锻炼了你的语言能力。
参与文档和教程的编写
自由软件需要自由的文档来帮助用户们使用。因此,基于你自己对于某款自由软件的使用经验,如果它缺乏相应的文档,你可以参与到它的文档编写中。很多自由软件项目的官网或源码库都可以找到相应的文档或 wiki,以及——它的贡献指南。
除了文档外,为自由软件的使用提供一些简明的教程也是一个不错的做法。你可以参照自由软件中文网上的教程,来了解自由软件使用教程的体裁、行文结构,以及如何做到新手友好。你可以自建自己的博客来发表这些教程,推荐使用 Codeberg Pages 托管静态网页,它是完全免费的;Hugo 和 Zola 是很优秀的静态网页生成工具,可以用来快速建立自己的博客;以上静态网页生成工具需要使用 Markdown,可以在这个网站学习简单的 Markdown。当然,在线有的网站上发表教程,例如 CSDN 和自由软件中文网都是不错的选择;如果你会制作视频教程,还可以将其发布到哔哩哔哩。
自由软件思想的传播和自由软件使用的推广
避雷:不要把目标计算机用户吓跑!
推翻所有的专有软件、让所有的专有软件及其开发者走向毁灭、堕入深渊,实现 100% 的自由软件,当然是我们的理想和目标。但是,短期内这个目标无法实现,我们不能过于激进。所以,不要一开始就拿大家都无法换掉的专有软件作文章,这样人们只会觉得转移到自由软件是“无法完成的任务”、实现软件自由是“无法达到的目标”,只会把普通的计算机用户都吓跑。例如,不要一开始就说:“微信是恶意软件,它有 XXX 等恶意功能,所以不要用微信了。”那样的话对方只会回复你:“我也不想用微信,但我不得不用。”微信已经成为了几乎所有人生活当中不可或缺的一部分,虽然它的危害极大,但是在推广自由软件的过程中将它作为首要的反例是不合适的。甚至我自己都走过这样的弯路,自由软件中文网第一篇正式的文章便是赤裸裸地抨击微信的,以及我在向身边人推广自由软件的时候也是一开始就拿微信说事,后来我才发现天下苦微信久矣,想要卸载掉微信的人千千万,但 ta 们真的无能为力。
比较好的做法是先从比较容易替换掉的专有软件开始。例如,当你看到身边有人在使用 PotPlayer、迅雷影音的时候,你可以推荐 ta 转移到 VLC——VLC 显然是一个比 PotPlayer、迅雷影音远更加优秀的多媒体播放器,大家作出这样的替换也不需要耗费过多的力气。但是,并不是不容易替换掉的专有软件就不再去考虑替换了——我们需要明确替换掉尽可能多乃至全部的专有软件的目标,只是我们可以先从容易替换的开始。
推广自由软件的使用
推广自由软件的一种常见做法是推广自由软件本身的使用。在这个过程中,不必讨论过多意识形态方面的东西(否则会像前面说的那样把对方吓跑的),可以适当侧重于实用性的角度,介绍你要推广的具体自由软件的优势(例如它的一些功能),以及自由软件共有的优势(例如自由修改、一般没有广告、一般不过多消耗系统资源、一般免费、尊重隐私等)。与专有软件的对比可以涉及,但对于专有软件的批判篇幅不要过长。或许你可以说:“我试过 X 软件,它的 X 功能非常好,而且它还是自由软件,你要不试试?”
推广自由软件思想
不仅推广自由软件本身很重要,推广自由软件思想也很重要——只有解放思想,才能实现革命。你可以在和身边的人闲聊的时候,提及自由软件的优势和专有软件的危害,以及为何要转移到自由软件。但是,同样,言辞不要过于激进。可以参照自由软件中文网发布的软件自由指南,结合对方的软件自由状况,设身处地地站在对方的角度上考虑,按照对方所能达到的程度组织语言。最好是做到让对方充分理解自由软件的优势、专有软件的危害,但是不要让对方觉得目标过于遥远而失去进行下去的动力——一步一步走是很重要的。还是那句话:不要上来就拿像微信这样的软件说事!!
当然,在网上发表文章阐述自己的观点也是可以的。可以按照前面提到的方法建立自己的博客,也可以发表到 CSDN、哔哩哔哩这样的网站。向自由软件中文网投稿观点类文章也是可以的,但是要注意意识形态——自由软件中文网的意识形态与自由软件基金会保持一致,同时考虑中国的客观实际;意识形态过于偏左(例如脱离自由软件运动本身讨论,上升到共产主义、政治经济学等政治高度)或过于偏右(例如淡化甚至否定专有软件的危害,意识形态接近开源派)的文章都会被拒稿。
坚定立场
自由软件和开源软件大体上是指同一类软件,但自由软件运动和开源运动的目标是完全不同的。自由软件运动为计算机用户所应有的权利和自由声张,而开源运动更注重协作开发对于软件质量的提升。并且,现在开源运动愈发成为了专有软件开发者对于自由软件阵营进行和平演变的阴谋,我们必须矢志不渝坚定坚持自由软件思想、自由软件方针、自由软件路线。请说自由软件,不要说开源软件,一般也不要使用自由开源软件、FLOSS/FOSS等中立说法。
一些用语也要规范使用。例如,说 GNU/Linux 而非 Linux,因为 Linux 只是一个内核;并且,将基于 Linux 的操作系统整体称为“Linux 操作系统”,也间接否定了 GNU 等自由软件项目的贡献,也伤害了自由软件运动。