洋葱状态2003

这是第七届洋葱状态演讲,我在其中告诉你Perl的情况。Perl情况很好,谢谢。既然这个问题已经解决,我想用剩下的时间讲笑话。

实际上,会议组织者已经注意到我大部分时间都在讲笑话。所以每年他们给我更少的时间,这样我不得不减少更多严肃的主题内容,以便留出时间讲笑话。

前瞻几年,他们最终会把我的时间削减到十秒。我只有足够的时间说:“我真的非常兴奋地看到Perl今年发生的事情。我想宣布,经过长时间的谈判,我和Guido终于决定…… [<gong> [“时间到。下一位演讲者”]

好吧,你其实并不想知道这些……

既然这是联合状态演讲,或者说是洋葱状态,在Perl的特殊情况下,我应该告诉你Perl的当前状态。但我已经告诉你,Perl的当前状态很好。至少和以前一样好。也许更好。

但你们真正想知道的是Perl的未来状态。这很好。我对Perl的未来了解不多。没有人知道。这也是Perl 6设计的一部分。因为我们正在设计它成为一个可变语言,它可能会发生变化。如果我知道Perl的未来,并且告诉你,你可能会尖叫着逃跑。

当我冥想这个主题,思考我不了解Perl的未来,以及你们可能根本不想知道它时,我想起了一个我在20世纪60年代第一次看到的谚语。你们在某些日子里可能会这样感觉。

我们这些不情愿的人,在无知者的带领下,为那些不知感激的人做着不可能的事情。我们已经用这么少的资源做了这么多,现在我们有资格用一无所有去做任何事情。

blue collar我把这看作是蓝领工人的信条。

这被归功于各种人,但没有一个是本杰明·富兰克林、亚伯拉罕·林肯或马克·吐温。我最喜欢的归属是特蕾莎修女。她可能引用过它,但我不认为她创造了它,因为我不认为特蕾莎修女认为自己是不情愿的。毕竟,特蕾莎修女因为是最愿意的人之一而获得了诺贝尔奖。

它也被归功于越南的海军陆战队员,这确实更合适。但因为我在一个海军城镇长大,我想它可能是由为海军工作的民用造船厂工人发明的。无论如何,我在20世纪60年代在普吉特 Sound 海军造船厂的一个工作区域第一次看到它。现在,你可能很想知道我在20世纪60年代在海军造船厂做什么。这是个秘密。

不管怎样,你可能还在想为什么我要提起它。好吧,去年我使用了《科学美国人》一期杂志的目录作为我的提纲。今年我想用这个作为我的提纲。

我想这么做,但我不会。

但如果我们这么做,以下是我会说的。

从后现代主义的角度来看,这是一篇需要解构的文本。很明显,这是一位处于权力地位的人假装不知道自己权力的产物。通过轻视蓝领工人的困境,并允许受压迫的工人在工作场所张贴复印机梗图,这位身穿蓝领羊皮的职场白狼成功地说服了受压迫的工人,让他们认为无权是一种值得骄傲的事情。

现在,一些年轻人对后现代主义太过沉迷,以至于对后现代主义一无所知,所以我们来回顾一下。后现代主义在其最恶劣的形式下,最初的观点是存在各种文化结构、文本或梗图,它们允许一些人压迫另一些人。当然,在苏联俄罗斯,情况正好相反。这就是为什么他们认为能够自我解构的原因,我想。

不管怎样,解构主义就是摒弃那些不良的文化梗图,这里的“不良”是指任何受压迫的人不喜欢的东西。这在某种程度上是可以接受的,但是问题在于,只有当解构主义者说你时,你才能成为受压迫的人。死去的白人男性不在此列。幸运的是,我还活着。虽然我在尝试。正如你们中的一些人所知,几周前我因为胃溃疡住院。我想我有点像苏联俄罗斯。我自我压迫,所以自我解构。

哦,顺便说一下,我康复了。以防你们没注意到。

不过,我现在不能再喝任何棕色饮料了。唉。这就是为什么这次演讲这么无聊——我是在没有影响下写的。

但回到后现代主义。后现代批评家发明了一种符号,用于在同时使用一个词并否定其通常意义,因为大多数通常意义都会对某些人或其他人造成压迫,如果不是这样,它们应该如此。或者类似的东西。

无论如何,我将借用这个符号,用于我自己的压迫目的,并划掉一些这些词,这些词的含义并不是我想要的。我希望这不会让我成为后现代批评家。或者也许是的。正如Humpty Dumpty所说,问题是谁是主人,仅此而已。

所以,让我们先划掉“不情愿”,因为这里有很多愿意的人。或者至少是任性的。

还有,“无知”也要划掉,因为如果你认为我们不知道任何事情,你就不会坐在这里听我们这些领导人的演讲。另一方面,也许你们只是来听笑话的...

现在让我们划掉“不可能”。实际上,我犹豫要不要划掉这个词,因为我们试图用Perl做到对所有人都有利,从长远来看,在技术、社会和神学意义上,这是完全不可能的。

但这并不能阻止我们尝试。而且谁知道呢,可能比我们想象的更多的事情是可能的。

我们肯定需要划掉“忘恩负义”,因为我们知道很多人都是感激的。尽管如此,仍有很多人发现无法感恩,我们也应该努力取悦他们。爱你的敌人,等等。另一项不可能的任务。或者……也许同样是。

我喜欢取悦那些没有预料到会得到取悦的人。有一天,当我比现在年轻得多的时候,我演奏了一首小提琴曲。一位女士走过来对我说:“你知道,我不喜欢小提琴。但我喜欢那首曲子。”

我珍惜这种赞美,就像我珍惜那些说“我因为编程没有乐趣而放弃编程,然后我发现Perl”的电子邮件信息。这就是我说我们应该努力取悦那些没有预料到会得到感激的人的含义。

无论如何,回到我们的信条。我看不出最后两行有什么错误。事实上,它们直接适用。

我们长期以来一直用很少的资源做了很多事。

这就是Perl 5。

现在,我们用什么都没有的资格去应对任何事。

这就是Perl 6。我想我最好也把它划掉,因为它还没有真正存在,只存在于我们的头脑中。

嗯,也许这个大纲并没有那么糟糕。让我们再详细谈谈这些事情。

the unwilling > 我们这些不愿意的人

在这个开源社区中,我们愿意帮忙,但那是因为我们不愿意忍受现状。这通常是因为我们过于懒惰、急躁和自负。但接着发生了一件非常有趣的事情。我们中的一群人会聚在一起,就因为我们的懒惰、急躁和自负而达成共识,然后我们会以极大的勤奋、耐心和谦卑开始那个项目,这似乎与最初激励我们的品质完全相反。

我试图弄清楚这种原因,但最终得出结论,这既不合理也不合理。这仅仅是我们。这是我最喜欢的引言之一。

“理智的人适应世界;不理智的人坚持试图使世界适应自己。因此,所有进步都依赖于不理智的人。”

我想我们都同意这是真的。我们只是不能总是同意对什么不理智。当然,这是由乔治·萧伯纳写的,他有自己的想法,即如何以最合理的方式不理智。毕竟,这是写了《皮格马利翁》的人,这是《窈窕淑女》这部音乐剧的基础,其中亲爱的‘Enry ‘Iggins和Eliza Dolit’le互相仇视。还有语言学。真没想到。

这个引言的问题在于它是错误的。很多进步都来自不理智的女性。

好吧,也许萧伯纳在只说“他”的时候是指“他或她”。尽管如此,如果我们想在21世纪取悦不理智的人,也许我们需要把它改写成这样

strike out man and him 另一方面,有些人很难取悦。我们可能应该直接划掉“乔治·萧伯纳”,因为他是一个已故的白人男性。

unknowing > 我们这些不愿意的人,在无知的领导下

这就是我的全部。这也是虫子在撞到挡风玻璃后说的话。

或者像虫子的朋友说的,“你肯定没有勇气再那么做了。”

我是否再次有勇气做Perl又是另一个问题。医生说我的胃口现在还是不振...

无论如何,回到“我这个人无知”的话题。我承认我有很多东西不知道。我很想告诉你我有多无知,但我也不知道这一点。

所以,我将谈论我所知道的事情。如果你愿意,你可以推断出我对今天没有谈论的一切一无所知。

我知道的一件事是通用的架构图。它看起来像这样。

它不必是黄绿色的。粉红色怎么样,和角落里的烟花相匹配。我在角落里放烟花,以防你错过了7月4日的烟花。

pink 总之,这是一个通用的架构图,因为如果你努力的话,几乎可以用它来表示任何架构。这是一个常见的例子

CPU 这里有一个总线,它贯穿我们电脑的另外三个组成部分:内存、CPU和I/O系统。在电脑内部,我们还有其他实体,如字符串,你可以将其视为整体,也可以将其视为字符序列。

string 整数就像字符串一样,只是它是一系列位。

integer 我们可以从非常小的概念,比如整数,到非常大的概念,比如政府。

government 或者甚至是不同的政府形式。

Borg 图表甚至更灵活,因为它可以侧着旋转。

plain right 现在,由于某种原因,这个特定的方向似乎最能激发爱国主义。这也许只是偶然,但如果你这样上色

flag 人们开始考虑向它致敬。我想这与烟花很搭。

这张图表稍微有点危险。

object 令人惊讶的是,这么多人会向它致敬。甚至有人会为了这个而战争

class 但是你知道,像这样的对象的整个概念是,你可以以某种方式将其视为一个整体,也可以以某种方式将其视为多个整体。每个结构化对象都包含在自己的身份中。这正是这个小图表所试图表达的。

好吧,让我们继续旋转它,看看我们得到什么。

rotate God 好吧,如果你像我一样,是一个相信上帝是一个结构化对象,这个对象根据你的看法是单一的还是复数的基督教三位一体信徒,那么你相信上帝是一个结构化对象,这个对象根据你的看法是单一的还是复数的。当然,没有人会为这类事情争论,对吧?

plain left 以这种方向看到图表是相当不寻常的,这可能是由于语言方面的考虑。

one out of many 但无论你说“许多中的一个”还是“e pluribus unum”,

pluribus 它的意思几乎相同。在从左到右阅读的语言中,也许它更适合处理信息丢失的过程,例如某些类型的逻辑。

or 再次,我们可以从小到大。

black hole 如果你将三个随机行星喂给黑洞,你也会失去信息。至少根据你关于黑洞如何工作的理论,你会很好地隐藏它。

如果你将这些图表之一喂给黑洞,它就会变成一团意大利面条。

但我们不要这么做,就说我们做了。

奇怪的是,我今天真正想谈论的是Perl。如果我们看看Parrot项目的目标,它看起来就像这样。

Borg Parrot 哎呀,错了幻灯片。

鹦鹉也就是说,Parrot的设计目的是成为一个单一的引擎,我们可以在这个引擎上运行Perl 5和Perl 6。还有……其他东西。坦白说,这确实是一种相当以Perl为中心的现实观,以至于你可以称之为现实。

好吧,好吧,我要作弊,给你展示我们还想做的其他东西。

详情我们还想支持,例如,PHP、Ruby、Python、BASIC、Scheme、COBOL、Java、Befunge、TECO、Rebol、REXX,还有……我实在看不清下面的那个。即使我能看清楚,我也不会说,因为这里还有孩子,我不想搞坏他们的脑子。

好吧,我承认这还不是现实。我只是把所有这些语言都列出来,因为我是一个即将死去之前试图压榨你们的白人男性。所以,我最好删掉一些实际上还没有实现的东西。

strikes你对一个真正快速的BASIC解释器感兴趣吗?

Parrot + BASIC好吧,现在是时候继续到我们下一个观点了。

impossible > 我们这些不情愿的人,在不知情的人的带领下,正在做不可能的事情。

我们正在做的事情真的不可能吗?这是可能的。但我们不知道,直到我们尝试。更准确地说,直到我们完成尝试。有时候事情对我们来说似乎是不可能的,但这可能只是因为我们都是懒虫。

并且因为我们过于简化。

让我们再看看那个粉色的网球场。我是说,那个通用建筑图。它实际上并不像我所说的那样通用。首先,让我们去掉粉色。

黑色也许我应该给蓝色同样的时间。

蓝色不。

黑色总之,正如我刚才说的,这还不够通用。这是真正的通用图。

line widget这就是所谓的不可能物体。我喜欢它。我是一个不可能的面向对象的人。这个特定的不可能物体通常被称为widget。但你已经知道了。

你可能不知道的是,直到现在,人们认为给这样一个物体上色是不可能的。但正如你所看到的,

colorized这是错误的。它仍然有一些感知上的困难,但我相信那个问题只是我们爬行动物大脑的遗迹。或者是我们鸟的大脑。我忘了。无论如何,如果你在正确感知这个物体上有困难,只需使用通用澄清工具。

cloud从现在起,我将假设你可以自己提供云。

在波特兰这里应该很容易……我可以在波特兰开玩笑,因为我是在太平洋北湿长大的。

正如你所看到的,这个更准确的通用建筑图实际上可以在正确模拟的灯光下3D旋转。

rotate rotate rotate rotate 它是可扩展的。

6comb 12comb 编程语言中组合结构很重要。这就是为什么我们在Perl 6中添加了switch语句。

这也更准确地代表了Parrot。

parrot它在语言上也更加复杂。

小部件 不仅能够表示单数和复数概念,还能够代表古老的印欧语系中的双数概念。

在英语中,我们仍能找到一些痕迹。

公牛 一头公牛,许多头公牛,两头牛被套在一起拉着你的犁。

正则表达式 或者一个正则表达式,许多正则表达式,但两个正则表达式共同工作。

双头Vax 你是否一直想知道双头Vax的正确名称?

一切皆有可能。你应该感到感激。

忘恩负义 接下来是忘恩负义的亡灵。

最近关于Perl 6开发速度缓慢的批评很多。其中一些来自好意的人,但也有一些来自我们住在巨魔屋里的毒笔友。尽管如此,我认为很多批评都显示出对开发基本法则缺乏理解。这些法则可以用这张图来说明。

小部件 事实上,完美的开发是不可能的。开发可以是快速、优质、便宜的。选择两个。

实际上,这是不现实的。

选择一个。

你会选择哪一个?你想要快速?你想要便宜?不,我认为你想要这个。

好。

好的设计既不快也不便宜。每次我们完成Perl 6或Parrot的设计,就像写一篇硕士论文。这需要大量的阅读、写作、思考和电子邮件,以及许多电话会议。它真的很复杂和多维度。

埃舍尔 背后有很多事情在发生,你每天都没有听说。许多人为了给我们时间来处理这些事情而做出了牺牲。人们捐赠了自己的时间和金钱。O'Reilly和Associates捐赠了电话会议和其他基础设施。Perl 6设计团队特别承担了直接的财务成本,但也因此付出了巨大的机会成本,以牺牲职业和收入为代价。我不是在寻求同情,但我想让你知道,如果我当时愿意忘记Perl 6,我几乎在20个月前就能找到一份全职工作。我对Perl基金会能够给予Perl 6工作的资助感到非常感激。但我想让你知道,这花费了我们更多。

但Perl 6的全部都是关于自由的,这就是我们愿意承诺我们的生命、我们的财富和我们的神圣荣誉的原因。

时世艰难,我不会向你这位善良的人要求更多的牺牲。我只是想提供一点观点,并提前警告你,在不久的将来,我必须找到一份真正的工作,因为有真正的健康保险,因为我不能靠我的抵押贷款生活太久。这对我的胃溃疡不好,对我的家庭也不好。

幸运的是,Perl 6的基本设计已经基本完成,尽管表面上看起来不是这样。Damian和我将在本周晚些时候的Perl 6会议中讨论这个问题。

好了,不再抱怨了。我不想显得忘恩负义,因为我不是。无论如何,过去三年非常激动人心,我认为未来的几年也将同样有趣。

特别是,我将在谈话的结尾宣布一个重大的消息,关于接下来将要发生的事情。但首先,让我用我们可怜的、被虐待的小部件来解释一下已经发生的事情。

实现 在这种情况下,时间向上流动。

最初,我们只有Perl的一个实现,当我们在开发Perl 6时,普遍的看法是我们将有两个Perl实现。

但事实上,我们将至少实现三种Perl版本。

首先,是那个基于C的经典Perl 5,而在右边,是基于Parrot的Perl 6。但在中间,还有一个也是基于Parrot的Perl 5。

省略号 注意,左边两个是同一种语言,而右边两个共享相同的平台。

那么,中间那个Perl 5在做什么呢?如果您一直在关注Perl 6的开发,您会知道,从一开始我们就说过,必须有迁移策略,而且这个策略有两个部分。首先,我们必须能够将Perl 5转换为Perl 6。如果只有这么多,我们就不需要中间的Perl了。但人们不仅需要能够将Perl 5转换为Perl 6,而且绝对关键的是,他们应该被允许分步骤地转换。您不能一次性转换一组复杂的模块并期望它们都能工作。相反,我们希望人们能够在同一个解释器下运行他们在Perl 5中的一些模块,在Perl 6中的其他模块。

因此,有一个很好的理由要在Parrot上有一个Perl 5编译器。另一个很好的理由是,我们预计Perl 5在Parrot上总体运行速度会更快。

手 另一个原因是,我们与Perl 6语法有一些启动问题。Perl 6语法是用Perl 6正则表达式定义的。但那些正则表达式是用Perl 6语法解析的。这是一个无解的困境。解决方案包括两个部分。首先,是Damian的一个神奇模块,它将Perl 6正则表达式转换回Perl 5正则表达式。其次,是一个Perl 5正则表达式解释器来运行这些正则表达式。现在,虽然也可以用旧版本的Perl 5来做,但使用运行在Parrot上的新Perl 5会更干净。

小工具 现在,不断说“Perl 5在Parrot上”之类的真的很麻烦,所以我们需要在这里做一些命名空间清理。我们可以省略Perl 6中的“在Parrot上”,因为这是多余的。

删除Parrot 同样,人们总是想到原始版本,当我们说“Perl 5”时。

删除C 这意味着我们需要给中间的这个东西一个代号。我们已经决定叫它“Ponie”。

Ponie 我们有很多理由这样称呼它。当然,它们都不是很好的理由,但有人告诉我,如果我说“我想有一个Ponie”,这会让伦敦.pm的人欣喜若狂。

我真的想要一个Ponie。“我想Ponie,我想整个Ponie。我现在就要。”

版本 计划是使Ponie 5.10成为Perl 5.10的即插即用替换品。最终将会有Ponie 5.12,如果Ponie足够好,可能就不会有老式的5.12。我们只需要5.10。

所以,我们现在就开始做Ponie。由于我一直抱怨资源不足,你们可能会想知道我们怎么做到这一点。

实际上,有一家很棒的公司叫Fotango,他们有很多Perl 5代码想在Parrot上运行,而且他们足够聪明,已经授权他们的一名员工,也就是我们自己的Arthur Bergman,在公司的空闲时间内将Perl 5移植到Parrot上。

这酷吗?我的时间到了,所以请阅读新闻稿。但我真的很兴奋于我们对未来的展望,如果你不兴奋,也许你需要检查一下你的视野。

vision 感谢您的聆听,我希望从现在起,你们都能完全不合理。

标签

反馈

这篇文章有问题吗?请通过在GitHub上打开一个问题或拉取请求来帮助我们。