分类 观点 下的文章

2020 年对于 Linux 基金会 Linux Foundation (LF)和我们托管的社区来说,是充满挑战的一年。在这次大流行期间,我们都看到我们和世界各地许多同事、朋友和家人的日常生活完全改变了。在我们的社区中,有太多的人也为失去家人和朋友而悲痛。

看到 LF 的成员加入到对抗 COVID-19 的斗争中,令人振奋。我们在世界各地的成员为科研人员贡献了技术资源,为挣扎中的家庭和个人提供了援助,为国家和国际努力做出了贡献,有些人甚至一起在 LF 公共卫生 下创建了开源项目,以帮助各国应对这场大流行病。

今年,我们的项目社区在继续发展,在许多开放技术领域、开放标准、开放数据和开放硬件方面都有新的举措。今年,我们迎接了 150 多个新社区加入 LF,包括 FINOS 基金会,它是开源金融服务项目的保护项目。

我们的 活动团队 不得不进行了重大转型,在几周内,从面对面的活动转变为虚拟活动,参与者从不足 100 人到数万人不等。这些虚拟聚会帮助我们社区中的许多人在这个困难时期建立了联系。我们也学到了很多关于未来可能通过提供虚拟体验的 混合亲身活动 hybrid in-person events 来提供更具包容性的体验。今年,我们很想念在我们的社区中见到的许多朋友,并期待着在安全的情况下再次见到你们。

我们的 培训和认证 团队能够帮助 170 多万名报名参加我们免费培训课程的人。我要祝贺今年获得 LF 认证的 4 万多人。

LF 的 2020 年度工作报告》显示,尽管商业环境充满挑战,但经过培训和认证的开源专业人员仍有大有需求,并能轻松地展示其价值。

作为我们正在进行的多元化努力的一部分,在加入反对不平等的斗争中,我们的社区专注于该如何在项目中使用语言,并寻找导师来指导下一代的贡献者。我们的社区,如 Linux 内核团队和在北美 KubeCon 上发起的 包容性命名倡议 Inclusive Naming Initiative ,在加强我们的互动方式上取得了进展。

今年是我们 联合发展基金会 Joint Development Foundation (JDF)和 开放标准社区 open standards communities 的突破性一年。我们迎来了六个建立开放标准的新项目。JDF 还被批准为 ISO/IEC JTC 1 公开发布规范(PAS)提交者。今年还标志着我们的第一个开放标准社区 OpenChain 通过 PAS 程序,被正式认可为国际标准。今天,Linux 基金会可以把我们的社区,从开源仓库带到一个公认的全球标准。

今年,我们生态系统中的许多人已经站出来帮助安全工作。一个新的社区 开源安全基金会 Open Source Security Foundation (OpenSSF)启动了,以协调专注于提高开源软件安全性的努力。

当我们继续在美国与挑战作斗争时,我们也重申 LF 是全球社区的一部分

我们的成员必须得应对国际贸易政策变化的一年,并了解到开放源码在政治上的蓬勃发展。来自世界各地的我们的成员社区参与了 开放合作 open collaboration ,因为它是开放、中立和透明的。这些参与者显然希望继续与全球同行合作,以应对大大小小的挑战。

在这困难的一年结束时,所有这些都让我们确信,开放合作是解决世界上最复杂挑战的模式。没有任何一个人、组织或政府能够单独创造出我们解决最紧迫问题所需的技术。我们代表整个 Linux 基金会团队,期待着帮助您和我们的社区应对接下来的任何挑战。

Jim Zemlin,Linux 基金会执行总监

这篇文章首先发布于 Linux 基金会


via: https://www.linux.com/news/download-the-2020-linux-foundation-annual-report/

作者:The Linux Foundation 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

代码英雄讲述了开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。

什么是《代码英雄》

代码英雄 Command Line Heroes 是世界领先的企业开源软件解决方案供应商红帽(Red Hat)精心制作的原创音频播客,讲述开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。该音频博客邀请到了谷歌、NASA 等重量级企业的众多技术大牛共同讲述开源、操作系统、容器、DevOps、混合云等发展过程中的动人故事。

本文是《代码英雄》系列播客《代码英雄》第三季(4):深入 Perl 语言的世界音频脚本。

导语:语言来了又走。只有少数几种语言具备了登峰造极的能力,而能留在那里的则更少。Perl 有过一次惊人的崛起,也有过一次平静的低迷,现在已经在编程世界中找到了自己的位置。

Perl似乎注定要统治网络。Michael Stevenson 和 Mike Bursell 描述了 Perl 的设计如何使它成为早期 web 的理想选择。我们从 Conor Myhrvold 那里听到了它的座右铭:“ 实现它的方法不止一种 There is more than one way to do it. ”。Elizabeth Mattijsen 分享了,尽管 Perl 有优势,但漫长的开发周期如何减缓了 Perl 的发展。虽然它不再是最顶级的网络语言,但 John Siracusa 指出,Perl 作为一种小众工具仍然存在。

00:00:02 - Saron Yitbarek

想象一下 Perl 语言的创建者 Larry Wall 在 1999 年的一次会议上站在麦克风前,留着他标志性的浓密胡子和梳理过的刘海,感觉相当好,因为他所发明的语言正在越来越受欢迎。

00:00:19 - 配音演员

声音测试。

00:00:19 - Saron Yitbarek

Perl 语言轻而易举地超越了 COBOL、Visual Basic,而 Python 呢? Python 仍然是一个不入流的竞争者,是Larry Wall 的几个玩笑素材。Wall 展示了 dice.com 报告中的人群数据,在那时来看,Perl 语言的未来是非常、非常光明的。然而之后 Perl 的未来就不再如此了。20 年之后,dice.com 在 2018 年夏天将 Perl 列为最可能灭绝的语言之一。短短 20 年之间发生了什么?

**00:00:59 **:

我是 Saron Yitbarek,这里是《代码英雄》,一档红帽公司的原创播客。这一季是关于我们编程语言的力量和前景的。在上一集我们追踪了搭上了互联网顺风车的 JavaScript 的疯狂崛起。

00:01:19

并不是每一种语言都有一个不停地成长和成功的故事。大多数语言的出现,在当时非常特殊的生态系统中发挥了它们的作用,然后当我们的编程生活里需要其他类型的工具时它们就开始消退。

00:01:37

本集我们将深入了解 Perl 世界。是什么造就了它早期的成功,为什么它的成功突然就被颠覆了?我们所处的环境,我们的基础设施,我们的硬件,各种因素都会决定哪些语言会繁荣,哪些会开始萎缩。这就是 Perl 语言的故事的魅力所在。

00:02:08

我们知道 Perl 并没有统治世界,但是退回到上世纪 90 年代的时候,却看不到这一点。Tim Berners-Lee 在 1991 年发明了 万维网 World Wide Web (WWW),它迅速创造了一个全新的基于 Web 的开发领域。谁也说不准会是哪种编程语言在这个新领域取得成功。

00:02:31 - Michael Stevenson

在 Web 出现的时候,所有人都等待着会有什么事情发生。那个时候整个世界都是令人兴奋的。

00:02:39 - Saron Yitbarek

Michael Stevenson 是 阿姆斯特丹大学 University of Amsterdam 媒体研究的副教授。他为我们描述了早期的 Web。人们见过 Usenet,也见过 ARPANET。他们看到了 美国在线 America Online ,还有一些其它的东西。但是直到 Web 出现,互联网的全部发展潜力才真正得到体现。突然之间,你就可以通过鼠标和点击进入了这个巨大的互联世界。这是一个出乎意料的事情。

00:03:09 - Michael Stevenson

你要是记得 1993 年,也就是 Web 开始崭露头角的那一年,也是《 连线杂志 Wired Magazine 》开始出版的那年。在那之前类似《Mondo 2000》这类的杂志真的让电脑看起来像神秘知识的来源,让电脑看起来很酷。

00:03:32

因此从这个意义上说,Web 也到达了一个相当特定的时期,人们已经准备好以这样的方式迎接技术的兴起。

00:03:43 - Saron Yitbarek

故事在这个时候开始了:Larry Wall 在 1987 年创建了 Perl,4 年后万维网才开始兴起。Larry Wall 给世界带来的 Perl 最初只是一种通用的 Unix 脚本语言。当然,它确实很有用,但同时 Perl 还有一些秘密元素,这些元素使它成为即将到来的 Web 开发世界的理想语言。

00:04:14 - Michael Stevenson

比较有名的是 Perl 是 Larry Wall 在参与的一个美国国家安全局(NSA)的秘密项目中发明的,基本上他所做的就是创建一个类似黑客版的新闻栏目,运行在 Usenet 上,因此 Perl 语言从一开始就是操作文本和将数据从一个地方移动到另一个地方,这完全符合 Web 的需求。而 Perl 作为一种易于使用的脚本语言,更加接近于自然语言。它可以用来快速开发东西,所有这些都让 Perl 成为了一个完美的契机,不仅适合专业用户,也适合新加入的业余爱好者。

00:05:09 - Saron Yitbarek

很偶然的是,当 Web 出现时,Perl 已经为 Web 做好了准备。Larry Wall 不可能知道 Web 即将出现。但当它出现时正好相互吻合。但我认为还有一点很关键:Perl 是一种自由语言。Larry Wall 在 自由软件基金会 Free Software Foundation 开发的 GPL( 通用公共许可证 General Public License )下发布了它。

00:05:37

Larry Wall 让他的语言自由开源的决定,这完全符合刚刚开始出现的基于 Web 的新思维方式,同时 Perl 在其他方面也很有前瞻性。

00:05:50 - Michael Stevenson

Perl 的开放性令人难以置信,在某种意义上,它总是愿意整合一些其他的东西,新的东西。这和 Larry Wall 的身份很相配。他是个很开放谦虚的人,总是仔细考虑别人的想法,并试着设身处地为别人着想。对我来说 Perl 作为一种语言,以及作为一个社区的性格,在很长一段时间里,真的很符合这一点。

00:06:27 - Saron Yitbarek

同样 Perl 非常适合 Web 早期的、狂野的西部阶段,也就是黑客时代。实际上 Perl 的座右铭之一就是“ 实现它的方法不止一种 There is more than one way to do it. ”。

00:06:39 - Michael Stevenson

在 Perl 的鼎盛时期和这个试验性的开放 Web 的鼎盛时期之间,存在着一种近乎浪漫的联系,在它变得如此被几个平台所控制之前。

00:06:56 - Saron Yitbarek

记得上世纪 90 年代是互联网历史上的一段启蒙时期,那时人们还在争先恐后地想知道还有哪些是可能的。那时对编程的需求是巨大的,每个人都需要有一个网页,这意味着一群全新的开发人员,他们都对新的做事方法持开放态度。问题变成了“好吧,我们有了一个全新的领域,但用什么语言来完成这项工作呢?”

00:07:26

Perl 虽然并不是这个问题的最终答案,但对于很多人来说 Perl 是他们首选的答案。

00:07:34 - Michael Stevenson

我并不是说我更愿意看到加载速度超慢的网页、也没有谷歌搜索引擎的时代,但我确实认为那个时代有一些特别的东西,当时有一些人,在他们的宿舍里,创建了一个类似 slashdot 的东西。而现在随着 Web 已经变得如此主流、专业化和被集中在几个大公司中,我们确实怀念那个时代。对我来说,Perl 比其他任何早期的故事都更能象征这一点。

00:08:15 - Saron Yitbarek

