本能富可敌国,最后却选择拯救世界!Bram的Vim和乌干达儿童

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/csdn_kou/article/details/83040932

他本能富可敌国,最后却选择拯救世界

在命令行界面输入vim会出现一堆文件,但是一直有这么一句话

Help poor children in Uganda!

“帮助可怜的乌干达儿童”

查询了一下这里面相关的历史背景和知识

在Vim许可证文件结束后的部分翻译

-如果您在 Vim 中找到了乐趣,请阅读剩下的部分,并且考虑一下是不是可以帮助乌干
达的儿童。用这种方式来表达您的喜悦之情。

-如果您想更好地支持 Vim 的开发工作,请考虑成为一名 |sponsor|.
http://vimcdoc.sourceforge.net/vim70/doc/sponsor.html#sponsor

在上面作者提供的sponsor链接中,又找到了另一个关于乌干达的链接

如果您并不想赞助 Vim 的开发或成为一名注册用户,但是想帮助那些贫穷的儿童,请考虑向 ICCF 的荷兰基金会捐赠。这是 Vim 的作者建议我们做的慈善事业。这些钱会用到乌干达南部的儿童中心,那里有很多艾滋病的感染者。参见 |uganda|。
http://vimcdoc.sourceforge.net/vim70/doc/uganda.html#uganda

Kibaale 儿童中心 kcc

Kibaale 儿童中心(Kibaale Children’s Centre 简称 KCC)位于 Kibaale。Kibaale是乌干达南部的一个小镇,靠近坦桑尼亚。这里属于 Rakai 地区。大多数人是农民。虽然人们很穷,但是食物很充足。这是世界上受艾滋病影响最严重的地区,有人说这里是艾滋病的发源地。据估计,有 10% - 30% 的乌干达人受到感染,是 HIV (人类免疫缺陷病毒,即艾滋病病毒。译者)的携带者。由于父母双亡,这里有许多孤儿。在这个
仅有 35 万人口地区,却有大约 6 万儿童失去了双亲或单亲,而且这种状况正在持续。

孩子们需要很多帮助。KCC 一直很努力地提供一些帮助,比如:食物、医疗和教育。食物和医疗使他们保持健康,而教育可以让他们在以后的生活里照顾自己。KCC 是一个以基督教为基础的组织,但是他们为任何宗教信仰的孩子提供帮助。

解决问题的关键是这一地区的教育。然而在 Idi 总统执政期间以及后来的国内战争的几年时间里都把这一问题忽视了。现在政局已经稳定,孩子们和他们的父母有必要学会怎样照顾自己,以及如何避免感染。饥饿的人和生病的人也同样需要帮助,但我们最主要的目的是让他们远离疾病,教他们怎样种植健康的食物。

大多数孤儿都住在亲戚家里,由叔叔和稍大一点的姐姐照顾他们。因为家庭很大,所以收入(即使有的话也)很少。一个孩子如果能得到健康的食物就很幸运了。衣服、医疗、受教育,这些都是奢望。于是,为了帮助这些可怜的孩子,一套捐助程序启动了。一个孩子可以通过人们的捐助来收养。每月捐助几美元,由KCC来管理,给孩子们必须的、卫生的东西,让他们上学。KCC 还帮助孩子们和支持它的家庭做一些别的需要做的情。

除了直接帮助孩子外,孩子们的成长环境也有待改善。KCC帮助学校改进他们的教学方法。
在中心有一个示范学校,老师们可以在那里得到培训。健康的工人接受培训,卫生教育活动也展开了,人们在家里面建造合适的洗手间。我帮忙建设了生产水泥板的地方,水泥板可以用来做一个很好的洗手间。它们的出售价格低于成本价。

我们还建了一个小诊所,可以给孩子和他们的家庭提供一些药物,如果需要,病人可以被转往医院。接种疫苗的程序也已经启动,并且在传染病肆虐的时候起到了作用(麻疹和霍乱曾经是一个问题)。

从 1994 年夏天到 1995 年夏天,我作为志愿者在中心工作了整整一年的时间。其间,我帮助参与了中心的扩建,水质检测和疾病的预防工作。我觉得KCC所提供的这些帮助真的是很有用。现在我回到了荷兰,但是我想继续支持KCC。于是我筹措资金组织了这个捐助项目。请考虑下面几种捐助方式:

