找回密码
 立即注册
搜索
查看: 69|回复: 0

非技术出身的 Prot 获杰出新自由软件贡献者奖项,你也可以

[复制链接]

2万

主题

0

回帖

6万

积分

管理员

积分
64703
发表于 2024-10-31 11:07:38 | 显示全部楼层 |阅读模式
编译|核子可乐

编辑|燕山

“以前我对技术一无所知,但现在我掌握了编程技能,开始争取自己的计算自主权。虽然还有很长的路要走,但我至少已经迈出了步伐。”

近日,自由软件基金会(FSF)公布了 2021 年自由软件奖获奖者名单。该系列奖项将在2022年大会上颁发。获奖者主要是为软件自由事业做出重大贡献的个人、团队和社区。令人鼓舞的是,一位非技术人员(简称“Prot”)获得了今年的“杰出新自由软件贡献者”奖(Award for New Free),该奖项颁发给为社区做出杰出贡献的新社区成员。自由软件社区。

FSF 在给 Prot 的颁奖致辞中写道:自 2019 年以来,这位哲学家通过他的博客文章、会议演讲、现场视频和代码贡献,成为了 GNU Emacs 社区的中流砥柱。

是的,你没看错。今天的主角普罗特是一名热衷于学习哲学的文科学生。 1988年出生,非技术背景。他在大学学的是人文学科,近几年才开始接触科技。因此,他对获奖感到非常惊讶。

FSF 执行董事 Zoë 表示:“对于刚刚进入社区的人来说,这是一个非常鼓舞人心的榜样。” “它表明,一个人不需要几十年的经验就可以为自由软件做出贡献,甚至成为某个特定项目的核心。”

不少网友也表达了对Prot的祝贺和敬意:

普罗特是我见过的最善于表达、最谦逊、最细心、最健康的人之一。想到他进入 Emacs 和 Lisp 并在没有任何技术背景的情况下才开始贡献,真是太疯狂了。为你干杯,普罗特! ——

他在几乎没有背景的情况下学会(Emacs 和 Lisp)的速度令人惊讶。我于 2016 年学习了 Linux/UNIX,并于 2019 年开始使用 Emacs。另一个有趣的事实是:他制作这些教程视频的主要目的是练习英语。 ——

GNU EMACS 是一个可扩展、可定制、自由的文本编辑器。同时,它也是一个集成开发环境。根据 Prot 的自我报告,在过去的两年半中,他编写了数千行 Elisp 并为核心 Emacs 做出了贡献,其中包括两个完整的、具有完全辅助功能的可定制主题 - modus-。

“当我来到 Emacs 时,当我切换到 Emacs 时,当我在两年半前加入这个环境时,我找到了我需要的一切。有高质量的文档、适用于 GNU Emacs 的优秀程序、大量的博客和教程以及等等,当然,与不同的人互动,你总是能从中学到新的东西,”普罗特在获奖感言中强调,“虽然这个奖项是颁发给个人的,但我认为它真正关乎的是社区——所有无名英雄。在社区中帮助特定的人实现某些目标。”

“如果没有我们生活中的无名英雄,没有人会取得任何有意义的成就,”普罗特说。

以下内容摘自Prot在2022年会议上的演讲。他分享了为什么选择Emacs以及他对自由软件的经验和理解,希望对读者有所启发。

成为 Emacs 的忠实粉丝

这里我想谈谈我为什么会成为Emacs的忠实粉丝。各种高级功能和丰富的软件包固然很棒,但还不足以体现Emacs的精髓,尤其是其真正的价值主张。毕竟,现在大多数现代编辑器都拥有插件系统,可以为用户提供几乎所有必需的临时功能。那么 Emacs 有什么特别之处呢?

答案是 Emacs 并不是真正的文本编辑器。它实际上是一个可编程平台,文本编辑只是主要交互点之一。

Emacs 是用 Lisp 的一种方言编写的,称为“Emacs Lisp”,也称为“Elisp”。因此,它的大部分代码库和用户配置也是用 Elisp 编写的。这意味着对于最终用户来说,Emacs 仅涉及一种语言和一种范例。这样一来,内置代码和用户开发的插件代码没有任何区别,真正实现了统一的语言风格。

Emacs的核心是读取和运行Elisp的能力,这就是所谓的“评估”。 Emacs 环境使得在计算 Elisp 时可以很容易地使用相应的返回值。这些扩展无需重启程序即可实时生效,帮助用户立即交互式地观察效果。

从这个角度来看,Emacs 相当于一台 Lisp 机器,可以用来执行任何类型的程序。这里的“程序”可以指一切,包括Org或Magit这样的大型功能,也包括简化的文本编辑和操作等小型应用程序。

此外,Emacs 是自记录的,这意味着它可以理解变量值何时发生变化,并在相应的帮助缓冲区中通知用户。同样的,Emacs也可以体现各种函数的新值与当前状态之间的关系。