Michael Stevenson 是阿姆斯特丹大学媒体研究的副教授。

00:08:24 - Saron Yitbarek

之后,随着 90 年代的到来,Perl 作为一种能适应早期互联网发展潜力的语言出现了,它是一个时代的语言。Larry Wall 和他所创造的 Perl 正好明白了 Web 的本质。

00:08:40 - Mike Bursell

在网上你可以随意搜索,也可以随时创建网页,这是互联网的美丽新世界,你可以随时做这些事情。

00:08:52 - Saron Yitbarek

这位是 Mike Bursell,红帽公司的首席安全架构师。Mike 是 90 年代中期发现和使用 Perl 的黑客之一。

00:09:00 - Mike Bursell

对于 Web 来说,Perl 是许多人的起点。Java™ 语言还处于早期阶段,它在文本输入输出方面并不是很出色。如果你想进行查询和生成页面,Perl 是人们都在使用的工具。

00:09:22

Perl 非常适合,因为它擅长获取文本,并使用文本做其他事情,而这正是 Web 所需要的。

00:09:31 - Saron Yitbarek

顺便需要说一下的是,Larry Wall 有语言学背景,这就解释了为什么 Perl 有强大的文本解析能力。正如 Mike Bursell 提到的,这是一笔巨大的好处,因为在早期,Web 主要是一种基于文本的媒介,因为那时候人们没有足够的带宽来处理图像。

00:09:51 - Mike Bursell

它很容易使用,也很容易复制。人们在分享方面非常开放,而且它的输出速度很快,这些都是好东西。

00:10:02

哦,当然还有一点,就是你可以用管道使用它。所以,这是非常多的人所习惯的,而且非常容易测试,甚至离线测试,这都是非常有用的。

00:10:13 - Saron Yitbarek

尤其对那些在 Web 的世界中重新规划自己生活的系统管理员来说非常有用。

00:10:21 - Mike Bursell

Perl 是给系统管理员们的真正礼物。即使在那个年代,如果你做一些事情,你会得到很多日志。管理这些日志,分解它们,搜索它们,并能够以不同的方式显示它们,或获取任何其他大型文本语料库(主要就是日志),甚至可以对它们进行调试。除非你要在命令行里用管道方式传输 orcsed 之类的东西,以及 ed 命令,那样的话你很快就会变得非常痛苦,而 Perl 正好适合让你去处理这些事情。

00:10:55 - Saron Yitbarek

到上世纪 90 年代后期,Perl 5 已经聚集了一个强大的用户群体。像 Fortran 和 C 这样的旧语言依赖于庞大而昂贵的硬件,而 Perl 更有生命力,也更容易移植。在那样一个硬件成本急剧下降的世界里,Perl 的设计使得它得到了蓬勃发展,Perl 让所有的新程序员快速、轻松地工作。这是因为 Larry Wall 以牺牲 CPU 和内存的需求为代价,使 Perl 语法更人性化。所有这些元素组合在一起,使 Perl 成为一种很受新开发社区欢迎的语言。

00:11:36 - Mike Bursell

在一个正在壮大的社区里,你可以去和他们聊聊社区里的事情,然后 PerlMonks 论坛出现了,那里是一个讨论的好地方,能在论坛里知道正在发生的事情。

00:11:50 - Saron Yitbarek

这个社区确实拥有 Web 所能提供的最好的东西。他们发现了一个巨大的软件模块库,一个叫做 CPAN 的存储库,这些系统管理员都很喜欢它。它给 Perl 提供了更多的灵活性,许多人都可以部署由少数几个编程大师编写的代码。

00:12:15 - Mike Bursell

它有很多库可以做你想做的任何事情,如果你找不到你想要的库,你可以去问一下,然后就会有好心人写出你想要的库。

00:12:21 - Saron Yitbarek

Mike Bursell 是红帽公司的首席安全架构师。

00:12:28 - Saron Yitbarek

正是由于 Perl 是免费的,它受到不断增长的模块库的支持,它是可移植的,而且它有一个蓬勃发展的社区。一切看起来都很好。Perl 可以在上世纪 90 年代 Web 开发新天地中发挥所有优势,但就在 90 年代即将结束的时候,互联网的发展前景又一次发生了变化,时代来了一个大的转变。

00:12:57 - Alan Greenspan

但我们又能如何知道非理性繁荣何时已过度推高了资产价值,进而导致了意料之外的长期经济收缩?

00:13:12 - Saron Yitbarek

“非理性繁荣”是时任美联储主席 Alan Greenspan 在 1996 年对 美国企业协会 American Enterprise Institute 所说的话。他那句“非理性繁荣”是对 90 年代人人都经历过的网络泡沫的警告。所有早期使用 Perl 的 Web 开发人员都在那个泡沫中乘风破浪,但正如 Greenspan 预测的那样,泡沫在 2000 年破裂了。

00:14:11 - Conor Myhrvold:

大家好,我是 Conor Myhrvold 。在过去的五六年里我一直从事编程,现在在技术领域为 Uber 工作。

00:14:20 - Saron Yitbarek

2000 年代初,当 Conor 还在高中的时候,Perl 仍然是一个非常重要的东西。但他越来越意识到一种与之竞争的语言,叫做 Python。

00:14:31 - Conor Myhrvold

Python 所追求的是一种更结构化的语言,做很多不同的事情都有一种更显然的方式,它就是那样设计的。而 Perl 则喜欢做某件事有不止一种方法,但这让很多初学者感到困惑。

00:14:49 - Saron Yitbarek

Perl 有这样一句座右铭“ 实现它的方法不止一种 There is more than one way to do it. ”。而 Python 的理念实际上是相反的,Python 为每个问题都提供了一个明显的解决方案,这意味着查看别人的 Python 代码很容易;而另一方面查看其他人的 Perl 代码可能会令人困惑。Perl 作为一个程序员的第三或第四种语言是有意义的,而正是因为它是一种脚本语言,而脚本是互联网连结的基础。

00:15:23

但是 Python 是一种你可以真正深入研究的语言,即使你是一个新手。Perl 有一套特定的优势,比如在搜索文本和生物信息学上。但是 Python 就是这样一种简单通用的语言。Python 获得了越来越多的信任,成为人们首先想学的语言,这是一件大事。

00:15:47 - Conor Myhrvold

越来越多的人开始上网,越来越多的人开始学习如何编程。尤其是相对于 Perl 而言,Python 受益于它本身相对容易学习,因为它更结构化。而这样结果是,在一个快速增长的世界里,如果你能得到更多增长的份额,那将最终意味着有更多的教程和更多的东西可供你使用。

00:16:10 - Saron Yitbarek

在之前提到过的 CPAN,它是 Perl 用户可以使用的强大的中央存储库。这在 90 年代是一大亮点,但 CPAN 的价值也在变化。

00:16:24 - Conor Myhrvold

这也不能真正帮助你学习一门语言,因为你是在“复制粘贴”,只是用最少的方式替换你需要的东西。从长远来看这是一个劣势,因为如果你让人们通过自己进行原始开发来学习如何使用一种编程语言,即使这需要花费更长的时间,他们也会觉得自己对它投入了更多,而且他们也了解在这中间发生了什么。

00:16:48 - Saron Yitbarek

Python 没有像 CPAN 那样的集中式存储库,但是对于那些在新千年时代来到这里的开发人员来说,在一个互联网搜索功能如此强大的世界里,存储库并没有那么大的价值。

00:17:05 - Saron Yitbarek

最终 Python 有了大量的教程,当然现在也有了像 GitHub 这样的平台。

00:17:13 - Conor Myhrvold

最终发生的事情是 Perl 拥有的许多优势,是来自一个已经过时的时代的网络效应。

00:17:24 - Saron Yitbarek

Conor Myhrvold 是 Uber 的一名工程师。

00:17:30 - Saron Yitbarek

然而语言的兴衰很少是由外部力量单独决定的,而 Perl 的内部问题是,在它的发展过程中它似乎遇到了障碍。Python 正在以一种相当有序的方式发布新的迭代,而正如我们在本季度第一集中所了解到的,Perl 在 2000 年互联网泡沫破裂之时,Python 开始获得更多新开发人员的青睐。

00:17:59 - Saron Yitbarek

每个人都期待着 Perl 6 的发布,人们都很兴奋。他们等啊,等啊,等啊……他们等了 14 年。

00:18:15 - Elizabeth Mattijsen

人们提出了大约 300 多件 Perl 6 应该能够完成的事情,当然其中很多事情基本上都是相互排斥的。

00:18:26 - Saron Yitbarek

这是 Elizabeth Mattijsen,她是 Perl 6 的核心开发人员。2000 年,Elizabeth 参加了在 蒙特雷 Monterey 举办的 Perl 会议。那时开发者认为他们已经停滞不前了,所以 Perl 6 是必要的。Larry Wall 同意了,但是如果说 Perl 5 是他对 Perl 的重写,那么他希望 Perl 6 是由社区来对 Perl 进行重写。由于团队合作可能需要更长时间,甚至用了 14 年,对于那些开发者来说,这是一条漫长而艰难的道路。

00:19:01 - Elizabeth Mattijsen

我们可以说当前实施的 Perl 6 项目实际上是实现它的第三次尝试。

00:19:07 - Saron Yitbarek

按照 Elizabeth 的说法,在这 14 年里有过多次尝试。中间经历了漫长而痛苦的深度的尝试。开发者们心力交瘁;人们陷入了死胡同。到 2015 年圣诞节那天 Perl 6 终于问世时,世界上的许多地方已经开始了新的发展。而需要注意的是 Perl 6 并没有给予成为某种革命性的新事物,从而实现对 Python 的反击。Perl 6 是对原版进行了深思熟虑的重新设计。

00:19:43 - Elizabeth Mattijsen

我认为 Larry Wall 在他的“ 洋葱状态 State of the Onion ”演讲中使用了一个很好的比喻。对他来说,Perl 5 就像《 霍比特人 The Hobbit 》,而 Perl 6 就像《 指环王 Lord of the Rings 》。如果你仔细看过《霍比特人》和《指环王》的故事,你会发现它们基本上是同一个故事。只是《霍比特人》比《指环王》小得多,情节漏洞也更多,没有《指环王》那么宏大的背景。我认为这很好地描述了 Perl 5 和 Perl 6 之间的区别。它基本上是同样的想法,同样的思路,同样的环境,只是对它的重新构想。

00:20:26 - Saron Yitbarek

Elizabeth Mattijsen 是 Perl 6 的核心贡献者。

00:20:32

如今,Perl 甚至可能不在前 20 种语言之列。在外部竞争和内部拖延之间,它还没有向大多数新开发人员证明自己。但这提出了一个大问题,我们真的应该根据一种语言的流行度来判断我们的编程语言吗?或者说我们应该根据其他方面来判断一种编程语言的价值?当昔日的超级巨星成为陪衬时,这到底意味着什么呢?

00:21:06

在世纪之交时互联网泡沫破裂时,Perl 的统治地位开始衰退时,Larry Wall 发表了一个有趣的声明。他认为尽管 Perl 永远不会再成为世界上最流行的编程语言,但它可以成为较小类别中的领先者。Larry Wall 说那才是真正的目标。成为同类中最好的,而不是世界上最好的。正如他所说的,SUV 永远不会和赛车竞争。

00:21:38 - Saron Yitbarek

我想深入研究这个想法,我想了解在细分类别中做到最好对编程语言的真正含义。