1、捐助一个读小学的孩子:每月17欧元(或更多)。
2、捐助一个读中学的孩子:每月25欧元(或更多)。
3、捐助诊所:每月或每季度,数额不限。
4、一次性捐助。

相对于其它组织而言,儿童基金募集的这些钱就显得微不足道了。这是因为款项直接进入中心,其中不到 5% 的捐款用于管理,对于一个志愿者组织来说,做到这一点并不难。如果您想捐助一名儿童,那么您应该有至少捐助一年的准备。

您怎么知道这些钱用到了该用的地方?首先,以我个人(Vim 的作者)的名义向您保证。
我信任在中心工作的人,并且非常了解他们。再者,中心是合作捐资建成的,受到世界宣明会(World Vision), 保护儿童基金会(Save the Children Fund) 和世界关注儿童基金会(International Child CareFund)的审视。我们几乎每年都自费到中心去查看进展状况,我先后在 1996, 1998, 2000, 2001 和 2003 年访问过中心,在 ICCF 的网站上有相关报道。

Bram给捐助的人士提供了一个投票权,作为回报

https://www.vim.org/sponsor/vote_results.php

节选投票结果前5名(2018/10/13)

points voters feature
1 127 (-3) 43 -2 fix all problems, big and small; make Vim more robust
2 113 38 improve syntax highlighting speed
3 104 34 add more and better omni completion plugins
4 98 (-4) 26 -2 improve folding
5 88 26 improve the performance of scrolling and displaying

欧洲以外国家如果捐款

世界其它地方:
通过邮局汇款,这应该在任何国家都可以。
我的名字(护照上的名字):Abraham Moolenaar
如果有可能,请兑换成欧元。
。。。。。。
好像有信用卡还可以怎样,我也不太懂!总之很复杂 ,建议开通支付宝

感谢Bram为我们带来开源的编译器,也希望乌干达的儿童能茁壮成长。

同时在最近刚出来Top20编辑器Vim没有上榜,不禁感叹也许喜欢用Vim编辑器的人越来越少。作为一个Vim编辑器的爱好者,仿佛就像是一个拥有传统工艺的老手艺人!

2018/10/20 更新

Bram Moolenaar
VIM编辑器的作者

Moolenaar先生,能介绍一下你自己吗?

我居住在荷兰东边,现在全职搞开源软件。我一个人生活,这样我就不必供养一个家庭。那会很难,因为我做的大部分工作没有报酬。我在家里工作,这样就避免了因为交通阻塞而浪费时间。我和外部世界的大多数沟通是通过email完成的。为了补偿自己,在假期我会到离家很远的国家旅游。我喜欢了解不同的国家及其文化。


你创造了一个VI编辑器的克隆产品。为什么你会选择VI?


最初那是个偶然的选择。因为在大学的课堂上我们被迫使用这个复杂得可怕的编辑器,却只有一页纸的文档。我开始欣赏VI是很长时间以后的事情了,那时我发现VI让我可以快速编辑文档。一旦我的手指习惯于VI,任何其它的编辑器就显得如此迟钝。因此一旦我拥有了一台amiga计算机,我必须要做一个类似VI的编辑器。那就是我决定开发VIM的原因。


VIM是你从头开发的还是派生于其它的VI克隆?


我开始于Stevie。这是Atari ST电脑上的VI克隆,后来移植到了Amiga。它仍有大量的问题,尚不能完成VI能做的任何事情,但是自从放出源代码,我可以自己修正它们。那也是我怎么开始欣赏软件开源的原因。一旦修改代码的数量超过Stevie最初代码,我就把它命名为VIM。


你是用开源协议发布VIM的,向我们描述一下该协议。为什么你不选择GPL?