最后,Emacs 是纯粹的免费软件,具有内置工具和直接为所有安装的软件包提供的完整源代码。这样,文档中的显示内容与实际程序的执行内容就毫无障碍地融为一体。

我认为 Emacs 是一个集成计算环境

我是在 2019 年夏天开始使用 Emacs 的,之前对 Lisp 没有任何了解,编程水平也不高。我大学的时候学的是人文学科,所有的硬核技术都是近几年才逐渐掌握的。

Emacs 之所以吸引我,是因为 Lisp 机器展现出了巨大的潜力。我想要的是一个不同于以往日常计算工具的集成开发层。我希望有统一的主题、精确的布局、通用的操作/交互模式。此外,我还希望能够在不同的上下文或接口之间建立连接:我的邮件客户端应该能够直接与任务调度程序和文件管理器对话,我在编写文本时使用的配置需要直接适用于编程接口等等等等。

Emacs 通过自身和第三方包/自定义代码完全满足了我的所有需求。如果你愿意学习一点Elisp,那么Emacs可以说蕴藏着无限的可能性。下面,我们来看看几个不需要高技术水平就可以实现的常见工作流程:

在上述每个用例中,用户根本不需要学习任何新内容。例如,键盘宏等各种功能可以在任何地方直接使用。更重要的是,这些功能可以单独工作,也可以一起工作。

因此,Emacs 可以连接各种接口,而不会因上下文切换而产生任何冲突。

Emacs 的最后一个优点是它的易用性和易于大规模使用。例如,我想使用自定义代码来创建本次演讲中的演示内容。因为图片只占文档的一小部分,所以很多朋友会认为这是一个预先构建的PPT。不需要,我可以直接编辑里面的普通文本。所以我实际使用的是Emacs中极其简化的“焦点模式”。该模式在演示、阅读、写作、编程等场景中表现良好。

而且我在 Emacs 中所做的一切只需要完成一次。我不需要在电子邮件客户端中设置自定义焦点模式,然后为文本编辑器/处理器或议程规划器设置更多其他焦点模式。完全不需要,使用相同的模式即可。此外,我不需要单独的工具来进行文本编写和演示。所有功能统一可互操作,美观又简单!

另外,底层配置全部在Elisp中完成,进一步简化了整体效果。在使用 Emacs 之前,我经常不得不为每个应用程序使用不同的范例和/或语言。例如,各自的设置菜单不同,无法相互通信。 Mutt 有自己的配置方法,Vim 和 Tmux 也是如此,而终端仿真器仍然迫使人们一遍又一遍地做无用的工作。

我并不是说应用程序不应该有自己的配置。我只是建议两者结合起来使用,目前互不相关、相互分离的状态肯定是不够好的。用户只能尽力将功能孤岛拼凑成整个系统。即使付出了很大的努力,仍然可能存在缺陷甚至安全缺陷,因为这些程序不是来自同一平台或使用同一语言。

在Emacs中,每个新的功能包都会自动获取其他包中已有的内容,比如相同的字体配置和主题、常用的操作和交互模式等。基于此,我们可以大大加快工作流程。 Emacs 内部发生的所有事情都存在于同一个环境中,所有上下文都可以相互关联,并且用户可以随意进行此类连接。这种高度集成且独特的统一体验也构成了 Emacs 价值主张的核心。

一致性和自主性

就其许可证而言,Emacs 是免费软件。但它给最终用户带来的自由并不仅限于法律或道德层面,还体现在实践层面——即上面提到的集成计算环境。

Emacs 的可扩展性允许用户使用他们的计算设备真正执行各种处理任务。同时,Elisp的统一特性降低了进入门槛,彻底消除了以前拼凑应用程序而没有全面知识库的共同基础的困境。

日常生活中的自由是极其宝贵的,而Emacs这个工具代表了我们对自由的向往,帮助我们尽可能缩短开发目标与计算机呈现结果之间的距离。

软件的自由体现在计算手段的所有权上。基于灵活的所有权,我们可以在计算领域自主发展。这种自主权使我们可以自由地为既定目标选择工具,而不受硬编码甚至固定实体服务的限制。

在我看来,我们每天使用的各种应用程序之间缺乏集成绝对是一个大问题。我觉得我没有应有的权利,也无法获得工具来完全做我想做的事。然后最大的矛盾出现了:自由软件限制了我的自主权,让我不自由。结果是 1+1

换句话说,这些工具正在“教我们做什么”,而我们作为用户对这些“教条”的制定完全没有影响力。

但在Emacs的帮助下,我终于在日常计算中消除了这些异构、异质的因素。现在,我几乎所有的创作都是在 Emacs 上完成的:阅读和写作、文件管理、任务规划和组织、电子邮件通信、音乐收藏和播放、互联网浏览等等。唯一的例外是,我真的离不开图形化的生活。网络浏览器。

