扭转Perl对初学者的态度

Perl社区一直对初学者持有“零容忍”政策。转向一个更加宽容、负责任社区的转变已经开始。过去已经过去,未来看起来更加光明。

我们的过去

从我记事起,提出一个已经被回答过的问题就是Perl社区许多致命的罪行之一。一般的态度围绕着,“如果文档对我足够好,那么对你也足够好。查阅手册。”一个第一次编程的人很容易在询问为什么这段代码没有打印任何内容的问题后在他收件箱里积累10条火焰。

  my $input    = <STDIN>;
  my $username = chop( $input );
  print "$username";

在程序员被彻底烧焦之后,他们还必须忍受有关chop()及其邪恶的5条信息,更不用说关于为什么在$username周围加上双引号将导致土地饥荒的许多警告。当然,最后几条信息包含有价值的信息,但初学者很可能甚至不会阅读这些信息。为什么有人想要让自己遭受更多的虐待,而删除消息并转向另一种编程语言要容易得多呢?

似乎我们最希望发生的事情,增加我们的人数,当初学者出现时,我们首先反对的事情。我们挥舞着“查阅手册”的剑和“垃圾文件”的盾,打击那些将这个语言带入未来的程序员。我有一个同事以说“真是个好消息,Perl如此强大和酷,它几乎可以弥补社区集体展现出的幼稚的‘精英主义’”而闻名。集体来看,这是一个令人悲伤的事实。

许多程序员最终转向了其他语言和社区,这些社区不需要他们在口袋里携带消防车。例如,Python有一个设计为“帮助台”的邮件列表。这对初学者来说已经很好了。

另一个途径是付费软件路线。如果我为微软的软件、开发资源和客户支持付费,他们会对我好。他们不会叫我新手。他们不会准备提示棒,他们会给我所有我需要的答案。信不信由你,朋友们,这也是我们的竞争。不要忘记一个被拒绝的程序员,这会影响整个公司。如果一家公司觉得支持“不足”,它有足够的钱包离开Perl。

人们可能会认为,随着Perl的年龄增长,社区会培养出一个强大、有用的媒介,帮助新来者融入我们的世界。当一个孩子出生时,需要多年的极端关注和指导。大多数孩子不会被告知坐在角落里查阅手册直到他们明白;这是残酷和不寻常的惩罚。那么,为什么我们必须有所不同呢?我们都有帮助程序员成长和成熟的能力,塑造他们的观点和意见。是我们打开心扉,回馈我们行业的时候了。我们都有接受温柔指导的经历;我们都能够回馈一些。

简而言之,这并没有带来任何好处。

向正确方向迈出的一步

上个月,Perl Porters列表上的一些人决定已经够了。Casey West开始寻找一个新的Perl初学者邮件列表。有人提出了关于列表有效性的担忧,但总的来说,得到了认可。突然,Ask Bjoern Hansen冲破人群宣布,这个列表已经被创建——三天前。;-)

现在是时候了解Perl社区是否需要一个友好、无火药味的环境来促进大众的成长和知识。现在是时候了解是否真的有大众。也是时候了解Perl社区是否愿意跳出来帮助。难道你不爱这种悬念吗?继续表演吧!

[email protected]

一个月过去了,统计数据已经说明了一切。上个月发送了1300条消息,我的mbox文件超过了3.5MB。在Perl列表中,这几乎是流量最大的列表。当然,Python的“帮助台”列表每月产生4000+条消息,表现卓越。

在正常情况下,产生这么多的初学者流量会导致列表失控,火球四处飞溅。但这次不是。Perl社区的老手们努力戴上手套,友好地玩耍。作为列表的保姆,我只得拍了几下手,他们也都做得体面。几乎所有问题至少被回答过一次,每个客户似乎都很满意。

[email protected]

beginners列表最近分成了两个。《beginners-cgi》列表的创建是为了减少流量。许多人发现很难跟上单列表的流量。考虑到我们有1000多名订阅者,这是可以理解的。

[email protected]

我创建了daily-tips邮件列表。这个列表将发送我们的每日邮件,内容包括初学者的简单技巧。这些技巧将涵盖广泛的主题,以“问答”的形式呈现。我们不会从标准的Perl FAQ中发送邮件,因为已经有这样的列表了。相反,我们将从社区接收投稿并发送邮件(也就是你!)。有关这个列表的更多信息,请访问https://learn.perl5.cn/

beginners-workers