VIM和其它许多开源项目的区别在于我完成大部分工作。基本上来说它是我的项目,即使许多其它人曾在工作上帮助过我。我决定什么特性能加进去什么不能。需要考虑一种符合运行该项目的协议。它允许随意部署未修改的VIM副本。修改过的代码我必须能获取到。该协议的一项重要条款是,我可以决定如何处理这些修改。这样如果经过我的允许,一些人就可以把VIM代码用到非自由、非开源的项目中。GPL协议则不允许那样做,因此从那个方面看GPL自由度小一些。理论上你可以在其它协议下使用以GPL协议发布的代码,但是你必须从所有版权人那里获得授权才行。那将非常复杂。实际上我只在很久之前申请了一次特殊授权。VIM的协议从6.1版起升级到兼容GPL。那要求可以部署用GPL协议的代码库编译的VIM副本。这也凸显GPL协议的主要缺点:它事实上是通过限制自由来实行自由的。

籍助于VIM捐助,你援助了乌干达的孩子们。你能看到自己慈善行动的明显成绩吗?

我定期拜访乌干达的孩子中心。每次去那里我都能看到进展。中心的学校在不断发展,我认识的许多孩子持续接受更多的教育。幸运的是,乌干达政局非常稳定,经济也在发展。这让该项目能够专心于改善学校和诊所。这意味着我们寄去的钱真的有助于改善条件并保持长期影响。我们现在看到,孩子完成他们的学业并返回中心工作来帮助教育更年幼的孩子。


最初的ex/vi的设计怎么可能仍如此实用?

基本想法一直是这样的,最重要的命令都是通过键盘的一些标准键来传达的,大多数是字母键。这使我们可以很快输入命令。VIM保留了VI的这一设计,但增加了许多在其它编辑器里发现的特性。这样你在两个世界里都得到了最优秀的编辑器:常用命令可以快速键入,还有一些高级特性可用。


人们通常对它既爱又恨,为什么?


在你能上手之前你要花费很长时间来学校Vi或VIm。如果你只试用十分钟就放弃它,那么你将只会记住受它折磨的痛苦时刻。当你不曾花费时间学习超越基本命令的部分的时候,你将不会获益于可能的有效编辑。但是当你的确学会使用Vim时,你能非常有效地工作,并会喜欢使用它。之后你会开始觉得其它编辑器很麻烦。比如,大多数其它编辑器不能重复一项变动。当我偶然使用word,结果我在编辑器里输入了":w"和"jjj"。


是的,比如当记笔记时这非常有帮助。当你在VIM上工作时你在用VIM吗(开玩笑)?

当然了。我用Vim来处理所有问题。大多时间使用最近版本,这样如果我犯了某个错误,我会是第一个注意到的人。


关于这个问题你透露一下:你使用什么操作系统?

我的主战场运行于freebsd4.9。它非常可靠,虽然有一些保守。我的桌面是KDE,虽然在实际工作中我大多时间运行xterms。我也有一台运行windows的机器,它用来进行Vim开发和运行一些驱动程序只兼容windows的特殊硬件。偶然我也切换到我的Amiga2000机器上,Vim开发是在那里开始的。


我们(整个编辑部门)常常使用Vim,我们认为它的开发已经结束。你认同我们的观点吗?


我也奇怪我是否应该停止加入特性并只是修改bug。所以我让赞助人投票决定是否加入某个特性。其中一项就是“停止加入特性,已经足够了”。它位于投票列表的最底端,这样就很清楚Vim用户的确希望加入新的特性。


所以你不想和Knuth先生对待他的Tex那样的激进。
告诉我们有关编辑器整体设计的一些事情,你使用什么语言和技术?

我使用优秀的古老的C代码。为了和足够多的C编译器兼容,我在使用现代C编译器的某些特性方面非常保守。这大多时间只出现在GUI代码里,无论如何它还是需要一个现代C编译器。主代码甚至不使用ANSI函数原型,因为它们不兼容那些更古老的系统。使用纯C的主要优势在于它相对来说简单一些,有很多可以使用的工具。代码体积可以庞大一些,需要在释放分配内存时小心一些。但是它比C++容易得多。像Java或Python这样的语言可能更容易一些,但是他们运行起来要慢很多。

你认为Vim太艳丽了么?

在Vim里有很多途径来改变颜色。我个人更喜欢只对少数情况配色。它使快速辨认不同的文本块变得非常容易。你可以在C语法高亮里看到配色结果,这样很容易就找到注释。但并不是每块文本都高亮。运算符或函数名并不高亮。一些人写了对所有高亮每块文本的语法脚本,如果你不喜欢那样你可以修订语法脚本规则,为更多的规则选择标准文本颜色。


