www-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

www/gnu/po rms-lisp.zh-cn.po


From: Wensheng XIE
Subject: www/gnu/po rms-lisp.zh-cn.po
Date: Mon, 30 Jul 2018 03:14:51 -0400 (EDT)

CVSROOT:        /web/www
Module name:    www
Changes by:     Wensheng XIE <wxie>     18/07/30 03:14:51

Added files:
        gnu/po         : rms-lisp.zh-cn.po 

Log message:
        zh-cn: new translation

CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/gnu/po/rms-lisp.zh-cn.po?cvsroot=www&rev=1.1

Patches:
Index: rms-lisp.zh-cn.po
===================================================================
RCS file: rms-lisp.zh-cn.po
diff -N rms-lisp.zh-cn.po
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ rms-lisp.zh-cn.po   30 Jul 2018 07:14:51 -0000      1.1
@@ -0,0 +1,1009 @@
+# Simplified Chinese translation of http://www.gnu.org/gnu/rms-lisp.html
+# Copyright (C) 2018 Free Software Foundation, Inc.
+# This file is distributed under the same license as the original article.
+# Wensheng Xie <address@hidden>, 2018.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: rms-lisp.html\n"
+"POT-Creation-Date: 2014-04-04 23:59+0000\n"
+"PO-Revision-Date: 2018-07-30 15:05+0800\n"
+"Last-Translator: Wensheng Xie <address@hidden>\n"
+"Language-Team: Chinese <address@hidden>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. type: Content of: <title>
+msgid ""
+"My Lisp Experiences and the Development of GNU Emacs - GNU Project - Free "
+"Software Foundation"
+msgstr "我的Lisp经验和GNU Emacs的开发 - GNU工程 - 
自由软件基金会"
+
+#. type: Content of: <h2>
+msgid "My Lisp Experiences and the Development of GNU Emacs"
+msgstr "我的Lisp经验和GNU Emacs的开发"
+
+#. type: Content of: <blockquote><p>
+msgid ""
+"(Transcript of Richard Stallman's Speech, 28 Oct 2002, at the International "
+"Lisp Conference)."
+msgstr "(Richard Stallman在国际
Lisp大会上的谈话记录,2002年10月28日)"
+
+#. type: Content of: <p>
+msgid ""
+"Since none of my usual speeches have anything to do with Lisp, none of them "
+"were appropriate for today. So I'm going to have to wing it.  Since I've "
+"done enough things in my career connected with Lisp I should be able to say "
+"something interesting."
+msgstr ""
+"由于我通常的演讲都和Lisp无å…
³ï¼Œæˆ‘今天讲它们不合适。所以我将不得不即兴发挥。我"
+"的职业生涯做了太多Lisp相关的工作,因
此我还是可以讲一些有趣的事情的。"
+
+#. type: Content of: <p>
+msgid ""
+"My first experience with Lisp was when I read the Lisp 1.5 manual in high "
+"school. That's when I had my mind blown by the idea that there could be a "
+"computer language like that. The first time I had a chance to do anything "
+"with Lisp was when I was a freshman at Harvard and I wrote a Lisp "
+"interpreter for the <abbr title=\"Programmed Data Processor\">PDP</abbr>-11. "
+"It was a very small machine &mdash; it had something like 8k of memory "
+"&mdash; and I managed to write the interpreter in a thousand instructions. "
+"This gave me some room for a little bit of data. That was before I got to "
+"see what real software was like, that did real system jobs."
+msgstr ""
+"我最早关于Lisp的经历是在高中时读了Lisp 1.5的手册。å…
¶ä¸­çš„思想让我脑洞大开:怎"
+"么还有这样的计算机语言!我第一次有机会做Lisp相å…
³çš„工作是在当哈佛新生的时候,"
+"我为<abbr title=\"Programmed Data 
Processor\">PDP</abbr>-11处理器编写了一个"
+"Lisp解释器。那是一个非常小的机器&mdash;大概只有8k的内
存&mdash;我设法用1000条"
+"以内的指令编写了那个解释器。这æ 
·æˆ‘还有一点数据空间。这是在我看到真正做系统工"
+"作的软件之前。"
+
+#. type: Content of: <p>
+msgid ""
+"I began doing work on a real Lisp implementation with JonL White once I "
+"started working at <abbr title=\"Massachusetts Institute of Technology"
+"\">MIT</abbr>. I got hired at the Artificial Intelligence Lab not by JonL, "
+"but by Russ Noftsker, which was most ironic considering what was to come "
+"&mdash; he must have really regretted that day."
+msgstr ""
+"当我在<abbr title=\"Massachusetts Institute of 
Technology,麻省理工学院"
+"\">MIT</abbr>开始工作时,我和JonL 
White一起真正开始实现Lisp语言。我不是被"
+"JonL,而是被Russ 
Noftsker招到人工智能实验室的,这一点最讽刺,想想接下来发生的"
+"事&mdash;他一定真的后悔有那一天了。"
+
+#. type: Content of: <p>
+msgid ""
+"During the 1970s, before my life became politicized by horrible events, I "
+"was just going along making one extension after another for various "
+"programs, and most of them did not have anything to do with Lisp. But, along "
+"the way, I wrote a text editor, Emacs. The interesting idea about Emacs was "
+"that it had a programming language, and the user's editing commands would be "
+"written in that interpreted programming language, so that you could load new "
+"commands into your editor while you were editing. You could edit the "
+"programs you were using and then go on editing with them. So, we had a "
+"system that was useful for things other than programming, and yet you could "
+"program it while you were using it. I don't know if it was the first one of "
+"those, but it certainly was the first editor like that."
+msgstr ""
+"在1970年代,我的生活还没有被惊人的事件政治化之前,我只是不断地一个接一个地为"
+"各种程序添加扩展,其中多数和Lisp无关。不过,å…
¶é—´ï¼Œæˆ‘写了一个文本编辑器,叫"
+"Emacs。Emacs的有趣之处在于它有一个编程语言,用户的编辑命令可以用这个解释性语"
+"言编写,这样你就可以在编辑时加载新的编辑命令。你
可以修改你正在用的编辑程序并"
+"且继续编辑。这样,我们就有了一个除了编程还可做å…
¶ä»–有用之事的系统,而且你在使"
+"用时还可以对它进行编程。我不知道Emacs是不是第一个这æ 
·çš„工具,但是作为编辑器它"
+"确实是第一个。"
+
+#. type: Content of: <p>
+msgid ""
+"This spirit of building up gigantic, complicated programs to use in your own "
+"editing, and then exchanging them with other people, fueled the spirit of "
+"free-wheeling cooperation that we had at the AI Lab then. The idea was that "
+"you could give a copy of any program you had to someone who wanted a copy of "
+"it. We shared programs to whomever wanted to use them, they were human "
+"knowledge. So even though there was no organized political thought relating "
+"the way we shared software to the design of Emacs, I'm convinced that there "
+"was a connection between them, an unconscious connection perhaps. I think "
+"that it's the nature of the way we lived at the AI Lab that led to Emacs and "
+"made it what it was."
+msgstr ""
+"这种构造庞大、复杂的程序作为自己的编辑器,然后再和å…
¶ä»–人交换的精神正是我们当"
+"时在人工智能实验室拥有的、驱动自由合作精神的动力。它的思想就是ä½
 å¯ä»¥æŠŠä½ æ‹¥æœ‰"