beginners-workers邮件列表是发送你的daily-tips投稿以及你对Perl社区如何帮助初学者的想法的地方。Ask,Adam Turoff,Kevin Meltzer和我(以及其他一些人)将阅读这个列表并在必要时回答。初学者团队正在努力工作,推动多个项目的启动。感谢上述提到的人们以及许多其他人为你们持续的帮助和支持。

#perl-help

Perl社区的优秀成员Kevin Lenzo,在邮件列表公告之后,也发表了自己的公告。他在irc.rhizomatic.net上创建了一个名为#perl-help的IRC频道,甚至将可爱的purl机器人附加到了它上面。Kevin报告说,这个频道的流量适中且友好。

这是一个令人兴奋的举措,因为它提供了实时结果。能够与某人实时互动使这成为一个完全的胜利。相信我,你不会从这个频道失望而归:那里的人既快又好玩。

Perl大会上的代码审查BOF

Peter Scott和我合作,使第二届TPC代码审查比以往任何时候都要大、要好。许多顶尖的Perl人士自愿免费审查代码。格式将与去年的BOF相似。这是你从Perl的最好的人那里获得建议的机会,而不必支付他们的费用。

如果你今年参加TPC并对你的一些代码有疑问,请过来。你的问题是什么无关紧要,所有主题都开放。我们强调回答初学者的提问,但请不要犹豫,带上你最新的正则表达式引擎补丁进行审查,我们也有能做这件事的人。

继续前进,不断上升

Perl 社区在初学者列表和 IRC 频道方面已经尝到了成功的滋味。我们希望在 Perl 大会上通过代码审查 BOF 进一步巩固我们新获得的位置。那么接下来会发生什么呢?我们已经完成了吗?远远没有。

提出问题,我开始着手创建一个名为 http: 的网站,这个网站旨在帮助人们学习 Perl。目前它略显简陋,仅托管初学者列表 FAQ,由 Kevin Meltzer 维护。这一切都将发生变化。

learn.perl.org 将成为一个初学者文档项目。我们正向 Perl 社区征集教程的贡献。这些教程的主题可能非常广泛,从具有 Perl 语法高亮的文本编辑器到深入探讨为什么应该使用 while 循环遍历文件的研究。我们希望随着时间的推移,learn.perl.org 能够成熟为一个以社区为主导的中心文档项目:Perl 文档项目。

开创现状革命

开源社区普遍认为,如果你自己找不到答案,那就失去了方向。如果有文档就读文档,如果没有文档就读源码。如果没有源码,你就已经离开了我们所知的世界。如果你是一个新手,你不能从文档或源码中弄清楚,那就再见了。不仅仅是再见,而且还要让你的房子受到诅咒。

这种态度已经不够好了。坦白说,这是一种非常糟糕的行为。任何孩子都可以玩“我不告诉你,你自己想办法”的游戏,包括手指从耳朵里摇动和伸出舌头。是我们集体长大的时候了。作为一个社区,我们需要成熟起来。我们需要站起来互相帮助。

我承认,我过去曾几次充当火焰喷射器的角色。一开始这似乎是个有趣的想法,但事实上并不是。在我发送火焰之后,我感到非常糟糕,经常回到接收者那里请求原谅。这正是它对我所做的一切,我不愿意去想它对其他人造成了怎样的感受。我给他留下了怎样的印象,关于我,关于 Perl 社区,关于开源?我们在公共场合所做的一切真的有这么大的影响:无论我们是否愿意,我们都要为我们所代表的人负责。所以,让我们都成熟起来,为他们树立良好的形象。

这远远超出了 Perl 的界限(没有贬义)。我开始看到开源社区周围的意识。我们需要改变,挑战就在这里。Perl 社区已经开始其旅程,让我们成为引领开源和其他领域的人。

结束语

我的梦想是建立一个友好和开放的 Perl 社区。许多人可能觉得这个目标对我们来说过于高远。我完全不同意。我们已经向世界展示了我们几乎可以做任何事情;这应该很容易。我知道我不是唯一一个有这种看法的人。

“但,矛盾的是,Perl 最能帮助你的方式几乎与 Perl 毫无关系,一切都与使用 Perl 的人有关。Perl 的人,坦白说,是地球上最有帮助的人之一。如果 Perl 运动有什么宗教性质的话,那就在这里。Larry 想让 Perl 社区像一个小小的天堂一样运作,而且看来他似乎已经实现了这个愿望。请尽你的一份力量来保持这种状态。” —— 《Programming Perl》第二版前言

标签

反馈

这篇文章有什么问题吗?请通过在 GitHub 上打开一个 issue 或 pull request 来帮助我们。