拉里·特斯勒(Larry Tesler):非模态文本编辑和剪切/复制-粘贴的个人历史 作者:ConanXin 编号:108184084 创建于:2020-02-20 20:07:57 修改于:2020-02-20 20:07:57 -------------------- RIP: “剪切/复制-粘贴”功能发明人拉里·特斯勒(Larry Tesler)于2020年2月1 7日去世,终年74岁。我做了50多年的计算机程序员。从一开始,我就被那些不 好用的软件所困扰。我在斯坦福大学读书的时候,在施乐帕洛阿尔托研究中心、 苹果公司、亚马逊公司和雅虎公司担任各种工程、用户体验和管理职务的时候, 我就开始着手解决这个问题。 我最著名的贡献是剪切/复制-粘贴。我和一些同事合作了几年,开发了这个模式 。但是剪切/复制-粘贴不是一个独立的项目;它是图形用户界面(GUI)模式的 集合之一,我称之为非模态文本编辑(modeless text editing)。 我不是第一个注意到模式(modes)对错误率的不良影响的人。我也不是第一个 试图消除最繁琐模式的人。但对我来说,模式简化(mode reduction)成了一项 研究工作和商业使命。我帮助开发了非模态编辑的理论基础和第一个确认理论有 效性的产品。 二十世纪六十年代 1960年,当我还是布朗克斯科学高中(Bronx High School of Science)的学生 时,我学了一门类似FORTRAN的语言。我喜欢它的功能,但它不直观的限制让我 沮丧。 1961年,我作为一名新生进入斯坦福大学。1962年,我对一种开创性的动画语言 进行了可用性改进。那个项目给了我简化可用性研究(discount usability stu dies)和参与式设计的经验。 很快,我就成为了一个很好的程序员,使软件易于使用。教授和研究生都请我咨 询。1963年,我创建了一家软件公司,它是帕洛阿尔托黄页上仅有的六家公司之 一。 在20世纪60年代,交互式分时系统开始取代批处理系统,并且开始在微型计算机 上使用定点设备(pointing devices)。我更喜欢交互式,但是大多数交互程序 都有模式,这总是让我出错。我开始分析命令语言,找出模式和模式错误的原因 。 1968年,我开始在斯坦福人工智能实验室(SAIL)为精神病学家和认知科学家肯 ·科尔比(Ken Colby)工作。科尔比开发了一个名为PARRY的对话程序,它可以 模拟一个偏执型的病人。在为他工作期间,我认识了艾伦·凯(Alan Kay)、唐· 诺曼(Don Norman)、特里·维诺格拉德(Terry Winograd)和大卫·坎菲尔德· 史密斯(David Canfield Smith)——他们后来都成了人机交互的先驱——并且我学 到了一点认知心理学的知识。 1969年初,我参观了位于加利福尼亚州门洛帕克的斯坦福研究所的道格·恩格尔 巴特(Doug Engelbart)的增强研究中心(Augmentation Research Center)。 恩格尔巴特最近首次公开展示了NLS(oN Line System)在线系统,这是一个建 立在分时系统基础上的有远见的原型。这一开创性事件被称为“所有演示之母”( the mother of all demos)。这些创新包括鼠标、平铺窗口、多视图、提纲(o utlining)、超文本、协作编辑和视频会议。 从1968年到1970年,我有时会为当地的一家非营利组织制作一份季度目录。在用 刀片和胶水“剪切和粘贴”的时候,我设想了一个交互式的页面合成系统,可以简 化这个过程。 在同一时期,彭蒂·卡内瓦(Pentti Kanerva)向我展示了布莱恩·托利弗(Bria n Tolliver)的全屏文本编辑器TVEDIT的PDP-10端口。卡内瓦添加了一个简单的 错误恢复命令oops。他还增加了两步移动:删除步骤将用户指定的文本移动到堆 栈顶部;检索步骤将堆栈的顶部元素移动到用户指定的位置。在两个步骤之间, 用户可以做任何保持堆栈完整性的事情,包括归档、搜索、输入和移动其他文本 。虽然TVEDIT有模式,但在我看来,两步移动和类似于错误恢复的命令有助于使 设计合理的编辑器无模式化。 二十世纪七十年代 1971年,人工智能实验室的主任莱斯·欧内斯特(Les Earnest)让我设计并实现 一种页面构成语言(page-makeup language),这种语言可以对章节进行编号, 并生成索引、目录、脚注、交叉引用等。我提议让它具有交互性,但他想要一个 批处理系统,我承认这更容易些。 在几个月的紧张工作中,我创建了PUB:文档编译器(The Document Compiler) 。PUB是一种带有嵌入式标签和脚本的标记语言。它在阿帕网(ARPANET)连接的 大学的研究生中变得流行起来。 973年,我加入了施乐帕洛阿尔托研究中心(PARC),成为帕洛阿尔托研究中心 在线办公系统(POLOS,PARC Online Office System)团队的一员,但我花了一 些时间和艾伦·凯(Alan Kay)的学习研究小组(Learning Research Group)一 起研究Smalltalk。我对与凯合作感兴趣的一个原因是,他发明重叠窗口(overl apping windows)的动机是希望找到模式的替代方案。 POLOS团队的大多数成员都是从SRI的恩格尔巴特(Engelbart)小组来到施乐的 。我的经理比尔·英格利什(Bill English)参与了鼠标的设计,合著了恩格尔 巴特1968年的论文,并管理了著名的NLS演示。 从一开始,NLS主要用于构建和修改技术规范、源代码等。它的老用户发现它很 适合这个功能。但我觉得,作为编辑常见文档(如信件、备忘录和表单)的工具 ,它不会得到公众的认可。它的命令语言有多种模式。在文本输入模式之外,几 乎每一次按键和点击都会改变模式。 NLS命令语言的语法随着时间的推移而演变,但它始终是前缀,其中动词在其对 象之前指定。要删除一个段落,你告诉NLS删除之前,你告诉它应该删除什么段 落。 当指针指向某物时,点击鼠标按钮被称为标记(marking)。需要标记的三个常 用NLS命令是: D(elete) W(ord) M(ove) T(ext) I(nsert) S(tatement) 命令-接受操作(这里用表示)可以从键盘或鼠标调用。Text是任意范围的 文本。Statement通常是一个段落。 当用户键入并单击时,命令行会在一个可见的窗口中累积。用户可以从窗口中删 除最新的命令行,或者删除整行,然后重新开始。当用户调用时,NLS会删 除整行,防止进一步修改。然后执行命令。 因为Move是单个的命令,所以在输入“M”之前,目标和源都必须在屏幕上可见。 同样的限制也适用于复制和替换。可折叠提纲(collapsible outlines)等功能 提供了规避限制的方法,但用户必须学习更多语法并提前计划。 我相信,如果我们继续使用NLS语法,竞争对手将在学习速度和易用性方面超过 施乐(Xerox)。我的大多数同事都不关心。他们认为NLS很直观,因为它的语法 类似英语的动宾语法。这种语法有很大的发展空间。命令行使得从旧终端使用NL S成为可能。 在我工作的第一周,比尔·英格利森(Bill English)让我和另一位新雇员杰夫· 鲁利森(Jeff Rulifson)一起工作,对编辑行业的未来发展进行展望。我和鲁 利森见过几次,进行头脑风暴。当我向他吐露我对NLS命令语言的担忧时,他透 露说这是他设计的。他原本打算把它作为软件测试的临时工具。恩格尔巴特的团 队进行了可用性研究,并不断改进,但是他们没有认真考虑后缀语法,在后缀语 法中,动词是在其宾语之后指定的。 我向鲁利森(Jeff Rulifson)介绍了后缀语法的错误恢复优势,即: 如果用户在指定对象时犯了选择错误,她可以再次选择。不需要在命令行中进行 备份。不需要显示命令行。如果用户选择了错误的动词,其后果将立即显现。为 了纠正错误,她可以调用一个取消命令的操作。我以前从未见过比TVEDIT的oops 更通用的错误恢复命令。鲁利森告诉我,我们的PARC同事沃伦·泰特尔曼(Warre n Teitelman)在他的LISP shell中应用过。它被恰当地命名为撤销(undo)。 我和鲁利森还讨论了图形在界面中的使用。他最近读了一本关于符号学的书,书 中将图标定义为已标记的象形图,并提到了它与交互式计算的潜在相关性。 我们在PARC分发了几个版本的白皮书。它的标题是“OGDEN:非程序员的通用的显 示编辑器”(OGDEN: An Overly General Display Editor for Non programmers )。我们提出了带有桌子(desks)和文件柜的标志性用户界面。我们还提出了 剪切和粘贴的非模态后缀语法。 鲁利森愿意彻底改变他为NLS设计的用户界面,这使得POLOS团队的其他成员更容 易考虑我的建议。在芭芭拉·格罗茨(Barbara Grosz)的帮助下,我进行了用户 研究,包括空白屏幕研究,这些研究揭示了模式带来的问题。然后,使用Smallt alk语言的早期版本,我开发了一个简单的、类似打字机的编辑器,只有很少的 模式。从未接触过电脑的人可以在五分钟内学会简单的编辑器。 Gypsy 比尔·英格利森(Bill English)表扬了我的工作,但让我把注意力转向POLOS系 统。我刚开始这么做,就有了意外的发现。施乐(Xerox)旗下的教科书出版商G inn and Company要求PARC开发两个应用程序,一个用于排版编辑(galley edit ing),另一个用于页面布局。英格利森(Bill English)知道我会感兴趣,让 我负责这个项目。他指派丹·斯温哈特(Dan Swinehart)给我提建议。我在斯坦 福人工智能实验室(SAIL)共事过的丹·斯温哈特(Dan Swinehart)是模式的强 烈反对者。 我建议在页面排版系统和排版编辑中使用剪切和粘贴,这让Ginn管理层很高兴。 现在我的实验有了一批愿意接受的听众。 另一个可喜的转变是,Ginn雇佣了一位名叫蒂姆·莫特(Tim Mott)的软件工程 师,在他们位于波士顿附近的工厂进行人种学研究(ethnographic study)。19 74年,在完成了这项研究之后,莫特来到PARC帮我实现了他称之为Gypsy的排版 编辑器。当他到达时,几台施乐的Alto个人电脑已经开始工作了。查尔斯·西蒙 尼(Charles Simonyi)和汤姆·马洛伊(Tom Malloy)已经在Alto运行了Bravo 文本编辑器的早期版本。Bravo是一个开创性的所见即所得应用程序,是巴特勒· 兰普森(Butler Lampson)和西蒙尼的创意。 为了实现Gypsy,我们采用了Bravo的源代码,用非模态用户界面代替了模态用户 界面。应Ginn的要求,我们增加了粗体、斜体和下划线,以及支持版本和草稿的 归档系统。这个软件花了几个月才完成。 Gypsy引入了几个非模态的用户界面特性,这些特性现在是标准的。用户可以: 在字符之间单击,看到闪烁的插入点出现,然后开始键入;向下拖动以选择文本 ;双击一个单词进行选择;分两步移动文本,称为剪切和粘贴;分两步复制文本 ,称为复制和粘贴;以及需要搜索,请在可编辑字段中键入或粘贴搜索文本。当 我们开始实现时,我还没有把界面的所有细节都弄清楚。我认为我们应该在开发 过程中进行迭代。我没有想到的是莫特的创造力,以及他对在Ginn观察到的目标 用户的适应程度。例如,当我提出的选词建议无一奏效时,是他想出了双击的主 意。经验教训:你并不知道所有的答案。组队。 在Gypsy的开发过程中,PARC雇佣了汤姆·莫兰(Tom Moran)、斯图·卡德(Stu Card)和贝弗利·麦克休(Beverly McHugh)。他们观察到我正在进行一项可用 性研究,并提出为我们进行未来的研究。贝弗利的研究对于改进Gypsy的用户界 面非常有价值。教训:有些人能比你做得更好。组队。 1975年初Gypsy完成后,莫特把它带到了Ginn。用户喜欢它的优点。但是他们不 喜欢它的缺点,尤其是几乎完全没有代码维护,而这是我们研究人员忽略的一个 工程需求。经验教训:如果你打算把你的研究原型给那些可能会逐渐依赖它的用 户,确保有人已经计划好了维护。 影响 1975年6月,《商业周刊》(Businessweek)发表了一篇名为《未来办公室》(T he Office of the Future)的特稿,其中提到了Gypsy。 (Image: https://picx.zhimg.com/v2-45283c872d6a0b39a2ac862b8fb4911e_720 w.jpg?source=d16d100b) 帕洛阿尔托研究中心的其他同事以我们的工作为基础。莫特和我使用专用的按键 进行剪切、复制、粘贴和撤销。部分受威廉·纽曼(William Newman)在他的Mar kup绘画程序中使用弹出图标网格的启发,丹·英戈尔斯(Dan Ingalls)在Small talk中实现了一个非常简单的弹出菜单,包含一个列清单,列出了四个命令名。 这个菜单演变成了今天常见的右键上下文菜单。教训:当你认为它是最简单的时 候,也许有一种方法可以让它变得更简单。 Gypsy也影响了BravoX和Xerox Star。BravoX是查尔斯·西蒙尼(Charles Simony i)在PARC开发的Bravo的继承者。Star是第一个带有鼠标、位图显示、窗口和文 件服务器的商业办公系统。Star有一个完全一致且近乎无模态的用户界面。 BravoX和Star都支持无模态“点击并键入”插入,但都没有使用两步剪切/复制-粘 贴。用户可以用比Gypsy更少的操作进行移动或复制——在一个版本的BravoX中是 两个操作,在Star中是三个操作,而在Gypsy中是四个操作。但是实现更少操作 的折衷是一种模态,限制用户在源和目标选择之间的操作。 在20世纪80年代早期,施乐的非模态编辑器影响了苹果的丽萨(Lisa)和麦金塔 (Macintosh)电脑,以及微软的Word、Office和Windows。微软和苹果产品的流 行使得剪切/复制-粘贴和无模态文本编辑无处不在,甚至可以应用到带有多点触 摸屏的智能手机上。 现代的文字处理程序中仍然有一些模式,比如微软Word中的格式刷。设计者仍然 在尝试其他移动文本的方法,比如Word中拖放。但这些都是不感兴趣的用户通常 可以忽略的快捷方式。 Post-Gypsy 莫特从Ginn回到PARC后,他加入了一个不同的项目。对我来说,接下来是Ginn要 求的页面排版系统。我使用Smalltalk构建了一个名为Cypress的原型。用户进行 选择后,编辑菜单会在附近自动弹出,就像今天的iPhone一样。在Smalltalk-76 中实现的Cypress原型运行速度非常慢,为了演示它,我们以每秒三帧的速度拍 摄视频,并以每秒30帧的速度回放。 那时,施乐公司的工作重点变了,我的个人兴趣也变了。Ginn同意再等几年,直 到他们能够在维护良好的商业系统上进行页面布局。我开发了Smalltalk Browse r,它是当今IDE(集成开发环境)的前身。工作之余,我涉足了业余爱好者计算 机,并为Commodore PET开发了教育应用程序。1979年12月,史蒂夫·乔布斯对帕 洛阿尔托研究中心进行了一次改变世界的访问,我开始重新思考我的职业生涯。 1980年代 到1980年,施乐公司的复印机专利到期,公司正在为生存而战。很明显,除了针 对商业用户的激光打印机和STAR外,我们不会将太多PARC的工作推向市场。 我去苹果公司研究丽莎(Lisa)电脑的用户界面和应用程序。为了开发丽莎用户 界面标准,我和多才多艺的比尔·阿特金森(Bill Atkinson)合作,他和我一样 坚持简单(simplicity)。那年夏天的几个星期里,他几乎每天晚上都会制作一 个原型,第二天早上我会进行可用性研究。杰夫·拉斯金(Jef Raskin)当时正 着手开发他称之为麦金塔(Macintosh)的概念,他对鼠标持怀疑态度,但慷慨 地提供了建议和支持。 丽莎(Lisa)软件工程师将非模态编辑原则内在化,并找到了使其应用程序非模 态化的巧妙方法。我的工作是管理,并就界面设计做出基于证据的决策。 丽莎(Lisa)对图形用户界面的众多贡献之一是对话框,它是为非模态命令提供 参数的工具。罗德·珀金斯(Rod Perkins)设计了丽莎(Lisa)对话框。典型的 对话框在打开时阻止用户继续工作。这使得它具有模态性。但是对话框中的小部 件可以以任何顺序操作,使其在本地无模态化。 在苹果,就像在帕洛阿尔托研究中心一样,新的用户界面也遭到了质疑,其中一 些人更喜欢NLS风格的界面。但苹果想要的是产品。“宗教战争”确实爆发了,但 持续不了几天。经验教训:如果你需要打一场硬仗,选择一座小山丘。 今天 在20世纪70年代,移动(move)和复制是用户想要执行的编辑,剪切/复制-粘贴 是用户执行它们的一种新方式。现在这些术语的作用颠倒过来了。用户不会说他 们想“移动”(move)东西;他们说他们想要“剪切和粘贴”它们。甚至关于Star、 NLS和其他具有模态移动的系统的学术著作,也常常将它们的移动/复制操作称为 剪切/复制-粘贴。 在计算机时代之前,剪切和粘贴这个术语是出版业的行话。“复制和粘贴”这个术 语似乎起源于Gypsy。这两个术语今天都被广泛理解。我不知道谁创造了复制粘 贴工作(copy-paste job)或复制粘贴错误(copy-paste error)。但是当我犯 了复制粘贴错误,不像大多数人,我没有其他人可以责怪。 编译自:A Personal History of Modeless Text Editing and Cut/Copy-Paste (Link: http://worrydream.com/refs/Tesler%20-%20A%20Personal%20History %20of%20Modeless%20Text%20Editing%20and%20Cut-Copy-Paste.pdf) 相关阅读: 施乐帕洛阿尔托研究中心(PARC):“信息架构师” (Link: https://zhuanlan.zh ihu.com/p/46445499) 道格·恩格尔巴特是如何成就“所有演示之母”(the Mother of All Demos) (Li nk: https://zhuanlan.zhihu.com/p/52151286) 计算机先驱艾伦·凯访谈 (Link: https://zhuanlan.zhihu.com/p/50212661)