00:21:48 - John Siracusa

我是 John Siracusa,我是一个程序员,也是一个播客主。

00:21:53 - Saron Yitbarek

John 实际上共同主持了三个播客:《Accidental Tech Podcast》、《Reconcilable Differences》和《Robot or Not?》。我们刚刚聊到了 Perl 在当今世界的地位。

00:22:06

Perl 在当今世界排名如何?它仍然是最好的计算机语言吗?

00:22:10 - John Siracusa

Perl 6 具有其他语言没有的、其他语言应该具有的东西,我一直在等待其他语言偷学它。例如语法是将常见任务概念化的一种好方法,而在我看来,使用语法来解决解析问题比使用现有的工具更令人愉快、更干净、更好。

00:22:31

在 Perl 中,对象系统的许多部分看起来很琐碎而无关紧要,但我完全期待其他语言最终会采用它,就像许多语言最终采纳了 Perl 5 中的许多思想一样。因此我认为 Perl 6 在许多方面都是最好的。遗憾的是,很少有人有机会使用它。

00:22:52 - Saron Yitbarek

你认为 Perl 6 社区的发展需要做些什么?想让人们更多地参与到 Perl 6 中,需要做些什么?

00:23:00 - John Siracusa

这有点像 Perl 6 的故事,就像它一直在寻找一个真正奇妙的实现一样。这是第二系统问题的一部分…… 第二系统综合症 second-system syndrome ,我想他们是这样称呼……

00:23:11 - Saron Yitbarek

哦。

00:23:12 - John Siracusa

Perl 6 的,人们希望修复世界上的所有问题。他们想要解决的问题之一是运行时环境。是什么在运行我们的代码?运行 Perl 5 和之前的 Perl 4 的东西是一个巨大的 C 程序,这是由具有独特编码风格的开发者编写的。还有大量的宏,它是一种相当难以理解的东西。

00:23:33

Perl 6 的想法是让我们不要再那样做了,让我们不要制造大量的 C 代码。相反,让我们使用一个虚拟机,这在当时是一种时尚,有很多关于如何实现它的伟大想法。最终我们得到了几个中规中矩的虚拟机实现版本,有时这些还会相互竞争,但没有一个达到真正交付语言使用时需要的性能、稳定性和特性。

00:24:01 - Saron Yitbarek

现如今 Perl 到底发生了什么?你对此有什么看法?

00:24:06 - John Siracusa

Perl 5 绝对像是在走下坡路,因为与 Perl 5 同时代的所有其他语言都采纳了它的大部分最佳思想,并获得了更多的支持。也就是说,因为它在很长一段时间内都是王者,所以有很多 Perl 5 代码在运行一些大型的、重要的站点,人们需要维护和扩展这些代码。

00:24:29

这需要很长时间才能消失。只要看看现今仍然存在的 COBOL,人们怎么还在雇佣人在 COBOL 上做维护吧?

00:24:35 - Saron Yitbarek

嗯。是这样。

00:24:36 - John Siracusa

你刚才问 Perl 是不是一门垂死的语言,我提到了 COBOL,这听起来并不乐观。Perl 6 本身会成为主流语言吗?看起来可能性不大。现在对其他语言有非常多的关注,如果 Perl 6 现在还没有得到开发者的关注,我不知道将会需要发生什么变化来让它流行起来。

00:24:54 - Saron Yitbarek

如果你是这样想的,你对 Perl 有什么期望?你希望在 Perl 5 或 Perl 6 中看到什么,以及希望看到将来发生什么?

00:25:04 - John Siracusa

我对 Perl 5 的希望是人们不要忽视它,因为尽管有其它更流行的语言,但今天许多公司仍然采用 Perl 5 做为解决问题的最佳方案。通常这些都是胶水类型语言的问题。如果你发现自己曾经编写过 shell 脚本,并且可能会说:“好吧,我不会用我的‘真正的编程语言’来做这件事。”不管是 Python,还是 Ruby,还是别的什么。但是 shell 脚本可以让我把一堆东西连接起来(胶水类型语言)。Perl 是完成这项工作的更好工具。编写正确的 Perl 脚本要比编写正确的 shell 脚本更容易。

00:25:40 - Saron Yitbarek

我认为归根结底 Perl 可能不再是一个适合入门的语言,但对于经验更丰富的多语言开发人员来说,它是那个你永远不希望扔掉的工具箱中的小工具,而且特定的工具有时让你提升水平的工具。

00:25:58 - John Siracusa

有时我为 Perl 6 感到难过和沮丧,认为它不会有任何进展,有时我想“好吧,这是个不错的小社区”。每个社区都不需要称霸世界,也不需要成为整个行业的主导语言。也许可以就这样一直走下去,就是,无限期地走下去。这就是开源,和编程语言的伟大之处。没人可以阻止你,你可以像以前一样继续开发 Perl 6。

00:26:27 - Saron Yitbarek

John Siracusa 是一名程序员,也是三个科技播客的联合主持人。

00:26:34

语言都是有生命周期的。当新的语言出现时它们能够精确地适应新的现实,像 Perl 这样的选择可能会占据更小的、更小众的领域,但这并不是一件坏事。我们的语言应该随着我们需求的变化而扩大或缩小它们的群体。在互联网开发的早期历史中,Perl 是一个至关重要的角色,它以各种方式与我们联系在一起,只要看一看它的历史就会发现它的存在。

00:27:11

下次在《代码英雄》中,我们将讨论:是什么将一种语言变成了标准?以及在基于云的开发世界中,新的标准将如何出现?

00:27:26

《代码英雄》是红帽的原创播客。如果你想深入了解 Perl 的故事,或者任何我们在第三季中探索的编程语言,请访问 redhat.com/commandlineheroes 。我们的网站里有许多精彩内容等你去探索。

00:27:49

我是 Saron Yitbarek。下期之前,编码不止。

什么是 LCTT SIG 和 LCTT LCRH SIG

LCTT SIG 是 LCTT 特别兴趣小组 Special Interest Group ,LCTT SIG 是针对特定领域、特定内容的翻译小组,翻译组成员将遵循 LCTT 流程和规范,参与翻译,并获得相应的奖励。LCRH SIG 是 LCTT 联合红帽(Red Hat)发起的 SIG,当前专注任务是《代码英雄》系列播客的脚本汉化,已有数十位贡献者加入。敬请每周三、周五期待经过我们精心翻译、校对和发布的译文。

欢迎加入 LCRH SIG 一同参与贡献,并领取红帽(Red Hat)和我们联合颁发的专属贡献者证书。


via: https://www.redhat.com/en/command-line-heroes/season-3/diving-for-perl

作者:Red Hat 选题:bestony 译者:Mikedkmilk 校对:Northurland, wxy

本文由 LCRH 原创编译,Linux中国 荣誉推出

代码英雄讲述了开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。

什么是《代码英雄》

代码英雄 Command Line Heroes 是世界领先的企业开源软件解决方案供应商红帽(Red Hat)精心制作的原创音频播客,讲述开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。该音频博客邀请到了谷歌、NASA 等重量级企业的众多技术大牛共同讲述开源、操作系统、容器、DevOps、混合云等发展过程中的动人故事。

本文是《代码英雄》系列播客第三季(2):创造 JavaScript音频脚本。

导语:一个在 WWW 初期就确立了它的发展方向的任务,在 10 天内完成,结果呢?它成了一种改变了一切的、不可或缺的语言。

JavaScript 是战胜了一切困难的弱者。Clive Thompson 回顾了浏览器大战,以及这场战争对互联网未来的影响。Charles Severance 解释了 JavaScript 是如何从一个几近不太可能实现的任务变成默认的 Web 开发语言的。Michael Clayton 坦言,他和其他许多人一样,低估了 JavaScript。而 Klint Finley 则描述了一个没有它的阴暗的互联网。

00:00:00 - Saron Yitbarek

嗨,大家好。我们回来了。我们很高兴能推出《代码英雄》第三季。我们要感谢你们中很多人在这个节目中讲述的故事,因为每一季都源于我们与开发人员、SIS 管理员、IT 架构师、工程师以及开源社区的人们讨论你最感兴趣的的主题和技术。现在,我们正在进一步开放这种方式。我们希望大家都能参与进来,帮助塑造《代码英雄》的未来。你可以通过我们的简短调查来做到这一点。你喜欢这个节目的什么地方?你还希望我们多谈论哪些内容?亲爱的听众,我们想进一步了解你。你是开发人员吗?你是在运维部门工作,还是在做一些与技术完全无关的工作?请访问 commandlineheroes.com/survey ,以帮助我们提升第四季及以后的播客内容。现在,让我们进入第三季。

00:01:00

Brendan Eich 34 岁时,在 网景 Netscape 公司总部任职。他正致力于一场为期 10 天的大规模编码冲刺。一种新的语言,一种全新的编程语言,将在在短短 10 天内诞生。那是在 1995 年,编程语言的世界即将永远改变。

00:01:26

我是 Saron Yitbarek,这里是《代码英雄》,一个来自红帽的原创播客。整季节目中,我们都在探索编程语言的威力和前景,探索我们的语言是如何塑造开发世界的,以及它们是如何推动我们的工作的。 这一次,我们将追踪 JavaScript 的创建历程。也许你以前听过 Brendan Eich 的故事,但是像 JavaScript 这种计算机语言是如何真正创造出来的呢?其中肯定是来自 Brendan 的努力,但是这个故事还有更多的内容。

00:02:02

我们的 JavaScript 故事始于一场战争,一场浏览器之战。20 世纪 90 年代的浏览器大战似乎已经成为历史,但它的影响无疑是巨大的。战场的一方,是与 升阳微系统 Sun Microsystems 结成了联盟的网景公司;另一方,你看到的是软件巨头,微软。他们争夺的战利品是什么?赌注已经大得不能再大了,因为这是一场决定谁将成为互联网看门人的对决。

00:02:40

为了真正了解浏览器之战是如何进行的,我找来了我最喜欢的科技史学家之一,作家 Clive Thompson。他的最新著作是 ——

00:02:50 - Clive Thompson

编码者:新部落的形成和世界的重塑 Coders: The Making of a New Tribe and The Remaking of The World 》。

00:02:54 - Saron Yitbarek

Clive 和我谈论的是浏览器之战,让我来为你做个背景铺垫吧。你会看到网景公司意识到浏览器将会是人们用来上网的关键软件。还有微软,他们的整个商业模式就是将东西打包到 Windows 中。直到 20 世纪 90 年代,他们才真正对浏览器感兴趣,微软意识到也许他们一直在打瞌睡。世界正在向网上转移,而微软的 Windows 内没有任何东西可以帮助他们实现这一目标。但是有些人已经在这么做了,一家名为网景的公司,他们正在提供一个通往互联网的入口。突然之间,微软在整个行业的主导地位看起来并不是那么绝对了。浏览器之战始于那一刻,微软意识到了互联网的力量,并开始打量他们新竞争对手。好了,这就是我的铺垫。这里我和 Clive 讨论接下来发生的事情。

00:04:03 - Clive Thompson

这场战争是抢夺谁将成为上网的主要入口。你需要意识到,在 20 世纪 90 年代初期,没有人真正的在线。当 Mosaic 浏览器出现并最终变成网景浏览器时,它们是第一款任何人都可以下载的并让人能够浏览 Web 的浏览器。它们于 1994 年 12 月上线。所以突然之间,成千上万的人能够以这种图形方式使用互联网。他们获得了巨量的下载和大量的新闻报道。基本上每个人都在说:“是的,网景是这种被称之为互联网的事物的未来。”