+"的程序的拷贝分发给想要的人。我们和任何想要的人分享,它们是人类的知识。所以尽"
+"管我们分享软件的方式和设计Emacs之间并不存在有组织的政治å
…³è”,我仍然确信它们有"
+"联系,也许是不自觉的联系。我认为正是我们在人工智能实验室生活方式的属性导致了"
+"Emacs的诞生并使之发展。"
+
+#. type: Content of: <p>
+msgid ""
+"The original Emacs did not have Lisp in it. The lower level language, the "
+"non-interpreted language &mdash; was <abbr>PDP</abbr>-10 Assembler. The "
+"interpreter we wrote in that actually wasn't written for Emacs, it was "
+"written for <acronym title=\"Text Editor and COrrector\">TECO</acronym>. It "
+"was our text editor, and was an extremely ugly programming language, as ugly "
+"as could possibly be. The reason was that it wasn't designed to be a "
+"programming language, it was designed to be an editor and command language. "
+"There were commands like &lsquo;5l&rsquo;, meaning &lsquo;move five "
+"lines&rsquo;, or &lsquo;i&rsquo; and then a string and then an ESC to insert "
+"that string. You would type a string that was a series of commands, which "
+"was called a command string. You would end it with ESC ESC, and it would get "
+"executed."
+msgstr ""
+"最初的Emacs不带Lisp。å…
¶åº•å±‚语言、一个非解释性语言&mdash;是<abbr>PDP</abbr>-10"
+"汇编语言。我们编写的解释器实际
上不是为Emacs写的,它是为<acronym title=\"Text "
+"Editor and 
COrrector\">TECO</acronym>编写的。TECO是我们的文本编辑器,也是一个"
+"极其丑陋的编程语言,能有多丑陋就有多丑陋。其原因
是它本来就不是作为编程语言设"
+"计的,它是作为编辑器和命令语言设计的。比如,命令&lsquo;5l&rsquo;意思是&lsquo;"
+"移动5行&rsquo;,或者用&lsquo;i&rsquo;加上一个字符串,再加
上ESC按键来插入该字"
+"符串。你可以输å…
¥ä»£è¡¨ä¸€ç³»åˆ—命令的字符串,这叫命令字符串。你可以用ESC 
ESC做结"
+"尾,这样该串命令就执行了。"
+
+#. type: Content of: <p>
+msgid ""
+"Well, people wanted to extend this language with programming facilities, so "
+"they added some. For instance, one of the first was a looping construct, "
+"which was &lt; &gt;. You would put those around things and it would loop. "
+"There were other cryptic commands that could be used to conditionally exit "
+"the loop.  To make Emacs, we <a href=\"#foot-1\">(1)</a> added facilities to "
+"have subroutines with names. Before that, it was sort of like Basic, and the "
+"subroutines could only have single letters as their names. That was hard to "
+"program big programs with, so we added code so they could have longer names. "
+"Actually, there were some rather sophisticated facilities; I think that Lisp "
+"got its unwind-protect facility from <acronym>TECO</acronym>."
+msgstr ""
+"不过,人们想要扩展该语言使之带上编程能力,所以人们就添åŠ
 äº†ä¸€äº›åŠŸèƒ½ã€‚例如,最"
+"早添加的就有循环结构,就是&lt; &gt;。你
把东西放在这两个符号之间,它们就循环"
+"了。还有一些晦涩的命令用来定义退出循环的条件。为了构é€
 Emacs,我们<a href="
+"\"#foot-1\">(1)</a>添加
了可以创建带名称子函数的功能。在此之前,有点像Basic语"
+"言,子函数只能有一个字母的名称。这对编写大型程序来说有点难,所以我们就添åŠ
 äº†"
+"长文件名功能。实际
上,还有一些相当复杂的功能;我认为Lisp的unwind-protect功能"
+"就来自<acronym>TECO</acronym>。"
+
+#. type: Content of: <p>
+msgid ""
+"We started putting in rather sophisticated facilities, all with the ugliest "
+"syntax you could ever think of, and it worked &mdash; people were able to "
+"write large programs in it anyway. The obvious lesson was that a language "
+"like <acronym>TECO</acronym>, which wasn't designed to be a programming "
+"language, was the wrong way to go. The language that you build your "
+"extensions on shouldn't be thought of as a programming language in "
+"afterthought; it should be designed as a programming language. In fact, we "
+"discovered that the best programming language for that purpose was Lisp."
+msgstr ""
+"我们开始添加
一些相当复杂的功能,都是用我们所知的那个最丑陋的语法完成的,而它"
+"是可行的&mdash;人们终究能够使用它来完成大型程序。这里,明显的教训就是使用诸如"
+"<acronym>TECO</acronym>这æ 
·ä¸æ˜¯ä¸ºç¼–程设计的语言是一个错误。构建扩展的语言不能"
+"是事后再想的编程语言;它应该按ç…
§ç¼–程语言来设计。事实上,我们发现Lisp是做这件"
+"事的最佳语言。"
+
+#. type: Content of: <p>
+msgid ""
+"It was Bernie Greenberg, who discovered that it was <a href=\"#foot-2\">(2)</"
+"a>.  He wrote a version of Emacs in Multics MacLisp, and he wrote his "
+"commands in MacLisp in a straightforward fashion. The editor itself was "
+"written entirely in Lisp. Multics Emacs proved to be a great success &mdash; "
+"programming new editing commands was so convenient that even the secretaries "
+"in his office started learning how to use it. They used a manual someone had "
+"written which showed how to extend Emacs, but didn't say it was a "
+"programming. So the secretaries, who believed they couldn't do programming, "
+"weren't scared off. They read the manual, discovered they could do useful "
+"things and they learned to program."
+msgstr ""
+"Bernie Greenberg是此事的发现者<a 
href=\"#foot-2\">(2)</a>。他用Multics "
+"MacLisp写了一个Emacs,而且他使用MacLisp编写命令的方式直截了当。这个编辑器本身"
+"完全是用Lisp编写的。Multics 
Emacs是一个巨大的成功&mdash;编写新的编辑命令是如"
+"此的方便,以至于他办公室里的秘书们都开始学习
怎么用了。他们使用的是一个介绍如"
+"何扩展Emacs的手册,手册里没说这就是编程。因
此,秘书们并不认为他们在编程,也就"
+"没被吓跑。他们阅
读手册,发现自己也可以做不少有用的事,他们学会了编程。"
+
+#. type: Content of: <p>
+msgid ""
+"So Bernie saw that an application &mdash; a program that does something "
+"useful for you &mdash; which has Lisp inside it and which you could extend "
+"by rewriting the Lisp programs, is actually a very good way for people to "
+"learn programming. It gives them a chance to write small programs that are "
+"useful for them, which in most arenas you can't possibly do. They can get "
+"encouragement for their own practical use &mdash; at the stage where it's "
+"the hardest &mdash; where they don't believe they can program, until they "
+"get to the point where they are programmers."
+msgstr ""
+"这样,Bernie看到一个应用程序&mdash;为你
完成任务的程序&mdash;如果内置了Lisp,"
+"并且人们可以编写Lisp程序来扩展该应用程序,那么它实际
上就是人们学习编程的一个"
+"好方法。这给了人们编写实用小程序的机会,而这在多数å…
¶ä»–场合是不可能的。人们被"
+"自己的实用程序鼓励着&mdash;就在最困难的阶段&mdash;就在他们不相信自己可以编程"
+"的时候,直到他们最后成为程序员。"
+
+#. type: Content of: <p>
+msgid ""
+"At that point, people began to wonder how they could get something like this "
+"on a platform where they didn't have full service Lisp implementation. "
+"Multics MacLisp had a compiler as well as an interpreter &mdash; it was a "
+"full-fledged Lisp system &mdash; but people wanted to implement something "
+"like that on other systems where they had not already written a Lisp "
+"compiler. Well, if you didn't have the Lisp compiler you couldn't write the "
+"whole editor in Lisp &mdash; it would be too slow, especially redisplay, if "
+"it had to run interpreted Lisp.  So we developed a hybrid technique. The "
+"idea was to write a Lisp interpreter and the lower level parts of the editor "
+"together, so that parts of the editor were built-in Lisp facilities. Those "
+"would be whatever parts we felt we had to optimize. This was a technique "
+"that we had already consciously practiced in the original Emacs, because "
+"there were certain fairly high level features which we re-implemented in "
+"machine language, making them into <acronym>TECO</acronym> primitives. For "
+"instance, there was a <acronym>TECO</acronym> primitive to fill a paragraph "
+"(actually, to do most of the work of filling a paragraph, because some of "
+"the less time-consuming parts of the job would be done at the higher level "
+"by a <acronym>TECO</acronym> program). You could do the whole job by writing "
+"a <acronym>TECO</acronym> program, but that was too slow, so we optimized it "
+"by putting part of it in machine language. We used the same idea here (in "
+"the hybrid technique), that most of the editor would be written in Lisp, but "
+"certain parts of it that had to run particularly fast would be written at a "
+"lower level."
+msgstr ""
+"此时,人们开始思考他们要怎样在一个并没有å…
¨éƒ¨Lisp支持的平台上做到这一切。"
+"Multics 
MacLisp既有编译器,也有解释器&mdash;它是一个完整的Lisp系统&mdash;但是"
+"人们想要的是在å…
¶ä»–没有Lisp编译器的系统上实现类似的东西。不过,如果你
没有Lisp"
+"编译器,你无
法用Lisp编写整个编辑器&mdash;如果只能运行解释器的话,它太æ
…¢äº†ï¼Œå°¤"
+"其是显示刷新。因此我们开发了一项混合技术。å…
¶æ€æƒ³æ˜¯å†™ä¸€ä¸ªLisp解释器和编辑器的"
+"底层部分,把他们结合在一起,这样编辑器就内
置了Lisp功能。这些就是我们需要优化"
+"的部分。这项技术是我们已经在原始的Emacs上有意识地实践了的技术,å›
 ä¸ºæˆ‘们用机器"