让我们更抽象地谈谈。自由的概念包含两个层次:名义上的自由和实质上的自由。前者体现在代码库所遵守的许可证上,后者体现在代码库本身的内容上——即使用它的整体感觉,以及代码库如何与其他程序或工作流程相契合在特定的环境中。我认为软件自由这个话题特别有趣,值得进一步探讨。正确性、可组合性和可扩展性都是软件代码的基本属性。只有将这些属性有机地结合起来,程序才能在实践中充分发挥其能力。所以我们需要的是实质性的自由,而不仅仅是许可条款层面名义上的自由。

假设有一个程序,没有文档,没有代码,而且极难理解。虽然它遵循免费许可,但各种现实提醒我们,它与用户体验层面的自由和自主无关。用户很难理解这个程序的内部运行逻辑,自然也无法理解它为什么给出最终的结果。根据我个人的经验,我认为这是典型的名义上的自由——只存在于许可条款中而在实际体验中完全缺失的“自由”。这绝对不是真正的自由。

使用Emacs的经历也让我认识到,作为一个软件技术社区,我们的关注点必须始终以最终用户为中心,不应该发布用户没有权限操作的代码。相反,我们应该开放并允许用户管理自己的计算。自由软件不仅仅是取代专有代码,更重要的象征意义是激励人们改变对独立思考的态度。社区与用户之间的关系不仅仅是给予和接受,更是引导用户习惯争取自由、承担责任。

这样做的最终目的是将人们从长期限制我们的版权制度中解放出来,与用户交换权利。是的,代码本身并不是最终目标,所以开源社区必须有勇气摆脱公式化的版权文档。 “接受或放弃”的一刀切方法既不能赋予用户权力,也不能培养他们的自主权。一个优秀的项目不仅应该是可访问的、可配置的、文档齐全的,而且还应该为自由事业的发展做出贡献。

推进这一事业的第一步是打破软件障碍,让所有程序协同工作。最终,用户将学会如何控制他们的整个计算机,让每个人都能真正成为自由软件新时代的一部分。

Emacs 社区和我的社区贡献历史

谈论了Emacs这么久,我们其实已经有了自己的社区了。 Emacs 社区欢迎新人,并希望传播知识和分享想法。 Emacs社区一直对开发质量有着极高的要求,并将其视为关系到用户自由的重大问题。目前,常规的 Emacs 软件包提供了详细的文档,允许用户通过各种选项配置他们想要的用户体验。

Emacs 社区清楚地意识到我们无法控制最终用户的主动性。因此,所有相关代码都具有良好的扩展性和定制空间。社会一直认为自由是一种主体间的经验展开,仅在法律层面放松限制是不够的。因此,Emacs 提倡浓厚的文档文化。每个 Elisp 表单必须用自然语言解释其功能,每个功能包必须提供使用和配置说明。我们希望通过这种方式保证最小的计算自由度。

这就是 Emacs 的工作方式,并且它一直延伸到核心应用程序。作为一台 Lisp 机器,Emacs 从一开始就被设计为充分赋能最终用户并重新审视所有现有规则。例如,我学习 Elisp 的道路是从编写小型函数包装器开始的,这些包装器调整了某些默认操作的执行方式。我想向“向下移动一行”命令添加功能以支持向下移动特定行。 Emacs可以实时评估代码并开放完整的源代码和相关文档。正是有了这种开放性,我才能够理解如何定义函数,然后通过反复试验编写我的第一个自定义 Elisp。

之后我继续调整Emacs,希望能够实现一些有利于我日常工作的小优化。在此期间,我逐渐掌握了Elisp,并利用这些新知识来舒适地操作Emacs。在过去的两年半中,我编写了数千行 Elisp 并为核心 Emacs 做出了贡献,其中包括两个完整的、可访问的、可定制的主题,称为 modus-。

换句话说,我在成为 Emacs 用户的前三个月学到的编程知识比我在前三年参与自由软件社区学到的还要多。对我来说,这是社区引导最终用户成长并满足他们的需求的最佳例子。我曾经对技术一无所知,但现在我已经掌握了编程,并开始争取自己的计算自主权。虽然还有很长的路要走,但我至少已经迈出了步伐。

参考链接:

InfoQ 将于近期对 Prot 进行采访。如果读者有什么想了解的或者有疑问的,欢迎在评论区留言。

今日推荐文章

推荐活动

2022年是工业数字化深入发展的一年。 “打造敏捷组织,向内求效益”成为企业数字化转型的主旋律。从组织文化的敏捷性、激励体系的敏感性,到人才培养的系统性,都是企业修炼内功的必修课。

3月31日,由Geek Time企业版与InfoQ极​​客传媒联合主办的DTDS全球数字化人才发展线上峰会,将邀请数字先锋专家、数字化人才发展领袖,带来领先企业的数字化发展经验、敏捷的精彩演讲数字化组织转型与人才梯队建设。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|【远见汇智】 ( 京ICP备20013102号-17 )

GMT+8, 2025-5-7 00:49 , Processed in 0.058829 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表