00:04:40

所以在西雅图,你可以看到微软非常警惕地关注着这件事,因为他们几乎忽略了互联网。他们只专注于销售 Windows,而实际上并没有对这种被称为互联网的疯狂新事物给予任何关注。因此,他们不得不加入到一场急速追赶游戏当中。近一年后,他们才推出自己的浏览器。在 1995 年秋天,他们的浏览器问世了,这实质上是浏览器大战的开始,微软也正在努力成为人们上网的门户。

00:05:13 - Saron Yitbarek

好吧,花费一年的时间才让浏览器面世听起来不算太糟,对吧?时间不算太长,对吧?这似乎是一个合理的时间。

00:05:21 - Clive Thompson

是的,没错。这听起来好像不是很长时间,但那时是发展的是如此之快。而且人们有一种强烈的先发优势意识,那就是第一家能够以自己的品牌形象作为你上网的方式的公司将是多年甚至是永远的赢家。我还记得当时的开发速度有多快。我的意思是,网景公司每两三个月就会推出一款新的浏览器版本。他们会说,“哇。现在,我们已经将电子邮件集成到浏览器中了。现在,我们在顶部有了一个小小的搜索栏。” 它一直在变得越来越好。你可以在某种程度上看到,可以在网上做的所有事情都进入了视线,因为他们可以快速迭代并快速将其推出。

00:06:01

微软习惯于非常缓慢的开发模式。可以是长达四年的开发过程,它是我们能买到的没有 bug 的版本,把它封盒,投放到商店去,然后四年都不发布新版本。现在网景出现了,它是第一家说,“不,我们将推出一款不怎么合格的产品,但它运行得足够好,我们将在三个月、三个月又三个月内推出一个新的版本供你下载。” 这完全破坏了微软的稳定的步骤。

00:06:30 - Saron Yitbarek

好吧。如果我是微软,我可以看着它说,“哦,天哪。这就是未来。我需要迎头赶上。我需要与之竞争。” 或者我可以说,“啊,这只是一时流行而已。” 那么浏览器到底是什么呢?它让微软选择了第一个选项。它让微软说,“哦,天哪。这是个值得的东西。我要与之竞争。”

00:06:51 - Clive Thompson

浏览器本身具有大量的文化传播和积淀作用。你在互联网上可以做的第一件事,一般是获得像文化之类的乐趣。你可以突然进入某个乐队的网页,查看他们的帖子和他们的照片。你可以培养你的爱好,找到佛罗里达州所有的人偶模型。在此之前,关于互联网的一切都看起来很呆板。电子邮件、文件传输、诸如此类。我的意思是,突然之间,浏览器使互联网看起来像一本杂志,像一个有趣的互动对象。报纸、CNN 和杂志前所未有的以这种非常激动人心的方式对此进行了报道。就在这一刻,科技相关的新闻被从《纽约时报》上排在后面的商业版块移动到了报纸的头版。

00:07:41 - Saron Yitbarek

那么,对于开发人员而言,网景浏览器甚至说一般的浏览器能有什么吸引力呢?他们为什么如此着迷呢?

00:07:48 - Clive Thompson

为此我拜访过很多开发人员。突然间,随着浏览器的出现,互联网出现了,有一个 Web 页面,上面写着:“下载我那酷酷的软件吧。” 因此,它开启了我们今天看到的软件打造的整个世界。

00:08:04 - Saron Yitbarek

我在这里应该提一下,起初微软实际上提出要收购网景公司。他们出价很低,网景公司拒绝了他们。因此,微软不得不打造自己的浏览器,他们称自己的浏览器为 探索者 Explorer (IE)。

00:08:21 - Clive Thompson

微软花了一年的时间疯狂地开发浏览器,并于 1995 年秋天将其推出。他们做的事情与网景差不多。他们快速推出了一些东西,并不担心它是否完美,因为它会越来越好。但是,在 20 世纪 90 年代后半叶真正出现的一场战争是谁的浏览器最有趣、最具交互性、最功能复杂。

00:08:53 - Saron Yitbarek

请记住,网景在这方面绝不是占了上风。

00:08:57 - Clive Thompson

微软拥有非常强大的地位。当全球的 80% ~ 90% 的计算机都安装了 Windows 时,很容易就可以把软件设置为默认软件。而这正是他们所做的。所以你可以看到 Internet Explorer (IE)的不断崛起。

00:09:16 - Saron Yitbarek

在某种程度上,可怜的老网景在这场战斗中一直处于劣势。但问题是,在战斗结束之前,他们做了一个 孤注一掷 Hail Mary 的选择,事实证明,这将成为整个编程世界的一个令人难以置信的成绩。

00:09:35 - Clive Thompson

这就是 JavaScript 创建过程中迷人而怪异的故事。

00:09:43 - Saron Yitbarek

所有围绕 Web 的热议,围绕浏览器生活的热议,都非常清楚地表明了一件事。我们需要一种新的编程语言,一种远远超出 HTML 的语言。我们需要一种为所有新的基于 Web 的开发量身定做的语言。我们想要一种不仅能在网上生存,而且在那里蓬勃发展的语言。

00:10:10 - Clive Thompson

如何为浏览器创建编程语言呢?

00:10:15 - Saron Yitbarek

我的朋友,这是一个价值数十亿美元的问题。在网景看到微软与他们竞争的时候,他们开始关注 Java™。Java 会成为 Web 开发的语言吗?Java 是一种丰富的编译语言。它表现得和 C++ 一样好。但它仍然需要编译。开发人员确实想要一些更轻量级的东西,一些可以解释执行而不是编译的东西,一些可以吸引所有涌入 Web 的非专业程序员的东西。毕竟,那些新的程序员想要直接在网页上工作。那是我们的梦想。

00:11:05 - Saron Yitbarek

网景公司需要一种可以在浏览器内部运行的编程语言,让开发人员能够让这些静态网页动起来。他们想,如果他们能在发布 Netscape 2.0 测试版的同时,发布一种新的轻量级语言,为 Web 编程创造奇迹,那不是很棒吗?只是有一个问题,他们只有 10 天的时间来创造一门新的语言。实际上,只给了一个叫 Brendan Eich 的人 10 天的时间。他就是那个负责完成这件事的人。毫无疑问,如果有人能做到这一点,那就是他。在 Brendan 还是伊利诺伊大学的学生时,他常常为了好玩而创造新的语言,只是为了摆弄一下语法。

00:11:57 - Charles Severance

Brendan Eich 的关键在于,在构建 JavaScript 时,Brendan Eich 已经是编程语言狂热分子了。

00:12:05 - Saron Yitbarek

为了了解 Eich 到底取得了什么成果,我们联系了 密歇根大学信息学院 University of Michigan School of Information 的教授 Charles Severance。

00:12:14 - Charles Severance

JavaScript 在某种程度上是在 Java 被视为未来的环境中创建的,在 1994 年,我们认为它(Java)将解决一切问题。一年后,那个真正能解决一切的东西即将出现,但它不能说,“嘿,我已经解决了一切”,因为每个人,包括我自己,就像都相信 1994、1995 年的我们已经看到了未来一样,这个未来就是 Java 编程语言。他们必须建立一种看似无关紧要、看似愚蠢、看似毫无意义,但却是正确的解决方案的语言。

00:12:56 - Saron Yitbarek

但是 Eich 提供的可不仅仅是一种玩具语言。它以隐藏的方式进行了复杂处理,并从以前的语言中汲取了主要灵感。

00:13:07 - Charles Severance

如果你看一下基本语法,很明显它的灵感来自于带有花括号和分号的 C 语言。一些字符串模式取自 Java 编程语言。但面向对象的底层模式取自名为 Modula-2 的编程语言,它有 头等函数 first class functions 的概念,对我来说,这确实是使 JavaScript 成为如此强大以及可扩展语言的最令人惊叹的选择之一,即函数、函数的主体、构成函数本身的代码也是数据。

00:13:41

另一个真正的灵感来源于 HyperCard。JavaScript 总是在浏览器中运行,这意味着它有 文档对象模型 Document Object Model (DOM)的基本数据上下文,文档对象模型是网页的面向对象表示。它不像传统的编程语言。JavaScript 代码不是从一开始就有的,最初它是一个网页,最终演变成了这种面向事件的编程。

00:14:12 - Saron Yitbarek

1995 年 11 月 30 日,当 JavaScript 与网景的 Navigator 2.0 一起发布时,所有的魔力都被植入到一粒强大的语言小种子中。包括 美国在线 America Online (AOL)和 AT&T(美国电话电报公司)在内的 28 家公司同意将其作为一种开放标准的语言使用。当它发布时,有一些老派的专业人士对 JavaScript 嗤之以鼻。他们认为这只是一种新手的语言。他们忽略了它革命性的潜力。

00:14:46 - Charles Severance

这些超级先进的概念来自不太知名但又非常像高级面向对象的语言当中,Brendan 决定将所有这想概念融入其中。所以 JavaScript 就像一只特洛伊木马。它在某种程度上潜入了我们的集体意识,认为它很傻、像个玩笑、简单、轻巧。但是几乎从一开始它就建立了一个功能强大的、深思熟虑的编程语言,它几乎能做计算机科学中的任何事情。

00:15:17 - Saron Yitbarek

其结果是成为了一种浏览器原生语言,可以随着我们在线生活的发展而不断进化。没过多久,JavaScript 就成为了事实上的 Web 开发选择。

00:15:29 - Charles Severance

JavaScript 是一种不二之选的编程语言,我只能学习它,事实上学习 JavaScript 的人通常别无选择,因为他们会说,“我想构建一个浏览器应用程序,我想让它有交互元素。” 答案是你必须学习 JavaScript。如果你想象一下,比如说,你最喜欢的编程语言是什么,那么这个问题的答案几乎就是某某加上 JavaScript,对吧?有人可能会说,“我喜欢 Python 和 JavaScript ”,或者 “我喜欢 Scala 和 JavaScript”,因为它就像是每个人都需要学习的语言。

00:16:05 - Saron Yitbarek

Charles Severance 是 密歇根大学信息学院 University of Michigan School of Information 的教授。他说,网景公司一开始非常强大,他们在浏览器之战中奋力拼搏,但最终……

00:16:22 - Clive Thompson

网景浏览器作为一款严肃的产品就这样消失了。

00:16:27 - Saron Yitbarek

微软在整个行业的主导地位是一股压倒性的力量。尽管在浏览器竞争上晚了一年,但他们还是能够力挽狂澜,赢得了今天的胜利。但你知道,网景公司最后一击,它创造的 JavaScript,是成功的,在战斗结束很久之后,这种从浏览器战争中诞生的语言瑰宝,将有一个改变一切的后世。

00:17:01

如果你是最近才开始编程的,很可能会理所当然地认为,你可以开发可更改和更新的交互式 Web 页面,而无需从服务器拉取页面的全新副本。但是,想像一下,当这样做成为一种全新的选择时会是什么样子的。我们有请红帽公司的软件工程师 Michael Clayton 帮助我们了解那是一个多么巨大的转变。

00:17:28 - Michael Clayton

我想说,在 2004 年 Google Mail 发布了。Gmail,据我所知,它是第一个真正将 JavaScript 带到更高水平的 Web 应用程序,它使用 JavaScript 来动态地切换你正在查看的内容。