告诉我们一些关于最近稳定版本的新特性。


Vim6.3加入了一些新特性。我专心于修正所有报告的bug。加入了一些命令,主要为了使写脚本更为快捷。比如:keepjumps使我们可以在不影响跳转表(jumplist)的情况下在文件间跳转。一个真正的新特性是支持翻译的帮助文件。那是因为现在有意大利和法国的文档翻译。这样用户需要通过“helplang”选项来选择他们喜欢的语言。以后会陆续增加更多的文档翻译。


你的近期和长期计划是什么?

Vim7将加入许多新特性。我已经开始加入人们发送给我的补丁。现在已经支持KDE了,使用的是Qt库。已经支持在PostScript打印机打印多字节文本。我计划往Vim脚本语言中加入列表和字典,这样使编写高级脚本变得更容易些。Vim脚本语言起初非常简单,但是Vim用户用它编写了越来越多的复杂脚本。在www.vim.org上可以发现超过一千个脚本。加入两个数据类型会使脚本编写更为简单。不知何故Vim用户不喜欢使用Python和Perl接口,这样扩展Vim脚本语言是势在必行的了。

我也计划加入一些大特性。我会用投票列表来决定先加入哪个。目前位于列表顶端的是智能补全,也可以称之智能感知(intellisense)。那个实现将是个挑战,尤其假设它应该支持许多语言和所有的平台。

我也需要清理一下代码。大量东西被加入,长时间的修改,导致代码混乱和函数冗长。这不仅是为了使代码看起来好看,它也应该避免犯错误。一些部分已经变得非常复杂,要想修改而不引入新的bug非常困难。但是我很谨慎,代码清理本身也可能引入问题。为了防止这种情况,需要增加更多的测试,这也是Vim7的另一个目标。


你认为linux发展的方向正确吗?

我不认为对linux而言只存在一条路径。它可以在同一时间无错误地往许多方向发展。我的确看到了一个危机:目前的linux开发大多数是由技术人员驱动的。他们是为linux工作机制做选择的最佳人选。商业和市场人员将尝试把linux朝不同方向推动,目的只有一个:赚更多的钱。我确实希望,这将不会导致错误的选择。


你害怕软件专利权吗?你在源代码里有专利审计吗?

我意识到软件专利权的危机。幸运的是,在欧洲软件专利权仍未被承认。这意味着要想控告我个人在代码里使用有专利的概念是困难的。仍存在一个危机,公司可能停止部署Vim,因为他们需要通过我的授权。这仅是一个很小的风险,因为我没看到哪家公司因为停止部署Vim而获利。很明显,没人会向他们支付一笔协议费。我将只是删除那些侵权代码。

专利审计只能由那些管理大量钞票的专门人员来完成。为Vim不值当做那些。我不确信为了几篇代码的小软件值得那样做,因为为了发布软件那将需要好几年才能申请下来一个专利。因此甚至当审计不出任何问题,次年才出来的专利仍会导致问题。专利系统执行情况实在太恶劣了,尤其在美国。真正获利的人只有那些律师和专利局的雇员。那就是为什么他们是承认软件专利权的主要支持者。



如果软件专利权被承认了并且一些公司为“使用H,J,K,L来移动光标移动”申请了专利,你将采取什么措施?我们说的一些拥有商业化vi克隆产品的公司,他们想消灭对手。你会从vim里移除这项特性吗?

不可能为已经众所周知的方法申请专利。这被称为现有技术(prior art)。很明显像使用hjkl来移动光标这样的方法在专利申请之前就已经存在了。然而,专利局不可能知道这个,无论如何也会授权该专利。那时我将不得不为了自卫而展开一场合法的战争。我不知道我从哪里获得这笔活动资金。专利律师太昂贵了。


感谢你接受这次采访,我们希望你在个人生活和职业生涯都能取得成功。

--------------------------------------------------------------------------

原文:http://www.moolenaar.net./interv_czech_en.html
译者:http://www.yeeyan.com/space/show/joshyu

展开阅读全文

没有更多推荐了,返回首页