+"语言重新编写了某些相当上层的功能,并且把它们作为<acronym>TECO</acronym>的基本"
+"命令。比如,<acronym>TECO</acronym>有一个填充
段落的基本命令(实际上,是完成填"
+"充段落的大多数工作,因为å…
¶ä¸­ä¸€äº›ä¸è€—时的工作可以在上层由一个<acronym>TECO</"
+"acronym>程序来完成)。你
可以编写一个<acronym>TECO</acronym>程序来完成整个任"
+"务,但是它太慢了,所以我们对å…
¶éƒ¨åˆ†ä½¿ç”¨äº†æœºå™¨è¯­è¨€åšå‡ºä¼˜åŒ–。在此(指混合技"
+"术),编辑器的绝大部分是用Lisp编写的,但是那些需要非常快速运行的部分是用底层"
+"语言写的。"
+
+#. type: Content of: <p>
+msgid ""
+"Therefore, when I wrote my second implementation of Emacs, I followed the "
+"same kind of design. The low level language was not machine language "
+"anymore, it was C. C was a good, efficient language for portable programs to "
+"run in a Unix-like operating system. There was a Lisp interpreter, but I "
+"implemented facilities for special purpose editing jobs directly in C "
+"&mdash; manipulating editor buffers, inserting leading text, reading and "
+"writing files, redisplaying the buffer on the screen, managing editor "
+"windows."
+msgstr ""
+"因此,当我编写第二版Emacs时,我采用了同æ 
·çš„设计。底层的语言不再是机器语言,而"
+"是C。就编写运行在类Unix系统上的可移植程序来说,C是一个优秀的、高效的语言。虽"
+"然有一个Lisp解释器,但是我直接用C实现了一些特定的编辑功能&mdash;管理编辑器的"
+"缓存、插å…
¥èµ·å§‹æ–‡æœ¬ã€è¯»å†™æ–‡ä»¶ã€åˆ·æ–°å±å¹•æ˜¾ç¤ºä»¥åŠç®¡ç†ç¼–辑窗口。"
+
+#. type: Content of: <p>
+msgid ""
+"Now, this was not the first Emacs that was written in C and ran on Unix. The "
+"first was written by James Gosling, and was referred to as GosMacs. A "
+"strange thing happened with him. In the beginning, he seemed to be "
+"influenced by the same spirit of sharing and cooperation of the original "
+"Emacs. I first released the original Emacs to people at <abbr>MIT</abbr>. "
+"Someone wanted to port it to run on Twenex &mdash; it originally only ran on "
+"the Incompatible Timesharing System we used at <abbr>MIT</abbr>. They ported "
+"it to Twenex, which meant that there were a few hundred installations around "
+"the world that could potentially use it. We started distributing it to them, "
+"with the rule that &ldquo;you had to send back all of your "
+"improvements&rdquo; so we could all benefit. No one ever tried to enforce "
+"that, but as far as I know people did cooperate."
+msgstr ""
+"当时,它不再是第一个用C编写并运行在Unix上的Emacs了。第一个是由James
 Gosling完"
+"成的,就是GosMacs。他有些奇怪。一开始,他看来还是受到了原始Emacs的合作和分享"
+"精神的影响。我首å…
ˆåœ¨<abbr>MIT</abbr>向人们发布了Emacs。有人想要把它移植到"
+"Twenex系统&mdash;它最初只运行在我们在<abbr>MIT</abbr>使用的不å
…¼å®¹åˆ†æ—¶ç³»ç»Ÿä¸Šã€‚"
+"人们把它移植到了Twenex上,这意味着世界上可能有数百个设备可以安è£
…该Emacs。我们"
+"开始发布该版本,发行遵循的是&ldquo;你必
须发回所有的改进&rdquo;这样大家都受"
+"益。没有人会刻意强调这个规则,但是就我所知人们都是合作的。"
+
+#. type: Content of: <p>
+msgid ""
+"Gosling did, at first, seem to participate in this spirit. He wrote in a "
+"manual that he called the program Emacs hoping that others in the community "
+"would improve it until it was worthy of that name. That's the right approach "
+"to take towards a community &mdash; to ask them to join in and make the "
+"program better. But after that he seemed to change the spirit, and sold it "
+"to a company."
+msgstr ""
+"Gosling一开始,的确看起来是以这æ 
·çš„精神参与的。他在一个使用手册里称此程序为"
+"Emacs,希望社区能够改善之,使之é…
å¾—上这个名字。这是参与社区的正确方式&mdash;"
+"请大家参与并使程序更好。但是在此之后,他似乎改变了态度,并把程序卖给了一个å
…¬"
+"司。"
+
+#. type: Content of: <p>
+msgid ""
+"At that time I was working on the GNU system (a free software Unix-like "
+"operating system that many people erroneously call &ldquo;Linux&rdquo;).  "
+"There was no free software Emacs editor that ran on Unix. I did, however, "
+"have a friend who had participated in developing Gosling's Emacs. Gosling "
+"had given him, by email, permission to distribute his own version. He "
+"proposed to me that I use that version. Then I discovered that Gosling's "
+"Emacs did not have a real Lisp. It had a programming language that was known "
+"as &lsquo;mocklisp&rsquo;, which looks syntactically like Lisp, but didn't "
+"have the data structures of Lisp.  So programs were not data, and vital "
+"elements of Lisp were missing.  Its data structures were strings, numbers "
+"and a few other specialized things."
+msgstr ""
+"那时,我正在为GNU系统而忙碌(一个类似Unix的自由软件操作系统,许多人错误地称之"
+"为&ldquo;Linux&rdquo;)。那时并没有跑在Unix上的自由软件版的Emacs编辑器。不"
+"过,我有一个参与了Gosling的Emacs开发的朋友。Gosling通过邮件给予他发布自己版本"
+"的许可。他建议我使用他的版本。然后,我发现Gosling的Emacs带的不是真的Lisp。它"
+"带的编程语言是&lsquo;mocklisp&rsquo;,å…
¶è¯­æ³•çœ‹èµ·æ¥åƒæ˜¯Lisp,但是没有Lisp的数"
+"据结构。所以其程序不是数据,而且也缺失Lisp的重要元素
。其数据结构是字符串、数"
+"字和其他一些专门结构。"
+
+#. type: Content of: <p>
+msgid ""
+"I concluded I couldn't use it and had to replace it all, the first step of "
+"which was to write an actual Lisp interpreter. I gradually adapted every "
+"part of the editor based on real Lisp data structures, rather than ad hoc "
+"data structures, making the data structures of the internals of the editor "
+"exposable and manipulable by the user's Lisp programs."
+msgstr ""
+"我得出我不能使用该程序并且要完å…
¨æ›¿æ¢è¯¥ç¨‹åºçš„结论,第一步就是编写一个真正的"
+"Lisp解释器。我逐步用真正的Lisp数据结构替换了该编辑器的每个部分,而不是使用å
…¶"
+"专门的数据结构,并使编辑器的内
部数据结构对用户的Lisp程序开放,使用户程序能够"
+"处理编辑器内部数据。"
+
+#. type: Content of: <p>
+msgid ""
+"The one exception was redisplay. For a long time, redisplay was sort of an "
+"alternate world. The editor would enter the world of redisplay and things "
+"would go on with very special data structures that were not safe for garbage "
+"collection, not safe for interruption, and you couldn't run any Lisp "
+"programs during that. We've changed that since &mdash; it's now possible to "
+"run Lisp code during redisplay. It's quite a convenient thing."
+msgstr ""
+"显示刷新是个例外。很长时间以来,显示刷新像是一个另类世界。编辑器一旦进å
…¥æ˜¾ç¤º"
+"刷新的世界,事情就变成对垃圾数据收集不安å…
¨çš„非常特殊的数据结构,它们对中断处"
+"理也不安全,而且你在此过程中无
法运行任何Lisp程序。我们已经修改了这部分&mdash;"
+"现在你在显示刷新时也可以运行Lisp代ç 
ã€‚这是一件很便利的事。"
+
+#. type: Content of: <p>
+msgid ""
+"This second Emacs program was &lsquo;free software&rsquo; in the modern "
+"sense of the term &mdash; it was part of an explicit political campaign to "
+"make software free. The essence of this campaign was that everybody should "
+"be free to do the things we did in the old days at <abbr>MIT</abbr>, working "
+"together on software and working with whomever wanted to work with us.  That "
+"is the basis for the free software movement &mdash; the experience I had, "
+"the life that I've lived at the <abbr>MIT</abbr> AI lab &mdash; to be "
+"working on human knowledge, and not be standing in the way of anybody's "
+"further using and further disseminating human knowledge."
+msgstr ""
+"这个第二版的Emacs是&lsquo;自由软件&rsquo;以该词汇的当今意义来说&mdash;它是力"
+"争软件自由的政治运动的一部分。该运动的精髓就是每个人都应该有自由做我们在"
+"<abbr>MIT</abbr>的那段岁月做的事,一起开发软件,只要愿意就可以一起工作。这就"
+"是自由软件的基础&mdash;也是我的经历,是我在<abbr>MIT</abbr>人工智能实验室的生"
+"活&mdash;为人类的知识而工作,而不是阻碍其他人使用和传
播人类的知识。"
+
+#. type: Content of: <p>
+msgid ""
+"At the time, you could make a computer that was about the same price range "
+"as other computers that weren't meant for Lisp, except that it would run "
+"Lisp much faster than they would, and with full type checking in every "
+"operation as well. Ordinary computers typically forced you to choose between "
+"execution speed and good typechecking.  So yes, you could have a Lisp "
+"compiler and run your programs fast, but when they tried to take <tt>car</"
+"tt> of a number, it got nonsensical results and eventually crashed at some "
+"point."
+msgstr ""
+"那时,你可以用和造非Lisp专用机差不多的价钱造
一台电脑,它运行Lisp的速度要快得"
+"多,而且对每个指令都做类型检查。普通电脑一般是让你
在运行速度和类型检查之间选"
+"一个。所以,是的,你可能使用Lisp编译器让你
的程序运行很快,但是如果你对数字做"
+"<tt>car</tt><sup><a href=\"#TransNote1\">1</a></sup>时,结果是无
效的,最终导"
+"致程序崩溃。"
+
+#. type: Content of: <p>
+msgid ""
+"The Lisp machine was able to execute instructions about as fast as those "
+"other machines, but each instruction &mdash; a car instruction would do data "
+"typechecking &mdash; so when you tried to get the car of a number in a "
+"compiled program, it would give you an immediate error. We built the machine "
+"and had a Lisp operating system for it. It was written almost entirely in "
+"Lisp, the only exceptions being parts written in the microcode. People "
+"became interested in manufacturing them, which meant they should start a "
+"company."
+msgstr ""
+"该Lisp电脑运行指令的速度几乎和其他电脑一æ 
·å¿«ï¼Œä½†æ˜¯å®ƒå¯¹æ¯ä¸ªæŒ‡ä»¤&mdash;car指令"
+"都会做数据类型检查&mdash;所以当你
在编译过的程序里试图用car指令处理数字时,系"
+"统会立即报错。我们制造
了这种电脑并且有一个专门的Lisp操作系统。该系统几乎完全"
+"是用Lisp编写的,只有一部分是用microcode编写的。人们对大规模é€
 è¿™ç§æœºå™¨å¾ˆæ„Ÿå…´"
+"趣,这意味着他们应该开个公司。"
+
+#. type: Content of: <p>
+msgid ""
+"There were two different ideas about what this company should be like.  "
+"Greenblatt wanted to start what he called a &ldquo;hacker&rdquo; company. "
+"This meant it would be a company run by hackers and would operate in a way "
+"conducive to hackers. Another goal was to maintain the AI Lab culture <a "
+"href=\"#foot-3\">(3)</a>.  Unfortunately, Greenblatt didn't have any "
+"business experience, so other people in the Lisp machine group said they "
+"doubted whether he could succeed. They thought that his plan to avoid "
+"outside investment wouldn't work."
+msgstr ""
+"对开什么样的å…
¬å¸ï¼Œå¤§å®¶æœ‰ä¸¤ç§ä¸åŒçš„想法。Greenblatt想开一个他称之为&ldquo;黑客"
+"&rdquo;的公司。这意味着该å…
¬å¸ä¼šç”±é»‘客运作并且以有利于黑客的方式运作。另一个目"
+"的是要保持人工智能实验室的文化<a 
href=\"#foot-3\">(3)</a>。不幸的是,"
+"Greenblatt没有任何商业经验,所以Lisp电脑团队的å…
¶ä»–人对Greenblatt会不会成功表"
+"示怀疑。他们认为他拒绝外部资金的做法行不通。"
+
+#. type: Content of: <p>
+msgid ""
+"Why did he want to avoid outside investment? Because when a company has "
+"outside investors, they take control and they don't let you have any "
+"scruples. And eventually, if you have any scruples, they also replace you as "
+"the manager."
+msgstr ""
+"他为什么要避免外部投资呢?因为如果一个公司引å…
¥äº†å¤–部投资者,他们就会掌控公司"
+"并且不会让你有任何道德上的犹豫。最终,如果你
稍有犹豫,他们也会踢开你。"
+
+#. type: Content of: <p>
+msgid ""
+"So Greenblatt had the idea that he would find a customer who would pay in "
+"advance to buy the parts. They would build machines and deliver them; with "
+"profits from those parts, they would then be able to buy parts for a few "
+"more machines, sell those and then buy parts for a larger number of "
+"machines, and so on. The other people in the group thought that this "
+"couldn't possibly work."
+msgstr ""
+"所以,Greenblatt认为他可以找到预先付款的客户。他们再造
电脑发送给该客户;有了"
+"这些利润之后,他们就可以再造
更多的电脑,然后再销售,然后再造更多的电脑,如此"
+"进行下去。组内的其他人觉得这样不行。"
+
+#. type: Content of: <p>
+msgid ""
+"Greenblatt then recruited Russell Noftsker, the man who had hired me, who "
+"had subsequently left the AI Lab and created a successful company.  Russell "
+"was believed to have an aptitude for business. He demonstrated this aptitude "
+"for business by saying to the other people in the group, &ldquo;Let's ditch "
+"Greenblatt, forget his ideas, and we'll make another company.&rdquo; "
+"Stabbing in the back, clearly a real businessman. Those people decided they "
+"would form a company called Symbolics. They would get outside investment, "
+"not have scruples, and do everything possible to win."
+msgstr ""
+"然后,Greenblatt就雇佣了Russell 
Noftsker,就是招我进来的人,他后来离开了人工"
+"智能实验室并开创了一个成功的å…
¬å¸ã€‚Russell被认为很有商业头脑。他向组内的其他人"
+"展示了他的商业才智,他说:&ldquo;我们抛开Greenblatt,不要管他的想法,我们去开"
+"另一间公司。&rdquo;背后捅
刀子,明显是真正的生意人。这些人决定开一个叫"
+"Symbolics的å…
¬å¸ã€‚他们吸纳外部投资、不会有任何良心不安、竭尽所能获取成功。"
+
+#. type: Content of: <p>
+msgid ""
+"But Greenblatt didn't give up. He and the few people loyal to him decided to "
+"start Lisp Machines Inc. anyway and go ahead with their plans. And what do "
+"you know, they succeeded! They got the first customer and were paid in "
+"advance. They built machines and sold them, and built more machines and more "
+"machines. They actually succeeded even though they didn't have the help of "
+"most of the people in the group. Symbolics also got off to a successful "
+"start, so you had two competing Lisp machine companies. When Symbolics saw "
+"that LMI was not going to fall flat on its face, they started looking for "
+"ways to destroy it."
+msgstr ""
+"但是Greenblatt并没有放弃。他和少数忠
诚于他的人还是决定开办了Lisp Machines公"
+"司,并按自己的计划前进。你
猜怎么着,他们成功了!他们找到了一个预先付款的客"
+"户。他们制造了电脑并卖了出去,并制造
了越来越多的电脑。尽管没有组内多数人的支"
+"持,他们实际
上还是成功了。Symbolics也成功地启动了,所以你
有两家互相竞争的Lisp"
+"电脑å…
¬å¸ã€‚当Symbolics看到LMI不是走向失败时,他们开始寻机搞ç 
´åã€‚"
+
+#. type: Content of: <p>
+msgid ""
+"Thus, the abandonment of our lab was followed by &ldquo;war&rdquo; in our "
+"lab.  The abandonment happened when Symbolics hired away all the hackers, "
+"except me and the few who worked at LMI part-time. Then they invoked a rule "
+"and eliminated people who worked part-time for <abbr>MIT</abbr>, so they had "
+"to leave entirely, which left only me. The AI lab was now helpless.  And "
+"<abbr>MIT</abbr> had made a very foolish arrangement with these two "
+"companies.  It was a three-way contract where both companies licensed the "
+"use of Lisp machine system sources. These companies were required to let "
+"<abbr>MIT</abbr> use their changes. But it didn't say in the contract that "
+"<abbr>MIT</abbr> was entitled to put them into the <abbr>MIT</abbr> Lisp "
+"machine systems that both companies had licensed. Nobody had envisioned that "
+"the AI lab's hacker group would be wiped out, but it was."
+msgstr ""
+"因
此,实验室的被离弃接着是实验室的&ldquo;战争&rdquo;。离弃是å›
 ä¸ºSymbolics挖走"
+"了实验室的所有黑客,只剩下我和几个在LMIå…
¼èŒçš„人。然后,他们又援引条例把在"
+"<abbr>MIT</abbr>兼职的人赶走,因此他们å…
¨éƒ½èµ°äº†ï¼Œåªå‰©ä¸‹æˆ‘。人工智能实验室现在"
+"没什么希望了。而且<abbr>MIT</abbr>对这两个公司做了非常愚è 
¢çš„安排。这是一个三"
+"方合同,其中两家公司都被授权使用Lisp电脑系统的源代ç 
ã€‚这两家公司都需要让"
+"<abbr>MIT</abbr>使用他们的更改。但是合同没有说<abbr>MIT</abbr>有权将这些代ç
 "
+"放入由两家å…
¬å¸æŽˆæƒçš„<abbr>MIT</abbr>Lisp电脑系统。没有人预见到实验室的黑客小"
+"组会被彻底毁灭,但是它就是被毁灭了。"
+
+#. type: Content of: <p>
+msgid ""
+"So Symbolics came up with a plan <a href=\"#foot-4\">(4)</a>.  They said to "
+"the lab, &ldquo;We will continue making our changes to the system available "
+"for you to use, but you can't put it into the <abbr>MIT</abbr> Lisp machine "
+"system. Instead, we'll give you access to Symbolics' Lisp machine system, "
+"and you can run it, but that's all you can do.&rdquo;"
+msgstr ""
+"于是,Symbolics启动了一个计划<a 
href=\"#foot-4\">(4)</a>。他们对实验室说,"
+"&ldquo;我们会持续让你们使用我们的系统改进,但是你
们不能把这些改进装到"
+"<abbr>MIT</abbr>的Lisp电脑系统上。不过,我们会让你
们使用Symbolics的Lisp电脑系"
+"统,你们可以在这些系统上运行改进版,但是仅
此而已。&rdquo;"
+
+#. type: Content of: <p>
+msgid ""
+"This, in effect, meant that they demanded that we had to choose a side, and "
+"use either the <abbr>MIT</abbr> version of the system or the Symbolics "
+"version.  Whichever choice we made determined which system our improvements "
+"went to. If we worked on and improved the Symbolics version, we would be "
+"supporting Symbolics alone. If we used and improved the <abbr>MIT</abbr> "
+"version of the system, we would be doing work available to both companies, "
+"but Symbolics saw that we would be supporting LMI because we would be "
+"helping them continue to exist. So we were not allowed to be neutral anymore."
+msgstr ""
+"这实际
上是要求我们只能选择一边,要么使用<abbr>MIT</abbr>的系统版本,要么使用"
+"Symbolics的版本。我们选择哪一边,就决定了我们的系统改进会进å
…¥åˆ°å“ªä¸€è¾¹ã€‚如果我"
+"们为改进Symbolics的版本而工作,我们就只是在帮助Symbolics。如果我们使用和改进"
+"<abbr>MIT</abbr>的系统版本,两个å…
¬å¸éƒ½èƒ½å¤Ÿå¾—到我们的工作,但是Symbolics认为这"
+"是在支持LMI,因为这会帮助LMI生存下去。因此,我们不被å…
è®¸å†ä¿æŒä¸­ç«‹ã€‚"
+
+#. type: Content of: <p>
+msgid ""
+"Up until that point, I hadn't taken the side of either company, although it "
+"made me miserable to see what had happened to our community and the "
+"software.  But now, Symbolics had forced the issue.  So, in an effort to "
+"help keep Lisp Machines Inc. going <a href=\"#foot-5\">(5)</a> &mdash; I "
+"began duplicating all of the improvements Symbolics had made to the Lisp "
+"machine system.  I wrote the equivalent improvements again myself (i.e., the "
+"code was my own)."
+msgstr ""
+"直到此时,我都没有站在其中任何一个å…
¬å¸çš„一边,虽然我看到社区和软件发生的一切"
+"感到非常难受。但是现在,Symbolics强迫我做出选择。所以,为了使Lisp
 Machines公"
+"司能够继续<a 
href=\"#foot-5\">(5)</a>&mdash;我开始复制Symbolics对Lisp电脑系统"
+"所作的全部改进。我把这些改进用自己的想法同æ 
·å®žçŽ°å‡ºæ¥ï¼ˆå°±æ˜¯è¯´ï¼Œä»£ç æ˜¯æˆ‘自己写"
+"的)。"
+
+#. type: Content of: <p>
+msgid ""
+"After a while <a href=\"#foot-6\">(6)</a>, I came to the conclusion that it "
+"would be best if I didn't even look at their code. When they made a beta "
+"announcement that gave the release notes, I would see what the features were "
+"and then implement them. By the time they had a real release, I did too."
+msgstr ""
+"过了一阵,<a 
href=\"#foot-6\">(6)</a>,我得出结论,不看他们的代ç 
å¯èƒ½æ›´å¥½ã€‚当"
+"他们宣布beta版时,通过看发布声明,我知道了有什么功能,然后自己实现它们。当他"
+"们发行正式版时,我也实现了这些功能。"
+
+#. type: Content of: <p>
+msgid ""
+"In this way, for two years, I prevented them from wiping out Lisp Machines "
+"Incorporated, and the two companies went on. But, I didn't want to spend "
+"years and years punishing someone, just thwarting an evil deed. I figured "
+"they had been punished pretty thoroughly because they were stuck with "
+"competition that was not leaving or going to disappear <a href="
+"\"#foot-7\">(7)</a>. Meanwhile, it was time to start building a new "
+"community to replace the one that their actions and others had wiped out."
+msgstr ""
+"如此这样,有两年的时间,我阻止他们把Lisp Machineså…
¬å¸æ¶ˆç­ï¼›è¿™ä¸¤ä¸ªå…¬å¸åŒæ—¶å­˜"
+"在。但是,我不想这样年复一年地惩罚一个人,仅仅
只是阻挠一桩罪恶。我觉得他们已"
+"经受到了彻底的惩罚,因为他们陷入了无
法摆脱的竞争漩涡之中<a href="
+"\"#foot-7\">(7)</a>。与此同时,是时候再开始创建一个新的社区来代替那个被他们以"
+"及其他人毁灭的社区了。"
+
+#. type: Content of: <p>
+msgid ""
+"The Lisp community in the 70s was not limited to the <abbr>MIT</abbr> AI "
+"Lab, and the hackers were not all at <abbr>MIT</abbr>. The war that "
+"Symbolics started was what wiped out <abbr>MIT</abbr>, but there were other "
+"events going on then. There were people giving up on cooperation, and "
+"together this wiped out the community and there wasn't much left."
+msgstr ""
+"70年代的Lisp社区不限于<abbr>MIT</abbr>人工智能实验室,并不是所有的黑客都在"
+"<abbr>MIT</abbr>。Symbolics发起的战争毁灭了<abbr>MIT</abbr>社区,但是同时还有"
+"å…
¶ä»–事件在进行。有人放弃了合作,这些也毁灭着社区,社区所剩寥寥了。"
+
+#. type: Content of: <p>
+msgid ""
+"Once I stopped punishing Symbolics, I had to figure out what to do next. I "
+"had to make a free operating system, that was clear &mdash; the only way "
+"that people could work together and share was with a free operating system."
+msgstr ""
+"一旦我不再惩罚Symbolics,我就不得不考虑下一步做什么。我å¿
…须做一个自由的操作系"
+"统,这很明显&mdash;人们能够一起工作和分享的方法就是有一个自由的操作系统。"
+
+#. type: Content of: <p>
+msgid ""
+"At first, I thought of making a Lisp-based system, but I realized that "
+"wouldn't be a good idea technically. To have something like the Lisp machine "
+"system, you needed special purpose microcode. That's what made it possible "
+"to run programs as fast as other computers would run their programs and "
+"still get the benefit of typechecking. Without that, you would be reduced to "
+"something like the Lisp compilers for other machines. The programs would be "
+"faster, but unstable. Now that's okay if you're running one program on a "
+"timesharing system &mdash; if one program crashes, that's not a disaster, "
+"that's something your program occasionally does. But that didn't make it "
+"good for writing the operating system in, so I rejected the idea of making a "
+"system like the Lisp machine."
+msgstr ""
+"一开始,我想要做一个基于Lisp的系统,但是我认识到那在技术上并不一个好主意。要"
+"做像Lisp电脑那样的系统,你需要专用的微代码。这种微代ç 
ä½¿ä½ èƒ½å¤Ÿå’Œå…¶ä»–电脑一样"
+"快速地执行程序,同时还能获益于类型检查。没有微代ç 
ï¼Œä½ å°±åªç›¸å½“于其他机器上的"
+"Lisp编译器。程序可以更快,但是并不安全。如果你
在一个分时系统上运行一个这样的"
+"程序还凑合&mdash;一个程序崩溃并不是灾难,用户程序时不时地都可能会崩溃。但是这"
+"æ 
·ç¼–写操作系统就不行,所以我抛弃了做类似Lisp电脑系统的想法。"
+
+#. type: Content of: <p>
+msgid ""
+"I decided instead to make a Unix-like operating system that would have Lisp "
+"implementations to run as user programs. The kernel wouldn't be written in "
+"Lisp, but we'd have Lisp. So the development of that operating system, the "
+"GNU operating system, is what led me to write the GNU Emacs. In doing this, "
+"I aimed to make the absolute minimal possible Lisp implementation. The size "
+"of the programs was a tremendous concern."
+msgstr ""
+"我决定做一个类似Unix的操作系统,可能会带一个能够运行用户程序的Lisp环境。å†
…æ ¸"
+"不必
是用Lisp编写的,但是我们应当有Lisp。所以正是这个操作系统、GNU操作系统的开"
+"发指引我编写了GNU 
Emacs。在编写的过程中,我的目的是做一个尽可能最小的Lisp系"
+"统。该程序的大小是非常重要的考量。"
+
+#. type: Content of: <p>
+msgid ""
+"There were people in those days, in 1985, who had one-megabyte machines "
+"without virtual memory. They wanted to be able to use GNU Emacs. This meant "
+"I had to keep the program as small as possible."
+msgstr ""
+"在1985年,有些人电脑的内存是不带虚拟内存的1å…
†å­—节。他们也想要运行GNU Emacs。"
+"这意味着我必须使该程序尽可能地小。"
+
+#. type: Content of: <p>
+msgid ""
+"For instance, at the time the only looping construct was &lsquo;"
+"while&rsquo;, which was extremely simple. There was no way to break out of "
+"the &lsquo;while&rsquo; statement, you just had to do a catch and a throw, "
+"or test a variable that ran the loop. That shows how far I was pushing to "
+"keep things small. We didn't have &lsquo;caar&rsquo; and &lsquo;cadr&rsquo; "
+"and so on; &ldquo;squeeze out everything possible&rdquo; was the spirit of "
+"GNU Emacs, the spirit of Emacs Lisp, from the beginning."
+msgstr ""
+"举个例子,当时的循环结构只有&lsquo;while&rsquo;,它简单到极致。ä½
 æ— æ³•ç›´æŽ¥è·³å‡º"
+"&lsquo;while&rsquo;循环,你
只能进行一次异常捕获(catch)和一次异常抛出"
+"(throw),或者
判断控制循环的变量。这个例子说明我为了使程序变小,做出了什么æ
 ·"
+"的努力。我们也没有&lsquo;caar&rsquo;和&lsquo;cadr&rsquo;等等指令;&ldquo;尽可"
+"能减少不必要的东西&rdquo;是GNU Emacs的精髓,是Emacs 
Lisp的精髓,从一开始就是"
+"这样。"
+
+#. type: Content of: <p>
+msgid ""
+"Obviously, machines are bigger now, and we don't do it that way any more. We "
+"put in &lsquo;caar&rsquo; and &lsquo;cadr&rsquo; and so on, and we might put "
+"in another looping construct one of these days. We're willing to extend it "
+"some now, but we don't want to extend it to the level of common Lisp. I "
+"implemented Common Lisp once on the Lisp machine, and I'm not all that happy "
+"with it. One thing I don't like terribly much is keyword arguments <a href="
+"\"#foot-8\">(8)</a>.  They don't seem quite Lispy to me; I'll do it "
+"sometimes but I minimize the times when I do that."
+msgstr ""
+"当然,现在的电脑大了,我们也不再追求那æ 
·çš„极致。我们加入了&lsquo;caar&rsquo;"
+"和&lsquo;cadr&rsquo;等指令,而且我们最近也会添加
另外的循环结构。现在我们愿意"
+"扩展它,但是我们不想把它扩展成common Lisp那æ 
·ã€‚我曾在Lisp电脑上实现过Common "
+"Lisp,我对之并不是十分满意。其中我非常不喜欢的就是å…
³é”®å­—参数<a href="
+"\"#foot-8\">(8)</a>。在我看来,它们不算Lispy;虽然我有时也用å
…³é”®å­—,但是我把"
+"我用的次数控制到最小。"
+
+#. type: Content of: <p>
+msgid ""
+"That was not the end of the GNU projects involved with Lisp. Later on around "
+"1995, we were looking into starting a graphical desktop project. It was "
+"clear that for the programs on the desktop, we wanted a programming language "
+"to write a lot of it in to make it easily extensible, like the editor. The "
+"question was what it should be."
+msgstr ""
+"这并不是GNU工程涉及Lisp的结束。后来在1995年左右,我们计划启动一个图形化桌面项"
+"目。我们很清
楚该桌面程序的主要编程语言应该能够便利地扩展该桌面程序,就像我们"
+"的编辑器一样。问题在于这应该是一个什么语言。"
+
+#. type: Content of: <p>
+msgid ""
+"At the time, <acronym title=\"Tool Command Language\">TCL</acronym> was "
+"being pushed heavily for this purpose. I had a very low opinion of "
+"<acronym>TCL</acronym>, basically because it wasn't Lisp. It looks a tiny "
+"bit like Lisp, but semantically it isn't, and it's not as clean.  Then "
+"someone showed me an ad where Sun was trying to hire somebody to work on "
+"<acronym>TCL</acronym> to make it the &ldquo;de-facto standard extension "
+"language&rdquo; of the world. And I thought, &ldquo;We've got to stop that "
+"from happening.&rdquo; So we started to make Scheme the standard "
+"extensibility language for GNU. Not Common Lisp, because it was too large. "
+"The idea was that we would have a Scheme interpreter designed to be linked "
+"into applications in the same way <acronym>TCL</acronym> was linked into "
+"applications. We would then recommend that as the preferred extensibility "
+"package for all GNU programs."
+msgstr ""
+"此时,<acronym title=\"Tool Command 
Language\">TCL</acronym>作为候选语言的呼"
+"声很高。我非常看不上<acronym>TCL</acronym>,基本上因
为它不是Lisp语言。它稍稍"
+"有点像Lisp,但是å…
¶è¯­ä¹‰ä¸Šä¸æ˜¯ï¼Œè€Œä¸”也不简洁。然后,有人给我看了一个广告,å
…¶ä¸­"
+"说Sun公司正试图雇人把<acronym>TCL</acronym>变成å…
¨ä¸–ç•Œ&ldquo;扩展语言的实质标"
+"准&rdquo;。我在想,&ldquo;我们必
须阻止这件事&rdquo;,所以我们开始让Scheme成为"
+"GNU的标准扩展语言。不是Common Lisp,因为它太庞大了。å…
¶æ€æƒ³æ˜¯ï¼Œæˆ‘们把Scheme解"
+"释器连接到应用程序中,就像<acronym>TCL</acronym>那æ 
·ã€‚然后,我们就可以建议这"
+"是所有GNU程序首选的扩展包。"
+
+#. type: Content of: <p>
+msgid ""
+"There's an interesting benefit you can get from using such a powerful "
+"language as a version of Lisp as your primary extensibility language.  You "
+"can implement other languages by translating them into your primary "
+"language. If your primary language is <acronym>TCL</acronym>, you can't very "
+"easily implement Lisp by translating it into <acronym>TCL</acronym>. But if "
+"your primary language is Lisp, it's not that hard to implement other things "
+"by translating them. Our idea was that if each extensible application "
+"supported Scheme, you could write an implementation of <acronym>TCL</"
+"acronym> or Python or Perl in Scheme that translates that program into "
+"Scheme. Then you could load that into any application and customize it in "
+"your favorite language and it would work with other customizations as well."
+msgstr ""
+"使用这个强大的Lisp分支语言作为基本扩展语言会给你
带来一个有趣的好处。你将能够"
+"把其他语言翻译成基本扩展语言来实现其他语言。如果你
的基本语言是<acronym>TCL</"
+"acronym>,那么你
就不能够轻易地用翻译成<acronym>TCL</acronym>来实现Lisp。但是"
+"如果你
的基本语言是Lisp,那么翻译就不是难事。我们的想法是,如果每个扩展应用都"
+"支持Scheme,那么你
可以用Scheme实现<acronym>TCL</acronym>或Python或Perl,用来"
+"把应用翻译成Scheme。之后,你就可以把它加
载到每个应用,然后就可以用自己最喜爱"
+"的语言来定制应用了,其他定制也类似。"
+
+#. type: Content of: <p>
+msgid ""
+"As long as the extensibility languages are weak, the users have to use only "
+"the language you provided them. Which means that people who love any given "
+"language have to compete for the choice of the developers of applications "
+"&mdash; saying &ldquo;Please, application developer, put my language into "
+"your application, not his language.&rdquo; Then the users get no choices at "
+"all &mdash; whichever application they're using comes with one language and "
+"they're stuck with [that language]. But when you have a powerful language "
+"that can implement others by translating into it, then you give the user a "
+"choice of language and we don't have to have a language war anymore. That's "
+"what we're hoping &lsquo;Guile&rsquo;, our scheme interpreter, will do. We "
+"had a person working last summer finishing up a translator from Python to "
+"Scheme. I don't know if it's entirely finished yet, but for anyone "
+"interested in this project, please get in touch. So that's the plan we have "
+"for the future."
+msgstr ""
+"如果扩展语言很弱,用户就不得不使用你
提供的唯一语言。这就意味着,喜欢特定语言"
+"的人们将不得不和开发者
选择的语言竞争&mdash;他们会说&ldquo;应用开发者,请把我"
+"的语言添加到你的应用中,而不是添加别人的。&rdquo;这æ 
·ï¼Œç”¨æˆ·å°±æ ¹æœ¬æ²¡æœ‰é€‰æ‹©çš„ä½™"
+"地&mdash;他们只能接受应用带来的语言,并受制于[该语言]。但是如果ä½
 æœ‰ä¸€ä¸ªå¼ºå¤§çš„"
+"语言,它能够实现其他语言,那么你
就给了用户自由选择语言的权利,我们就不再有语"
+"言选择的战争了。这正是我们所希望的&lsquo;Guile&rsquo;,我们的scheme解释器,能"
+"够做到这一切。去年夏天,我们有人完成了从Python到Scheme的翻译器。我不太确定这"
+"个是否已经全部完成,不过如果有人对这个项目感å…
´è¶£ï¼Œè¯·è”系我们。这就是我们未来"
+"的计划。"
+
+#. type: Content of: <p>
+msgid ""
+"I haven't been speaking about free software, but let me briefly tell you a "
+"little bit about what that means. Free software does not refer to price; it "
+"doesn't mean that you get it for free. (You may have paid for a copy, or "
+"gotten a copy gratis.) It means that you have freedom as a user. The crucial "
+"thing is that you are free to run the program, free to study what it does, "
+"free to change it to suit your needs, free to redistribute the copies of "
+"others and free to publish improved, extended versions. This is what free "
+"software means. If you are using a non-free program, you have lost crucial "
+"freedom, so don't ever do that."
+msgstr ""
+"我一直没有提自由软件,不过现在让我简单说一下它的意义。自由软件指的不是价æ
 ¼ï¼›"
+"它的意思不是你可以免费得到的软件。(它可以是你
付费得到的软件,也可以是你免费"
+"获得的拷贝。)它的意思是作为用户,你有一些自由。å…
¶ä¸­çš„关键是你有自由运行该软"
+"件、你有自由研究其所作所为、你有自由按ç…
§è‡ªå·±çš„需求修改该软件、你有自由向其他"
+"人发布该软件以及发布修改后的软件。这就是自由软件的定义。如果ä½
 ä½¿ç”¨çš„是非自由"
+"软件,你就失去了这些å…
³é”®çš„自由,所以请不要使用非自由软件。"
+
+#. type: Content of: <p>
+msgid ""
+"The purpose of the GNU project is to make it easier for people to reject "
+"freedom-trampling, user-dominating, non-free software by providing free "
+"software to replace it. For those who don't have the moral courage to reject "
+"the non-free software, when that means some practical inconvenience, what we "
+"try to do is give a free alternative so that you can move to freedom with "
+"less of a mess and less of a sacrifice in practical terms. The less "
+"sacrifice the better. We want to make it easier for you to live in freedom, "
+"to cooperate."
+msgstr ""
+"GNU工程的目的就是提供代替非自由软件的自由软件,让人们能够更容易地拒绝非自由软"
+"件对自由的侵害、对用户的控制。对那些缺少道德勇气来拒绝非自由软件的人来说,如"
+"果你
需要的是实用性,那么我们将尽力提供一个自由的替代使你
能够在较少混乱、较少"
+"牺牲实用性的情况下,转移到自由软件。你
失去的实用性当然是越少越好。我们希望你"
+"能够更容易地获得自由、并且能够合作互助。"
+
+#. type: Content of: <p>
+msgid ""
+"This is a matter of the freedom to cooperate. We're used to thinking of "
+"freedom and cooperation with society as if they are opposites. But here "
+"they're on the same side. With free software you are free to cooperate with "
+"other people as well as free to help yourself. With non-free software, "
+"somebody is dominating you and keeping people divided. You're not allowed to "
+"share with them, you're not free to cooperate or help society, anymore than "
+"you're free to help yourself.  Divided and helpless is the state of users "
+"using non-free software."
+msgstr ""
+"合作互助关乎自由。人们习
惯于认为自由和社会合作是对立的。但是,此时我们在同一"
+"条战壕内。使用自由软件,你就有自由和å…
¶ä»–人合作,并且也有自由帮助你自己。使用"
+"非自由软件,你就被控制,人们被分化。你无权和å…
¶ä»–人分享,你没有自由去合作互助"
+"或帮助社会,正如你没有自由来帮助你
自己。使用非自由软件的用户就是这样孤立和无"
+"助。"
+
+#. type: Content of: <p>
+msgid ""
+"We've produced a tremendous range of free software. We've done what people "
+"said we could never do; we have two operating systems of free software. We "
+"have many applications and we obviously have a lot farther to go. So we need "
+"your help. I would like to ask you to volunteer for the GNU project; help us "
+"develop free software for more jobs. Take a look at <a href=\"/help/"
+"\">http://www.gnu.org/help</a> to find suggestions for how to help. If you "
+"want to order things, there's a link to that from the home page. If you want "
+"to read about philosophical issues, look in /philosophy. If you're looking "
+"for free software to use, look in /directory, which lists about 1900 "
+"packages now (which is a fraction of all the free software out there). "
+"Please write more and contribute to us. My book of essays, &ldquo;Free "
+"Software and Free Society&rdquo;, is on sale and can be purchased at <a href="
+"\"http://www.gnu.org/\";>www.gnu.org</a>. Happy hacking!"
+msgstr ""
+"我们已经开发了范围庞大的自由软件。我们完成了人们曾经说永远完不成的事;我们有"
+"两个自由软件操作系统。我们有很多应用,但我们显然还有更多的要做。所以,我们需"
+"要你们的帮助。我请求你们成为GNU工程的志愿者
;帮助我们开发能执行更多任务的自由"
+"软件。请参看<a 
href=\"/help/\">http://www.gnu.org/help</a>来了解怎么帮助我"
+"们。如果你
想订购一些东西,我们的主页上有一个链接。如果你
想了解我们的哲学,请"
+"阅读/philosophy。如果你
在找可用的自由软件,请到/directory,现在大约有1900个软"
+"件包
(这只是所有自由软件的一部分)。请编写更多的自由软件并贡献给我们。我的文"
+"集,&ldquo;自由软件和自由社会&rdquo;,正在发售,你
可以在<a href=\"http://www.";
+"gnu.org/\">www.gnu.org</a>购买。祝你们开发愉快!"
+
+#. type: Content of: <ol><li>
+msgid ""
+"Guy Steele designed the original symmetrical Emacs command set; then he and "
+"I began implementing Emacs (on top of TECO), but after one long joint "
+"development session, Steele began drifting away, so I finished Emacs.  "
+"Others particularly including Eugene C. Cicciarelli and Mike McMahon "
+"contributed substantially later on."
+msgstr ""
+"Guy Steele设计了Emacs最初的对称命令集合;然后我们开始构造
Emacs(在TECO的基础"
+"上),但是在一段长期的联合开发之后,Steele渐渐离开了,所以我独自完成了Emacs。"
+"其他人,特别是Eugene C. Cicciarelli和Mike 
McMahon后来也做出了显著的贡献。"
+
+#. type: Content of: <ol><li>
+msgid ""
+"Bernie Greenberg says that Dan Weinreb's implementation of Emacs for the "
+"Lisp Machine came before Greenberg's implementation for Multics.  I "
+"apologize for the mistake."
+msgstr ""
+"Bernie Greenberg说Dan 
Weinreb在Lisp电脑上的Emacs要早于Greenberg在Multics的版"
+"本。我在此对我的错误道歉。"
+
+#. type: Content of: <ol><li>
+msgid ""
+"Greenblatt's plan, as I understood it, was to hire lab people part time, so "
+"that they could continue working at the AI Lab.  Symbolics hired them full "
+"time instead, so they stopped working at MIT."
+msgstr ""
+"Greenblatt的计划,就我的理解,是请实验室的人员兼职,这æ 
·ä»–们还能够继续在人工"
+"智能实验室的本职工作。Symbolics采取的是å…
¨èŒé›‡ä½£ï¼Œæ‰€ä»¥å®žéªŒå®¤çš„人员就不能在MIT"
+"工作了。"
+
+#. type: Content of: <ol><li>
+msgid ""
+"The background of this plan, which I did not state explicitly in the talk, "
+"is that during an initial period the ex-AI-Lab hackers, whether at Symbolics "
+"or LMI, continued contributing their changes to the MIT Lisp Machine system "
+"&mdash; even though the contract did not require this.  Symbolics' plan was "
+"to rupture this cooperation unilaterally."
+msgstr ""
+"该计划的背景,我在演讲里没有明说,是在开始阶段,人工智能实验室的黑客们,不管"
+"是在Symbolics,还是在LMI,都继续把他们的改进贡献给MIT的Lisp电脑系统&mdash;尽"
+"管合同并没有要求这æ 
·åšã€‚Symbolics的计划却是单方面割裂合作。"
+
+#. type: Content of: <ol><li>
+msgid ""
+"It was not that I cared particularly about the fate of LMI, but rather I did "
+"not want to let Symbolics gain through its aggression against the AI Lab."
+msgstr ""
+"这并不是说我特别å…
³æ³¨LMI的命运,我只是不想让Symbolics通过攻击人工智能实验室获"
+"益。"
+
+#. type: Content of: <ol><li>
+msgid ""
+"This statement has been misconstrued as saying that I never, ever looked at "
+"Symbolics' code.  Actually it says I did look, at first.  The Symbolics "
+"source code was available at MIT, where I was entitled to read it, and at "
+"first that's how I found out about their changes."
+msgstr ""
+"这个陈述常被曲解为我从来没有看过Symbolics的代码。实际
上,它说的是我一开始看了"
+"Symbolics的代码。这些代ç 
å°±åœ¨MIT,我有权看的,而且最初我就是这样了解到他们做"
+"了改动。"
+
+#. type: Content of: <ol><li><p>
+msgid ""
+"But that meant I had to make a special effort to solve each problem "
+"differently, in order to avoid copying Symbolics code.  After a while, I "
+"concluded it was better not to even look.  That way I could write code in "
+"whatever way was best, without concern for what might be in Symbolics' code."
+msgstr ""
+"不过,这意味着我不得不花力气找到其他的解决方法,这æ 
·æ‰èƒ½é¿å…å¤åˆ¶Symbolics的代"
+"码。一段时间之后,我觉得不看这些代码更好。这æ 
·çš„话,我就可以按最好的方法来实"
+"现代码,而不用考虑是否用了Symbolics的代码。"
+
+#. type: Content of: <ol><li>
+msgid ""
+"Symbolics at one point protested to MIT that my work, by thwarting their "
+"plan, had cost Symbolics a million dollars."
+msgstr ""
+"Symbolics曾经向MIT抗议:我的工作阻挠
了他们的计划而使Symbolics损失一百万美元。"
+
+#. type: Content of: <ol><li>
+msgid ""
+"I don't mind if a very complex and heavyweight function takes keyword "
+"arguments.  What bothers me is making simple basic functions such as &ldquo;"
+"member&rdquo; use them."
+msgstr ""
+"我并不介意非常复杂和重量级的函数使用å…
³é”®å­—参数。我讨厌的是连诸如&ldquo;"
+"member&rdquo;这样的简单函数也要使用关键字参数。"
+
+#. TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.
+#. type: Content of: <div>
+msgid "*GNUN-SLOT: TRANSLATOR'S NOTES*"
+msgstr ""
+"<h3>译注</h3>\n"
+"<ol>\n"
+"<li id=\"TransNote1\">car:是Lisp语言的一个基本指令。</li>\n"
+"</ol>"
+
+#. type: Content of: <div><div><p>
+msgid ""
+"Please send general FSF &amp; GNU inquiries to <a 
href=\"mailto:address@hidden";
+"\">&lt;address@hidden&gt;</a>.  There are also <a href=\"/contact/\">other 
ways "
+"to contact</a> the FSF.  Broken links and other corrections or suggestions "
+"can be sent to <a href=\"mailto:address@hidden";>&lt;address@hidden"
+"org&gt;</a>."
+msgstr ""
+"请将有å…
³è‡ªç”±è½¯ä»¶åŸºé‡‘会(FSF)&amp;GNU的一般性问题发送到<a 
href=\"mailto:";
+"address@hidden">&lt;address@hidden&gt;</a>。也可以通过<a 
href=\"/contact/\">其他联"
+"系方法</a>联系自由软件基金会(FSF)。请将无效链接,å…
¶ä»–错误或建议发送给<a href="
+"\"mailto:address@hidden";>&lt;address@hidden&gt;</a>。"
+
+#
+#
+#
+#.  TRANSLATORS: Ignore the original text in this paragraph,
+#.         replace it with the translation of these two:
+#.         We work hard and do our best to provide accurate, good quality
+#.         translations.  However, we are not exempt from imperfection.
+#.         Please send your comments and general suggestions in this regard
+#.         to <a href="mailto:address@hidden";>
+#.         &lt;address@hidden&gt;</a>.</p>
+#.         <p>For information on coordinating and submitting translations of
+#.         our web pages, see <a
+#.         href="/server/standards/README.translations.html">Translations
+#.         README</a>. 
+#. type: Content of: <div><div><p>
+msgid ""
+"Please see the <a href=\"/server/standards/README.translations.html"
+"\">Translations README</a> for information on coordinating and submitting "
+"translations of this article."
+msgstr ""
+"若您想翻译本文,请参看<a 
href=\"/server/standards/README.translations.html\">"
+"翻译须知</a>。"
+
+#. type: Content of: <div><p>
+msgid "Copyright &copy; 2003, 2007, 2013, 2014 Free Software Foundation, Inc."
+msgstr "Copyright &copy; 2003, 2007, 2013, 2014 Free Software Foundation, Inc."
+
+#. type: Content of: <div><p>
+msgid ""
+"This page is licensed under a <a rel=\"license\" href=\"http://";
+"creativecommons.org/licenses/by-nd/3.0/us/\">Creative Commons Attribution-"
+"NoDerivs 3.0 United States License</a>."
+msgstr ""
+"本页面使用<a rel=\"license\" 
href=\"http://creativecommons.org/licenses/by-";
+"nd/3.0/us/\">Creative Commons Attribution-NoDerivs 3.0 United States "
+"License</a>授权。"
+
+#. TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.
+#. type: Content of: <div><div>
+msgid "*GNUN-SLOT: TRANSLATOR'S CREDITS*"
+msgstr ""
+"<b>审校</b>:<a href=\"mailto:address@hidden";>&lt;Hagb 
(郭俊余)&gt;</"
+"a>,2018。<br></br>\n"
+"<b>翻译团队</b>:<a rel=\"team\" 
href=\"https://savannah.gnu.org/projects/";
+"www-zh-cn/\">&lt;CTT&gt;</a>,2018。"
+
+#.  timestamp start 
+#. type: Content of: <div><p>
+msgid "Updated:"
+msgstr "最后更新:"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]