00:17:49 - Saron Yitbarek

假设你正在查看收件箱,然后单击了一封电子邮件。在过去,你的电子邮件查看器会在你的浏览器中加载一个全新的页面,仅仅是为了向你显示那封电子邮件。当你关闭该电子邮件时,它会重新加载整个收件箱。

00:18:05 - Michael Clayton

这造成了很多延迟。当你在视图之间来回切换时要等待很多时间,Gmail 改变了这一切。他们使用 JavaScript 在后台获取你想要查看的内容,然后将其展现在你面前,而无需等待全新的页面视图。

00:18:23 - Saron Yitbarek

这节省了大量的时间和精力。但是仔细想想,它改变的不仅仅是速度。它改变了我们工作的本质。

00:18:35 - Michael Clayton

所以,Web 开发者作为一种职业,已经从类似幕后角色的服务端走到了离用户仅薄薄一层之隔的位置,因为他们直接在浏览器中编写代码,而用户也正是通过浏览器查看 Web 页面。

00:18:52 - Saron Yitbarek

它改变了一切。事实上,你完全可以把引领 Web 2.0 革命的功劳都归功于 JavaScript。任何有 Web 浏览器的人都突然之间拥有了一个摆在他们面前的开发环境。但是,正如我之前提到的,老保守派对民主性并不一定感到舒服。

00:19:16 - Michael Clayton

早期反对 JavaScript 的人当中,我也是其中的一员。我有个阻止 JavaScript 运行的浏览器扩展。我认为它是一种无用的玩具语言,每当我访问一个网页,该网页的某些关键功能需要 JavaScript 时,我都会感到愤怒。我想,“你应该在没有 JavaScript 的情况下以正确的方式构建你的网站。”

00:19:43 - Saron Yitbarek

然而,很快,Brendan Eich 仅仅用 10 天创建的语言,它所蕴含的美和潜力对每个人来说都变得显而易见了。现在,它不仅征服了浏览器,也征服了服务器。有了 Node.js,这种小众语言的全新领域已经打开。

00:20:03 - Michael Clayton

当我听说 JavaScript 打算在服务器上运行时,我想,“为什么会有人想这么做?”那时,我已经是一名专业的 JavaScript 开发人员了。我每天都写很多 JS,但我还是不太明白为什么它可以归属到服务器端,事实证明,像很多听众都知道的那样,Node.js 现在是这个行业的一支巨大的力量。我认为这是有充分理由的。

00:20:32

Node.js 如此成功的原因之一,就是它拥有庞大的前端 JavaScript 开发人员和客户端开发人员社区。他们写代码,他们在用 JavaScript 为浏览器编写代码。这么多的开发者,现在又可以用同样的语言来为服务器端编程,这让他们立刻就拥有了大量的可以立即开始为服务器端做贡献的人员。这个工具已经在你的工具包中,你只需将其拿出来,安装上 Node.js,然后就可以加入到编码竞赛中去了。

00:21:11 - Saron Yitbarek

先是在浏览器中,然后又在服务器上。JavaScript 是这种朴实无华、暗自芬芳,有时候也会有点古怪的编程语言。这个浏览器战争中的幸存者,被大家低估了。

00:21:25 - Michael Clayton

JavaScript 算是编程语言中的灰姑娘故事,它始于基本上是在 10 天内拼凑起来的初态。中间经历了来自其他编程社区的许多嘲笑,然而仍以某种方式继续取得成功和增长。最后到现在稳居世界上最流行的编程语言中排名第一、第二的位置。JavaScript 基本上无处不在。在网页内部运行的能力意味着 JavaScript 和 Web 一样普及、非常普遍。

00:22:08 - Saron Yitbarek

Michael Clayton 是红帽公司的工程师。JavaScript 吞噬了世界吗?它是否搭上了 Web 的顺风车,才成了一种主流语言?我想找出 JavaScript 的实际边界在哪里。

00:22:25 - Klint Finley

嗨,我叫 Klint Finley。我是 Wired.com 网站的撰稿人。

00:22:28 - Saron Yitbarek

Klint 对同样的事情也很好奇。他越是关注今天 JavaScript 的运行方式,就越发意识到它已经渗透到他的在线生活的每一个环节。

00:22:40 - Klint Finley

在你还没来得及决定是否要让所有这些不同的应用程序在你的电脑上运行之前,JavaScript 已经成为一种可以增强整个应用程序能力的工具。它们就那么运行了,它们参与了广告或促进广告商使用的跟踪。所以,在你的浏览器中,有很多事情在无形中发生,你甚至可能根本不知道,也不希望发生。

00:23:07 - Saron Yitbarek

因此,Klint 决定做一个小实验。

00:23:10 - Klint Finley

我决定试着在没有 JavaScript 的情况下使用 Web 一段时间。我决定试一试,花一周时间禁用浏览器中的 JavaScript。

00:23:21 - Saron Yitbarek

听起来很简单,但是放弃所有 JavaScript 产生了一些令人惊讶的效果。因为 JavaScript 已经变得如此之大,如此之全,这种以轻量级著称的语言现在实际上占用了大量的空间和能源。当 Klint 屏蔽了那种语言时才发现……

00:23:39 - Klint Finley

总体而言,这在很多方面都是一种更好的 Web 体验,比如页面加载更快,页面更干净,我电脑的电池续航时间更长,并且我对电脑上发生的事情有了更多的控制感,因为没有这些奇怪的、看不见的随机程序在后台运行。

00:24:02 - Saron Yitbarek

想象一下第一次过上没有弹出式广告的生活是多么幸福。

00:24:07 - Klint Finley

很多东西很大程度上依赖于 JavaScript 来加载。所以网页变得简单多了,广告少了,干扰也少了。

00:24:17 - Saron Yitbarek

不过,这种整洁的 Web 体验并不是全部。如果你拔掉 JavaScript 的插头,Web 的某些部分就完全不能工作了。

00:24:26 - Klint Finley

很多内容都不能正常运行了。Gmail 把我重定向到了一个为旧手机设计的不同版本。Facebook 也一样,很多流畅的互动没有了,它变得更像是一系列的网页。因此,Netflix 无法正常工作。YouTube 无法正常运行。是的,任何非常依赖互动的东西都不能运行了。拿掉了 JavaScript,有好处也有坏处,最终我不得不做出抉择,有 JavaScript 总比什么都没有要好。

00:25:05 - Saron Yitbarek

Klint Finley 是 Wired.com 的撰稿人。大多数人预测 JavaScript 只会继续主导移动和桌面应用程序开发。像基于浏览器的游戏、基于浏览器的艺术项目等等,它们的复杂程度正在飞涨。不断增长的 JavaScript 社区正在最大限度地利用这一潜力。

00:25:34

值得回想一下,就在 1995 年,就在几十年前,Brendan Eich 坐在一个房间里,设计出一门新的语言。今天,这种语言渗透到我们所做的每一件事中。也许说一串新的代码会改变世界听起来有点陈词滥调,但它确实发生了。一位代码英雄将他对语言的所有热爱汇聚到 10 天的冲刺中,世界的 DNA 也将永远改变。

00:26:10

我们可以为 Google Docs、YouTube 和 Netflix 而感谢 JavaScript。但是你知道,“能力越大,责任越大”,随着 JavaScript 的影响力在大量开源库的推动下不断增长,责任不再仅仅落在一个人身上了。一个更广泛的社区已经接过了责任。SlashData 最近估计 JavaScript 开发人员的数量为 970 万,在 GitHub 上,JavaScript 有比任何其他语言都多的 PR( 拉取请求 Pull Requests )。 JavaScript 在全世界代码英雄们的力量加持下,正在走向美好未来。

00:26:59

下一期的《代码英雄》,我们将遇到另外一种 Web 语言,我们将探索 Perl 是如何在一个广阔的新领域蓬勃发展的。

00:28:04

最后,有听众在网上分享了我们上一季的 Hello World 那一期,在该期中我们也谈到了 Brendan Eich 和 JavaScript。在那一期,有嘉宾说,在那 10 天里,Brendan 可能没有睡过多少觉,如果有的话,也是很少。好吧,Brendan 在推特上回应说,他确实在那次冲刺过程中睡过觉。想要更多地了解这 10 天发生了什么,请查看 Devchat 对 Brendan 的采访播客。我们会在我们的节目记录里加个链接。我是 Saron Yitbarek。下期之前,编码不止。

什么是 LCTT SIG 和 LCTT LCRH SIG

LCTT SIG 是 LCTT 特别兴趣小组 Special Interest Group ,LCTT SIG 是针对特定领域、特定内容的翻译小组,翻译组成员将遵循 LCTT 流程和规范,参与翻译,并获得相应的奖励。LCRH SIG 是 LCTT 联合红帽(Red Hat)发起的 SIG,当前专注任务是《代码英雄》系列播客的脚本汉化,已有数十位贡献者加入。敬请每周三、周五期待经过我们精心翻译、校对和发布的译文。

欢迎加入 LCRH SIG 一同参与贡献,并领取红帽(Red Hat)和我们联合颁发的专属贡献者证书。


via: https://www.redhat.com/en/command-line-heroes/season-3/creating-javascript

作者:Red Hat 选题:bestony 译者:gxlct008 校对:windgeek, FineFan, wxy

本文由 LCRH 原创编译,Linux中国 荣誉推出

以开源贡献的方式来构建一场“开源”的峰会。

小白:老王,到了年底,你有啥安排没?年底了准备出去玩么?

老王:没呢,这不是,最近收到了一个以开源思想构建的技术峰会 openEuler Summit 2020 的邀请,准备去看看这个备受开源社区和互联网技术领域关注的大会到底怎么样,他们是如何以开源构建的大会。

小白:openEuler ?

老王:嗯,openEuler。你知道,它是一个支持多种处理器架构的操作系统,不过,它也是一个颇具活力的开源社区。而且,不只是开源的操作系统,它还有很多子项目,可以说横贯了整个开源生态领域。

小白:之前我对它的认识只是一个操作系统,按你这么说,它还是一个社区咯?它发展怎么样?

老王:openEuler 的社区发展的非常不错。我记得,就是今年年元旦前一天, openEuler 才正式宣布开源;而不到一年,openEuler 就已经拥有了 60 个以上的合作伙伴企业;70 多个特别兴趣小组(SIG);2,000 多位社区开发者;以及 3,000 多个软件包、6,000 多个代码仓库以及 20,000 多个来自社区的拉取请求。这样的发展速度和社区活跃度真是令人吃惊。在我的印象中,能在短时间内在开源方面发展这么快,似乎只有微软这样一家全面拥抱开源的公司。

成长中的 openEuler

小白:我们是以 Linux 为社区基础的开源社区,自然对操作系统更关注一些,openEuler 这个操作系统如何呢?

老王:openEuler 是一个操作系统,也是一个 Linux 发行版。就发行版本身而言,openEuler 是一个支持多种硬件架构的操作系统,这一点在如今的 IT 格局下尤为重要。除此以外,它还延展出了很多下游发行版,比如麒麟 V 10、UOS V20、TurboLinux 15等等。说实话,创建一个发行版并不是一件太难的事,但是能成为很多发行版的上游,这一点非常难,所以,当 openEuler 宣布已经有了许多下游发行版时,尤其是这其中还包括很多老牌的发行版,能将其上游切换到 openEuler,我是非常吃惊的。

openEuler 的下游发行版

小白:能让其他发行版认可作为上游发行版,那真的是很厉害了!

老王:是的,这一点可以看出社区对 openEuler 的认同,也体现了大家看好 openEuler 的发展。说真的,咱们 Linux 中国开源社区内部不止一次有提议创建一个社区自己的发行版,但是由于种种考虑,一直没有推动落实。自从看到了 openEuler ,我也在想,或许是时候将 Linux 中国的发行版提上日程了,就从一个 openEuler 的下游发行版开始可能是一个好的起点。

小白:哦?你这么看好 openEuler 啊?

老王:因为,它不仅仅是一个发行版,更是一个开源生态啊。如果仅仅是一个操作系统,说实话,我们从 CentOS/Fedora 或 Debian/Ubuntu 分叉出一个下游发行版,其实也是可以的。但是,我觉得 openEuler 的发展可能不止于此,它所营造的生态是我更感兴趣的。openEuler 旗下除了 openEuler 发行版,还有许多不错的开源项目,比如我之前谈过的 iSula。它从一开始就没有将自己仅仅定位在一个操作系统层面,而是希图构建更庞大的开源生态,可见 openEuler 也是颇具“野心”的。

小白:说起来,你为啥会被邀请去参加活动呢?是因为你的光头吗?:D

老王:当然是因为我本人长的比较有特点吧,哈哈,开个玩笑。其实是因为今年 openEuler Summit 非常不同,根据我的了解,这是一个“开源”的大会,这里的“开源”,不仅仅指的是针对开源、开放的主题,而是在整个大会设计、推进和组织方面,都充分应用了开源、开放的思想,这一点是我最为感兴趣的。

长的有“特点”的老王

今年的 openEuler Summit 一共有四种不同的参与形式,分别是演讲者、志愿者、SIG(特别兴趣组)、现场演示。我觉得,作为一个以开源文化和技术推广为己任的社区,我们也可以以开源的方式参与进去,比如说:

  • 演讲。说实话,能让不代表企业的草根演讲者站上演讲台的技术峰会不多。抛开我参加的商业技术峰会不谈,我参加过在中国台湾举办的 COSCUP,有幸给海峡两岸的开源同好分享过我们的经验和历程;我也参加过开源社历年主办的 COSCon,结识了许多国内开源领域的贡献者、爱好者和大咖们。虽然,这几年我逐渐淡出了演讲台,但是这次我觉得可以再次和大家围在一起聊聊。
  • 志愿者。咱们 Linux 中国的小伙伴们是极具参与和贡献精神的,所以,我也会号召咱们的成员作为志愿者参与到 openEuler 峰会的组织当中。开源是一家,大家不分彼此。
  • SIG。不知道什么时候,SIG ( 特别兴趣组 Special Interest Group )这个词汇开始流行起来了,我就特别喜欢这个词,因为这个词真正代表了开源的多样性和丰富的组成。所以,如果有这样的一个机会,在 openEuler 社区内申请一个 SIG,何乐而不为呢?——至于是什么 SIG,暂且保密,我会在 openEuler 峰会时揭晓。
  • 现场演示。你觉得咱们会演示什么?

除此以外,我觉得,正如这个峰会的主旨,这是一场开源的大会,也是一场无边界的大会,那何不创建更多的开源可能呢?

开源软件里面最常见的提交贡献的方式就是发起一个 拉取请求 Pull Request (PR)。我觉得,我们应当以开源的方式来参与这个这个峰会,向大会发起 PR ,比如,以下是我拟定的 PR:

  • openEuler + Linux 中国的纪念徽章:为这次盛会定制并送出我们的专属徽章,或许还可以再搞一台激光雕刻机,现场为大家刻录上你的 GitHub/Gitee ID。
  • 路人采访:在 openEuler 大会现场搭建一个直播台,可以和经过的开源伙伴们一起聊聊。

等等。当然,就像 PR 需要进行审查才能合并到代码库一样,这些还需要和 openEuler 沟通细节才行。

小白:这么多参与的方式,那确实是很厉害了,我是没想到 openEuler 有这么开放。

老王:是的,作为 openEuler 的第一次线下大会,我想,此次峰会会给很多人不一样的感觉。那些已经参与进来的贡献者们可能会更加认同 openEuler 的理念。虽然我没有太多的精力实际给 openEuler 项目贡献代码,但也可以以自己的方式参与到 openEuler 的共建中,让 openEuler 整个生态变得更加美好。我相信我对于大会提的这些“PR”,一定可以进入到讨论的环节,甚至可以变为现实。

小白:确实不错,祝你的 PR 可以成功的被合并到 “Master 分支”,并被发布到“生产环境”!

老王:嗯,是啊,我也期待我的 PR 可以合并。你如果有兴趣,也不妨来参加本次的 openEuler 大会,相信你也可以成为一个好的志愿者。

小白:嘿嘿,那我这就去。

老王:等等,峰会的官网是这里: https://openeuler.org/zh/interaction/summit-list/ ,你可以了解一下详细情况。

小白:Yes, Sir!

JavaScript 之所以能在编程语言中名列前茅,是有充分的理由的。

如 GitHub 的 The State of the Octoverse 报告的这张图所示,如果按 GitHub 上项目的贡献者数量统计,JavaScript 一直是最受欢迎的编程语言。

 title=

热门语言,根据《The State of the Octoverse》(©2019,GitHub Corp

在本系列的 上一篇 中,我们深入了解了 JavaScript 的历史。在这篇文章中,我将分享它如此受欢迎的四个原因

1、JavaScript 适合初级、中级和高级开发人员

JavaScript 不需要任何环境设置,只要打开浏览器,比如 Chrome 浏览器,导航到开发者工具,就可以开始编码。编写一个 “Hello World” 的程序,就这么简单:

console.log("Hello World");

JavaScript 的灵活性最适合中级开发人员。该语言通过让开发人员专注于解决问题来帮助你完成任务。开发者可以混合使用插件和自己的代码片段来让一个应用程序工作。

虽然 JavaScript 比较容易上手,但它也并不是一下子就能掌握的。如果你想达到高级水平,这里有一些你需要了解的概念:

  • JavaScript 的多范式特性: JavaScript 同时支持函数式编程和面向对象编程(OOP)。
  • 在 JavaScript 中应用设计模式 模型-视图-*(MV*)设计模式一直是最流行的模式之一,并促成了多个现代框架的发展。
  • 带原型链的继承 JavaScript 由于其动态的特性,无法实现传统的 Java 基于类的模式下的 OOP。JavaScript 中的 OOP 是通过原型继承模型实现的。
  • 闭包 闭包可以从内部函数中访问外部函数的作用域。
  • 柯里化 Currying 柯里化是函数的一种转换,它将函数从 f(a, b, c) 的调用形式转换为 f(a)(b)(c) 调用形式。
  • PromisesObservables 这些可以帮助你处理异步函数。
  • TypeScript 在 JavaScript 中添加了静态类型。

2、全平台

JavaScript 可以在任何地方运行,包括:

  • 手机、平板电脑和笔记本电脑等设备。
  • 在客户端和服务器端。

这种在任何地方都能运行的能力使 JavaScript 成为一种通用语言。

3、开放标准和社区

ECMAScript 是 JavaScript 的标准化版本,也是一种开放的标准语言。公司可以使用 ECMAScript 来创建 JavaScript 的实现。根据维基百科,“ECMAScript 引擎是执行以 ECMAScript 语言标准编写的源代码(例如,JavaScript)的程序”。最流行的引擎 V8SpiderMonkey 是开源项目。

JavaScript 已经存在了 25 年,背后有一个庞大的社区。开发者们简直目不暇接,社区已经构建了如此多的插件和框架,以至于创造了“框架疲劳”这个词。

4、现代框架

现代框架如 ReactAngularVue.js 已经稳定下来,并且正在进行优化以获得更好的性能。大多数框架对开发者非常友好,有良好的社区支持。

未来

JavaScript 将长期存在。全栈开发和现代前端框架继续帮助 JavaScript 巩固其作为最受欢迎的编程语言之一的地位。

JavaScript 的下一波可能会将焦点放在。

  • Deno JavaScript 的现代安全运行时。
  • 网络组件: 可重复使用的自定义元素。
  • 与 AI 和 ML 的整合:SupernovaBAYOU 这样的项目在将 JavaScript 与人工智能和机器学习整合方面取得了实质性的突破。

via: https://opensource.com/article/20/11/javascript-popular

作者:Nimisha Mukherjee 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

代码英雄讲述了开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。

什么是《代码英雄》

代码英雄 Command Line Heroes 是世界领先的企业开源软件解决方案供应商红帽(Red Hat)精心制作的原创音频播客,讲述开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。该音频博客邀请到了谷歌、NASA 等重量级企业的众多技术大牛共同讲述开源、操作系统、容器、DevOps、混合云等发展过程中的动人故事。

本文是《代码英雄》系列播客第三季(2):学习 BASIC音频脚本。

导语:以前,成为程序员需要博士学位,还要能够接触到像服务器之类有着举足轻重地位的硬件。直到 1965 年,一群工程师有了个激进的想法:让编程变得更易学、亲民。

像 BASIC 这样专为初学者设计的语言为许多人打开了编程世界的大门。Tom Cormen 和 Denise Dumas 回忆了 BASIC 是如何改变一切的。Avi Flombaum 和 Saron 则会向这个软件开发新时代的编程新手们提供关于挑选第一门语言的建议。最后,Femi Owolade-Coombes 和 Robyn Bergeron 会向我们讲述,新一代的程序员们,是如何通过游戏来接触编程的。

这些初学者语言的诞生,让每个人都有机会踏入编程的大门。同时,这也让整个产业欣欣向荣。

00:00:02 - Saron Yitbarek

1965 年是美国历史上发生重大变化的一年。《民权法案》就是在那年签署的。

00:00:09 - 新闻档案

国会通过了史上影响最为广泛的《民权法案》,并将它写进了法律里。

00:00:12 - Saron Yitbarek

作战部队被第一次被派往越南,男人们烧掉了他们的征兵证。

00:00:19 - 新闻档案

征兵名单被放在波士顿法院的台阶上,一群高中男生挥拳抗议。

00:00:25 - Saron Yitbarek

在纽约,披头士乐队举行了世界上第一场体育馆内的音乐会。但在距离这些大新闻很远的地方,一场与众不同的革命正在酝酿。

00:00:39

5 月 1 号,凌晨 4 点。 约翰·凯梅尼 John Kemeny 教授和一名本科生正在 达特茅斯 Dartmouth 的 GE 225 型电脑上忙碌着。他们运行了一个方才写好的程序。电传打字机的三行输出,永远地改变了计算机编程领域。

00:01:04

欢迎来到红帽原创播客《代码英雄》的第三季第 2 集。我是主持人,Saron Yitbarek。在这一集,我们将继续“编程语言的过去与未来”的旅程。在第 1 集中,我们深入研究了 Python,并了解了开源社区如何在其领导阶层的大动荡中生存下来。比起上一期节目,本次节目则会更注重于个人。我会先聊聊我邂逅入门语言时的体验,这种体验我们应该都有。我将带领你们领略我学习的第一门语言 Ruby,以及某些新手语言是如何用游戏的形式,来到我们身边的。

00:01:50

不过,我得先举个例子,好让大家都能明白“新手语言”到底是什么意思。这个例子就是 BASIC,它诞生于之前提到的 达特茅斯 Dartmouth 实验室的三行输出。在 1965 年的那个黎明, 约翰·凯梅尼 John Kemeny 作为创造者之一,见证了 BASIC 的诞生。

00:02:14

BASIC 的意思是“ 初学者的泛用符号指令代码 Beginner's All Purpose Symbolic Instruction Code ”。这里面的第一个词 “初学者” 正是其不凡之处所在。在那时候,即使是少量的编程工作,也需要一名博士来完成。这是一种极高的要求,需要有人接受专业教育,更不用说那些高级的硬件了。但是 凯梅尼 Kemeny 教授和他的团队希望改变现状。他们想知道:如果要编写一种所有人都可以使用的编程语言,那会是什么样的?当美国各地的青年们剧烈地抗议,要求变革时, 达特茅斯 Dartmouth 团队提出了一种另类的革命。

00:02:57

他们的秘密武器是一个房间那么大的大型电脑 —— GE 225。它重达 2000 磅,和这份不得了的重量相匹配的是,它具备某些全新的功能。那就是分时功能(LCTT 译注:也就是时间片,实现了多用户多进程快速切换的技术)。突然间,编程不再需要复杂的打孔卡系统或庞大的开关墙了。分时意味着程序们都可以同时执行,因为系统会根据不同用户的需要来回切换其处理内容。

00:03:31

分时意味着使用者可以用惊人的新方式来访问计算机。这是来自 达特茅斯 Dartmouth 的些许录音,记录了 BASIC 刚诞生的时候,65 班的一位本科生 John McGeachie 学习的实况。

00:03:47 - John McGeachie

我们把这台相当贵的、原本只能一次让一个人用的计算机变成了可以……让超过 30 人使用的东西。30 名本科生可以同时在这上面编程,还能快速得到输出。它是史无前例的简洁直接。

00:04:15 - Saron Yitbarek

约翰·凯梅尼 John Kemeny 联合另一位计算机文化的布道师 托马斯·卡茨 Thomas Kurtz 共同开发了 BASIC 语言。他们发现,分时让计算机使用变得更亲民,因此准入门槛降低了许多。而剩下的工作则是编写一门简单直白的编程语言。 一门像 BASIC 那样的语言。

00:04:39

他们开发了像 HELLOGOODBYE 这样的指令,来代替 LOG ONLOG OFF 命令。事实上,初版 BASIC 只有 14 个简单的指令,比如条件判断 IF,和 GOTO 之类的简单选项。

00:04:54 - Tom Cormen

我是 Tom Cormen。我是 达特茅斯 Dartmouth 大学的一名计算机科学教授。

00:04:59 - Saron Yitbarek

Cormen 教授将与我们谈论所谓“初学者的革命”,以及 BASIC 的出现如何成为时代精神的一部分。它带来了一个新世界,在其中,计算机技术对更多人来说不仅不再遥不可及,甚至还是激动人心的——编程甚至变得有点时髦了。

00:05:14 - Tom Cormen

据说在 1960 年时,男学生会在这里(计算机中心)约会,我真是不能想象如果发生在现在会是什么样子。但在那个时候,计算机中心一度是约会的最佳场所。

00:05:24 - Saron Yitbarek

这种在校园兴起的编程热潮,是“初学者语言”诞生所带来的直接结果。

00:05:31 - Tom Cormen

就如同我们过去说的那样,BASIC 为那些计算机爱好者降低了准入门槛。不想学习 FORTRAN 这类编程语言的社会科学家可以使用 BASIC。从事人文艺术的人们可以用它做文本处理,甚至用来创作艺术作品,这些完全可以用 BASIC 来完成。

00:05:55

没过几年,人们就开始写电脑游戏,也时常在编程中实现 GUI。

00:06:03 - Saron Yitbarek

对于所有那些认为自己不太可能成为程序员的孩子们,编程领域的大门,突然间以一种近乎直观的方式打开了。它使得我想起来 葛丽丝·哈伯 Grace Hopper (LCTT 译注:参见上一季。元祖级程序员,美国海军准将,COBOL 的重要编写者。她也是世界上第一个在计算机领域使用 “bug” 这个词的人。)所追求的那种世界。当我们上一季谈到 哈伯 Hopper 时,我们谈到了她的语言创新如何将编程带到更多人眼前。BASIC 的此时此刻就像是 哈伯 Hopper 梦想的延续。

00:06:29 - Tom Cormen

我非常确信,如果 葛丽丝·哈伯 Grace Hopper 能看到更多人开始写代码,她会非常高兴。她可能会喜欢 BASIC 和 COBOL 的不同之处,因为这种不同为人们提供了更多的选择。他们可以写 COBOL,可以写 FORTRAN,可以写 BASIC,可以写 ALGOL,可以选择当时任何流行的语言。

00:06:54 - Saron Yitbarek

Tom Cormen 是 达特茅斯 Dartmouth 计算机科学系的一名教授。当初,计算机技术中的几大变化催生了新一代的程序员。分时功能使并发工作成为可能,而 BASIC 使入门编程变得简单了。这两个因素结合在一起,创造出了改变游戏规则的星星之火。很快,编程就不仅是大型机构的专利。这一代程序员中有像 比尔·盖茨 Bill Gates 史蒂夫·沃兹尼亚克 Steve Wozniak 这样的特立独行者,也有在个人电脑上每天默默耕耘的开发者。

00:07:32 - Denise Dumas

BASIC 能够在程序出错时立即给使用者以反馈。这让它的使用体验变得不同,它将你吸在一起,使你继续前进;这种交互是有意义的,就因为它是一种交互。

00:07:50 - Saron Yitbarek

这位是 Denise Dumas,她带领“ 红帽企业版操作系统 Red Hat® Enterprise Linux® ”工程师团队。

00:07:55 - Denise Dumas

我认为 BASIC 使编程变得民主了许多,因为 BASIC 把它自身交予学生、大众,当时的其他语言——像是 COBOL、FORTRAN 之类——根本做不到这一点。当 CRT(阴极射线管)流行的时候,BASIC 更为火爆,因为在你输入了信息之后,输出不再是被打印在一张纸上,而是显示在你面前的屏幕上。

00:08:26 - Denise Dumas

我们现在有时候会嘲笑命令行,对吧?一切都图形化了,命令行还是一如往常,但它比命令行之前的时代有了很大的改进。这一重大改进就是,你输入指令能够立即得到回应了。我认为 BASIC 降低了准入门槛,虽然我是那种控制狂,我喜欢汇编,但我还是会这么说的。BASIC 使编程变得更加平易近人。

00:08:59 - Saron Yitbarek

BASIC 在 1980 年代带来的这份激情一直延续到了今日。现在,有许多语言能被初学者用作进入编程世界的光明大道。但如今发生了另一些重要的改变:编程入门不再只有进入大学学习一途。如果将入门的方式比作道路,那么,今日,条条大路通罗马。

00:09:29

尽管 BASIC 很神奇,但 葛丽丝·哈伯 Grace Hopper 的梦想不会止步于此。如今,初学者有上百种方法可以开始编程。就我而言,我是在纽约市一家名为 Flatiron 的编程学校学习的第一门语言。我为那个项目准备了几个月,我阅读了所有可能的编程资源和教程,以确保它们也许能让我在训练营中获得最大收益。我想了解当今人们是如何接触自己的入门语言的。所以,今天我采访了自己当初的那位老师。

00:10:03 - Avi Flombaum

我是 Avi Flombaum。

00:10:04 - Saron Yitbarek

Avi 是 Flatiron 学校的创始人之一。对我来说,探究所有有关入门语言的思想,以及我们对入门语言的方法与 BASIC 的旧时代相比有什么变化,是一种享受。

00:10:26

当你教别人该如何编程时,先从哪里下手呢?我记得当我学习第一门编程语言时,我觉得这一切可真是太奇怪了。我在大学读的是英语专业,在学校里我很喜欢数学,也喜欢有机化学。我喜欢很多不同类型的科目,各种各样的东西,但是没有什么是和编程有关的。因此,我也没办法将编程比作什么。它自成一套,就像一个自己的小世界。所以,作为老师,你会从哪里开始呢?

00:10:49 - Avi Flombaum

我认为生活中你所熟悉的任何事物,曾经都是陌生的。只有经历过,真正花时间去做,才会让你对它感到习惯。这是不断重复练习的问题,只关乎你投入的时间的多少。我认为编程之所以困难,之所以让人感觉如此陌生,是因为它用极其特殊的语法来表达一些东西。没有任何歧义,没有错误的余地。要么成功,要么失败。当我们互相交流的时候,我们一般没有那种要求。一切都必须完全正确。一个逗号丢了,一个括号缺了,就全坏了。

00:11:32

我总是说,计算机是愚蠢的,为了使计算机理解我们的意思,我们必须做到完美。

00:11:37 - Saron Yitbarek

你说的这一点我喜欢。我同意,这很棒。

00:11:43 - Avi Flombaum

是啊。

00:11:44 - Saron Yitbarek

对我来说,我喜欢的入门语言是 Ruby。根据经验,我可以告诉你,这是一种非常可爱的入门语言。当你阅读代码时,感觉就像你在阅读英语。它有很多不错的库;这里插播一则知识补充。Ruby 的创造者 松本行弘 Yukihiro Matsumoto 是通过学习 BASIC 进入编程领域的。

00:12:06

如今,许多新手可能会改用 Python 或 JavaScript,而我想知道,Avi 你是否认为有最理想的入门语言。

00:12:18

我想知道,是否有首选的入门语言?如果某人没有技术背景,没有编程经验,也没有计算机科学学历而进入这个领域,那么他们就是从一开始,甚至说从零开始……随着时间的推移,有没有更好的初始语言冒出来呢?

00:12:39 - Avi Flombaum

好吧,首先,我要说的是每个人都没有背景。没有谁是天生的程序员,因此,无论你是有计算机科学学历,还是在社区中心里学习,抑或读书自学,每个人都是从初学者开始的。然后,就初学者的首选语言而言,我认为你最先看到的语言就是最好的。我对初学者的建议始终是,选择一种语言并学习它,不要改变。我认为,初学者最容易犯错的是,我先学习 Python,然后对它感到沮丧,说 Python 很烂,现在我要去用 JavaScript 了。他们学习 JavaScript,然后对 JavaScript 感到沮丧,然后又换了起来。

00:13:22

如你所知,我个人认为 Ruby 是一种很棒的初学者语言。我认为它的语法真的很漂亮。它的价值,明确地就是要使你(程序员)感到高兴。我不知道是否有其他任何使程序员开心的语言。我知道人们发明了许多语言来使机器开心,但我认为 Ruby 确实很自然。

00:13:44 - Saron Yitbarek

这一点我们可以达成共识。但是同样,这里没有错误的答案。毕竟,入门语言就是这样。它只是开始。我们所有人都有一生的时间用来学习,而且,选择一种语言而不是另一种语言,并不会阻止你成为出色的程序员。

00:14:05

我喜欢画画,但我不会为了一支笔而死去活来。我不会因为我使用的笔而大动干戈,我为我所创造的东西而激动。那么从你的经验来看,为什么会这样呢?在大家面前辩护,让大家相信你对一种编程语言的看法是正确的,这样的一种思潮是从何而来的呢?

00:14:23 - Avi Flombaum

我也不知道。因为我很喜欢你关于笔与作品的比喻,我首先想到的是……在我的设想中,人们死死地抓住工具,恐怕是因为作品并不吸引人。

00:14:41 - Saron Yitbarek

哈哈,那真好笑。

00:14:42 - Avi Flombaum

如果你做的东西就是不厉害,不伟大,对这个世界也没有太大的价值,你还想捍卫你的手艺,你唯一能指出的就是,是啊,看我把那把锤子挥得多好。当然,房子虽然倒了,但那把锤子,那把锤子真的很棒,我知道怎么用。作为一个人……我也觉得建造出的东西比你建造它的方式更重要。

00:15:09 - Saron Yitbarek

说得好。现在,初学者不止可以选择 BASIC 或者 FORTRAN,我们已经拥有一整套的入门语言清单,但总有一种危险,那就是你忘记了这些语言仍然是达到目的的一种手段。语言是工具,不是你要制作的东西。

00:15:27 - Avi Flombaum

我认为技术的价值在于,为人们创造有意义的事物。说到底,如果你确实是一名非常非常好的程序员,但是你做的东西没有人需要,没有人喜欢……它没有为世界增加价值,但是你真的真的非常擅长这门手艺,只是找不到能产生影响的方法,我想你可能会深入研究并讨论所使用的工具。

00:15:56 - Saron Yitbarek

好吧,非常感谢 Avi,感谢你分享你的所有经验以及对编程语言的想法。那我们就谈到这里?

00:16:01 - Avi Flombaum

是的,这非常好玩,很高兴再次跟你交流,我希望大家都找到自己喜欢的语言,每天都能用它来工作。

00:16:10 - Saron Yitbarek

听起来不错。

00:16:13

Avi Flombaum 是 Flatiron 学校的联合创始人之一。

00:16:20 - Saron Yitbarek

编程学校可以将教育和知识获取的精神提升到一个全新的高度。这是我们在 达特茅斯 Dartmouth 看到的一切的延续;但如今,在一个多样化的开发生态系统中,新的、更加自然的入门方式将会不断涌现,初学者们已经有了更理想的手段来开始他们的编程“游戏”;有时,他们甚至会以玩游戏的方式入门。

00:16:45 - CO.LAB 参与者

你试过其他键吗?试试 G 键。

00:16:52 - Saron Yitbarek

现在,在这暂停。这不是一群年轻的程序员在默默地背诵 O'Reilly 的课本,也不是在 Flatiron 学校的讲座。这其实是红帽在伦敦 泰特现代美术馆 Tate Modern 里运行的一个小实验室。那些孩子呢?他们在学习写代码。对于新一代来说,编程的乐趣就是他们首先体会到的。

00:17:13 - Femi Owolade-Coombes

好的。嗨,我叫 Femi,也叫 Hackerfemo。

00:17:17 - Saron Yitbarek

Femi Owolade-Coombes 只有 13 岁,但他已经是新一代程序员中的一名领袖。

00:17:26 - Femi Owolade-Coombes

我八岁的时候第一次接触到编程,那时我去 约克 York 参加一项活动。活动本身其实是数学主题的,不过我在那里看到了个很酷的东西——合法地黑入 Minecraft。作为八岁的孩子,那时候的我认为那真的很酷。所以我就这样喜欢上了编程。

00:17:47 - Saron Yitbarek

他并不孤单。Minecraft 已经将一代人引入了编程领域,而且它做到了没有过去几代人所经历的痛苦和枯燥的学习。游戏的魔力正在消除障碍。 Minecraft 是基于 Java™ 的,它也为该语言注入了新的活力,催生了一大群新的 Java 粉丝。

00:18:11

但不一定是 Java。对于 Femi来 说,Python 是他在 Minecraft 中发现的语言。

00:18:16 - Femi Owolade-Coombes

当你使用 树莓派 Raspberry Pi 版的 Minecraft 时,你可以用 Python,因为树莓派上的 Minecraft 是特殊编写的版本。它很酷,只要导入这个库,你就可以黑进去,到处放置爆炸性的 TNT;你可以在自己身后创建方块,也可以创造建筑物。你可以拿它做各种各样的事。

00:18:42

当我第一次玩它时,我发现可以添加很多类似 mod 的东西(LCTT 译注:一类加载于电子游戏上的插件,玩家可以通过 mod 改变游戏的行为方式),这很酷。mod 这东西本身就有点像黑进游戏一样,但 mod 的存在让我意识到,我们也可以用正规的方法改变游戏,让它以你希望的方式行事。我认为这真的很酷。

00:18:57 - Saron Yitbarek

Femi 打开了一个编程世界,而通往世界的大门是他最喜欢的游戏。然后,他做了一件了不起的事情。他开始向其他孩子分享那扇门。

00:19:10 - Femi Owolade-Coombes

嗯,我想与同伴分享我的知识。因为我觉得,你知道吗?他们会非常喜欢的,我也会因此度过愉快的时光。我想与其他所有人共享这些,这样他们就能了解它,甚至可以参与编程。

00:19:30 - Saron Yitbarek

Femi 将此事贯彻到底,创办了 南伦敦树莓酱 South London Raspberry Jam (LCTT 译注:这个名称典出“树莓派”;jam 也有即兴演奏的意思,常用于一些赛事。),在那里,他已经看到了全新一代的编程者,他们正挑战人们以往对编程初体验的预判。除了那些 Minecraft 黑客,像 Scratch 或 Fruit 这样的可视化语言也让越来越年轻的用户拥有基础知识可以实现编程。

00:19:54 - Femi Owolade-Coombes

我确实喜欢玩游戏这个点子,比起在课堂上学习代码,我最喜欢的是能够控制游戏中发生的事情,而代码是背后的魔法,代码给了你那种非常酷的能力,让游戏做你想要的事情。

00:20:15 - Saron Yitbarek

Femi 的妈妈告诉我们,当她发现玩游戏并非一种弊大于利的追求时,她有多么高兴。我喜欢他的故事,因为这故事是从游戏开始的,却没有结束于游戏。他建立了一个属于年轻程序员的、了不起的社区;Femi 自己的代码生涯也在起飞,不再是围绕着 Minecraft 了。他在 HTML、JavaScript 和 CSS 领域工作,建立网站,做网页设计。他甚至在用 Unity 打造自己的游戏。

00:20:44 - Femi Owolade-Coombes

每个人都应该有权利学习编程,因为这是未来。

00:20:53 - Saron Yitbarek

Minecraft 真的是一所巨型编程大学吗?明日的程序员,是否会通过游戏和玩耍来吸收新的语言呢?只通过环境渗透能否真正地学习语言?

00:21:06 - Robyn Bergeron

嗨,我叫 Robyn Bergeron。

00:21:08 - Saron Yitbarek

Robyn 是 Red Hat 的 Ansible® 社区架构师 community architect ,她有几个孩子,这些孩子们偶然间接触到了编程。

00:21:18 - Robyn Bergeron

那是晚饭时刻。我在做饭,每个人对这件事情都印象深刻。我的女儿来到厨房,她说:“妈妈,我在 Minecraft 中提交了一个错误!”我从事软件工作,我看到过很多很多错误报告,而且我真的很好奇,在那个宇宙中,这意味着什么。是说我在 Twitter 上和别人聊了聊,说它坏了,还是什么?我让她给我看看,于是她打开了电脑,她已经在 Mojang 的系统中创建了一个 JIRA 帐户。

00:21:53 - Saron Yitbarek

我们应该注意到,罗宾的女儿在当时只有 11 岁。

00:21:57 - Robyn Bergeron

她把表格填得像模像样。我见过很多内容不完整的错误报告,也见过很多口吻过于尖锐的错误报告。但这是一个完美的报告……这份报告里有说“发生了什么事”,“我预期会发生什么事”,以及“如何重现错误”。对于很多人来说,这是他们与项目的第一次互动,无论是商业的、专有的软件项目,比如一个电子游戏,还是一个开源软件项目。我很自豪,我告诉她,之后我们完全可以去参加 Minecraft 大会,因为他们一直很想去。

00:22:33 - Saron Yitbarek

Robyn 意识到,当我们其他人从事日常工作时,孩子们却开始了一场革命。以下是在那场 Minecraft 大会上发生的事情。

00:22:43 - Robyn Bergeron

我们去参加主题演讲,我说,就算我们在最后一刻去也会没事的,会在第二排找到位置。但我的设想完全错了,我们坐得就跟房间后面那 10 个大屏幕一样靠后。不过这并没有减少孩子们的热情。大会的其中一天,全体开发人员也在会议上出场了。当工程师们出来的时候,所有在场的孩子都站起来尖叫。如果你看过披头士乐队表演的视频,那这时候就像披头士乐队来美国时一样。我不能相信他们就在我们眼前,这是难以置信的一幕!在会议期间,人们都在试图得到他们的签名,这是……我和我的孩子坐在那里,我在想,我开发操作系统,连接互联网,这样你们才能在一起玩游戏吧?我们做错了什么,才会如此默默无闻呢?

00:23:36 - Robyn Bergeron

但是孩子们就像,我长大后要成为使用 JavaScript 的人!是的,那个活动带来的热烈氛围令人着迷,但……这是一个电子游戏。

00:23:51 - Saron Yitbarek

在 70 年代的某一段时间,每个人的入门语言都是 BASIC;然后可能是 C。近来,人们开始使用 Java 或 Python,但是可视化语言编程和游戏正在催生我们鲜有设想的编程未来。

00:24:10 - Robyn Bergeron

尽管对于已经从事多年编程工作的人来说,这似乎微不足道,但我开始游玩的那一刻,我甚至没有意识到,我其实是在学习一种可以让我受益终生的东西。

00:24:23 - Saron Yitbarek

Robyn Bergeron 是红帽的 Ansible 社区架构师 community architect

00:24:32

BASIC 邀请大学生进入编程世界,而 Minecraft 等游戏则邀请小学生进入当今编程世界。但是从某种意义上说,创造的动力并没有改变。那些大学生在学习 BASIC?是的,他们经常用它来编写游戏。最常见的似乎是足球题材。

00:24:54

创新精神是驱使我们学习编程语言的第一推动力。这种驱动力让我们使世界变得更好,或变得更加有趣。

00:25:08

下次,在第 3 集中,我们会讲述,全新的编程语言究竟从何而来?我们会了解到,巨大挑战是如何推动着开发人员从过去的语言中走出来,并在今天创造出新事物的。

00:25:26

《代码英雄》是 Red Hat 的原创播客。如果你想更深入地了解 BASIC 的起源或在本集中听到的其他内容,请转至 redhat.com/commandlineheroes

00:25:37

我是 Saron Yitbarek。在下期节目到来之前,也请继续编程。

什么是 LCTT SIG 和 LCTT LCRH SIG

LCTT SIG 是 LCTT 特别兴趣小组 Special Interest Group ,LCTT SIG 是针对特定领域、特定内容的翻译小组,翻译组成员将遵循 LCTT 流程和规范,参与翻译,并获得相应的奖励。LCRH SIG 是 LCTT 联合红帽(Red Hat)发起的 SIG,当前专注任务是《代码英雄》系列播客的脚本汉化,已有数十位贡献者加入。敬请每周三、周五期待经过我们精心翻译、校对和发布的译文。

欢迎加入 LCRH SIG 一同参与贡献,并领取红帽(Red Hat)和我们联合颁发的专属贡献者证书。


via: https://www.redhat.com/en/command-line-heroes/season-3/learning-the-basics

作者:Red Hat 选题:bestony 译者:erlinux 校对:acyanbird, Northurland, wxy

本文由 LCRH 原创编译,Linux中国 荣誉推出