summaryrefslogtreecommitdiff
path: root/talermerchantdemos/blog/articles/br/rms-lisp.html
diff options
context:
space:
mode:
Diffstat (limited to 'talermerchantdemos/blog/articles/br/rms-lisp.html')
-rw-r--r--talermerchantdemos/blog/articles/br/rms-lisp.html161
1 files changed, 93 insertions, 68 deletions
diff --git a/talermerchantdemos/blog/articles/br/rms-lisp.html b/talermerchantdemos/blog/articles/br/rms-lisp.html
index 5ba052c..6c85c33 100644
--- a/talermerchantdemos/blog/articles/br/rms-lisp.html
+++ b/talermerchantdemos/blog/articles/br/rms-lisp.html
@@ -1,18 +1,32 @@
<!--#set var="ENGLISH_PAGE" value="/gnu/rms-lisp.en.html" -->
<!--#include virtual="/server/header.pt-br.html" -->
-<!-- Parent-Version: 1.77 -->
+<!-- Parent-Version: 1.96 -->
+<!-- This page is derived from /server/standards/boilerplate.html -->
+<!--#set var="TAGS" value="gnu-history" -->
+<!--#set var="DISABLE_TOP_ADDENDUM" value="yes" -->
<!-- This file is automatically generated by GNUnited Nations! -->
<title>Minhas experiências com Lisp e o desenvolvimento do GNU Emacs - Projeto GNU
- Free Software Foundation</title>
+<style type="text/css" media="print,screen"><!--
+a[href*='#foot-'] { font-size: .94em; }
+-->
+</style>
<!--#include virtual="/gnu/po/rms-lisp.translist" -->
<!--#include virtual="/server/banner.pt-br.html" -->
+<!--#include virtual="/gnu/gnu-breadcrumb.pt-br.html" -->
+<!--GNUN: OUT-OF-DATE NOTICE-->
+<!--#include virtual="/server/top-addendum.pt-br.html" -->
+<div class="article reduced-width">
<h2>Minhas experiências com Lisp e o desenvolvimento do GNU Emacs</h2>
-<blockquote><p>(Tradução da transcrição do discurso de Richard Stallman, 28 de outubro de
-2002, na International Lisp Conference).</p></blockquote>
+<div class="infobox">
+<p>Tradução da transcrição do discurso de Richard Stallman na International
+Lisp Conference, 28 de outubro de 2002.</p>
+</div>
+<hr class="thin" />
<p>Como nenhum dos meus discursos habituais tem nada a ver com Lisp, nenhum
deles era apropriado para hoje. Então eu vou ter que improvisar. Desde que
@@ -68,24 +82,25 @@ escrito para o <abbr title="Text Editor and COrrector">TECO</abbr>. Era o
nosso editor de texto, e era uma linguagem de programação extremamente feia,
tão feia quanto poderia ser. O motivo foi que não foi projetado para ser uma
linguagem de programação, foi projetado para ser um editor e uma linguagem
-de comando. Havia comandos como “5l”, significando “mover cinco linhas”, ou
-“i” e, em seguida, uma sequência de caracteres e, em seguida, um ESC para
-inserir essa sequência de caracteres. Você digitaria uma string que era uma
-série de comandos, que era chamada de string de comando. Você terminaria com
-ESC ESC, e o comando seria executado.</p>
+de comando. Havia comandos como <code>5l</code>, significando <code>mover
+cinco linhas</code>, ou <code>i</code> e, em seguida, uma sequência de
+caracteres e, em seguida, um ESC para inserir essa sequência de
+caracteres. Você digitaria uma string que era uma série de comandos, que era
+chamada de string de comando. Você terminaria com ESC ESC, e o comando seria
+executado.</p>
<p>Bem, as pessoas queriam estender essa linguagem com recursos de programação,
então elas adicionaram alguns. Por exemplo, um dos primeiros foi uma
-construção em <i>loop</i>, que foi &lt; &gt;. Você colocaria essas coisas em
-volta e os comandos dentro delas rodariam em <i>loop</i>. Havia outros
-comandos enigmáticos que poderiam ser usados para sair condicionalmente do
-<i>loop</i>. Para fazer o Emacs, nós <a href="#foot-1">(1)</a> adicionamos
-recursos para termos sub-rotinas com nomes.Antes disso, era como o Basic, e
-as sub-rotinas só podiam ter letras únicas como seus nomes. Foi difícil
-desenvolver programas grandes, então adicionamos código para que eles
-pudessem ter nomes mais longos. Na verdade, havia algumas instalações
-bastante sofisticadas; eu acho que o Lisp obteve seu mecanismo de
-<i>unwind-protect</i> do TECO.</p>
+construção em <i>loop</i>, que foi <code>&lt;&nbsp;&gt;</code>. Você
+colocaria essas coisas em volta e os comandos dentro delas executariam em
+<i>loop</i>. Havia outros comandos enigmáticos que poderiam ser usados para
+sair condicionalmente do <i>loop</i>. Para fazer o Emacs, nós&#8239;<a
+href="#foot-1">[1]</a> adicionamos recursos para termos sub-rotinas com
+nomes. Antes disso, era como o Basic, e as sub-rotinas só podiam ter letras
+únicas como seus nomes. Foi difícil desenvolver programas grandes, então
+adicionamos código para que eles pudessem ter nomes mais longos. Na verdade,
+havia algumas instalações bastante sofisticadas; eu acho que o Lisp obteve
+seu mecanismo de <i>unwind-protect</i> do TECO.</p>
<p>Começamos a colocar instalações bastante sofisticadas, todas com a sintaxe
mais feia que você poderia imaginar, e funcionou &ndash; as pessoas eram
@@ -97,8 +112,8 @@ programação na reflexão posterior; deve ser projetada como uma linguagem de
programação. De fato, descobrimos que a melhor linguagem de programação para
esse propósito era Lisp.</p>
-<p>Foi Bernie Greenberg, que descobriu que ela era <a
-href="#foot-2">(2)</a>. Ele escreveu uma versão do Emacs no Multics MacLisp
+<p>Foi Bernie Greenberg, que descobriu que ela era&#8239;<a
+href="#foot-2">[2]</a>. Ele escreveu uma versão do Emacs no Multics MacLisp
e escreveu seus comandos no MacLisp de maneira direta. O editor em si foi
escrito inteiramente em Lisp. Multics Emacs provou ser um grande sucesso
&ndash; programar novos comandos de edição era tão conveniente que até os
@@ -232,11 +247,11 @@ empresa.</p>
<p>Havia duas ideias diferentes sobre como essa empresa deveria ser. Greenblatt
queria começar o que ele chamou de um empresa “hacker”. Isso significava que
seria uma empresa administrada por hackers e funcionaria de maneira
-favorável aos hackers. Outro objetivo era manter a cultura do AI Lab <a
-href="#foot-3">(3)</a>. Infelizmente, o Greenblatt não tinha experiência em
-negócios, então outras pessoas do grupo de máquinas Lisp disseram duvidar
-que ele pudesse ter sucesso. Eles pensaram que seu plano para evitar
-investimentos externos não funcionaria.</p>
+favorável aos hackers. Outro objetivo era manter a cultura do AI
+Lab&#8239;<a class="ftn" href="#foot-3">[3]</a>. Infelizmente, o Greenblatt
+não tinha experiência em negócios, então outras pessoas do grupo de máquinas
+Lisp disseram duvidar que ele pudesse ter sucesso. Eles pensaram que seu
+plano para evitar investimentos externos não funcionaria.</p>
<p>Por que ele queria evitar investimentos externos? Porque quando uma empresa
tem investidores externos, eles assumem o controle e não deixam que você
@@ -283,11 +298,12 @@ que o MIT tinha o direito de colocá-los nos sistemas de máquinas MIT Lisp
que ambas as empresas tinham licenciado. Ninguém previra que o grupo de
hackers do AI Lab seria aniquilado, mas foi.</p>
-<p> Então, a Symbolics criou um plano <a href="#foot-4">(4)</a>. Eles disseram
-para o laboratório, “Continuaremos a disponibilizar nossas alterações no
-sistema para você usar, mas você não pode colocá-las no sistema da máquina
-Lisp do MIT. Em vez disso, daremos acesso ao sistema de máquina Lisp da
-Symbolics e você poderá executá-lo, mas isso é tudo que você pode fazer.”</p>
+<p> Então, a Symbolics criou um plano&#8239;<a href="#foot-4">[4]</a>. Eles
+disseram para o laboratório, “Continuaremos a disponibilizar nossas
+alterações no sistema para você usar, mas você não pode colocá-las no
+sistema da máquina Lisp do MIT. Em vez disso, daremos acesso ao sistema de
+máquina Lisp da Symbolics e você poderá executá-lo, mas isso é tudo que você
+pode fazer.”</p>
<p>Isso, na verdade, significava que eles precisavam escolher um lado e, ou
usar a versão MIT do sistema ou a versão da Symbolics. A depender da escolha
@@ -303,23 +319,23 @@ ser neutros.</p>
embora isso me fizesse sentir infeliz ao ver o que havia acontecido com
nossa comunidade e com o software. Mas agora, a Symbolics tinha forçado a
barra. Então, em um esforço para ajudar a dar continuidade à Lisp Machines
-Inc. <a href="#foot-5">(5)</a> &ndash; comecei a duplicar todas as melhorias
-que a Symbolics tinha feito no sistema de máquinas Lisp. Escrevi as
-melhorias equivalentes novamente (ou seja, o código era meu).</p>
-
-<p>Após algum tempo <a href="#foot-6">(6)</a>, cheguei à conclusão de que seria
-melhor se eu nem olhasse para o código deles. Quando eles fizeram um anúncio
-da versão beta que dava as notas de lançamento, eu veria quais eram os
-recursos e depois os implementaria. No momento em que eles tinham um
+Inc.&#8239;<a href="#foot-5">[5]</a> &ndash; comecei a duplicar todas as
+melhorias que a Symbolics tinha feito no sistema de máquinas Lisp. Escrevi
+as melhorias equivalentes novamente (ou seja, o código era meu).</p>
+
+<p>Após algum tempo&#8239;<a href="#foot-6">[6]</a>, cheguei à conclusão de que
+seria melhor se eu nem olhasse para o código deles. Quando eles fizeram um
+anúncio da versão beta que dava as notas de lançamento, eu veria quais eram
+os recursos e depois os implementaria. No momento em que eles tinham um
lançamento real, eu também lançava.</p>
<p>Desta forma, por dois anos, eu os impedi de eliminar a Lisp Machines
Incorporated, e as duas empresas sobreviveram. Mas eu não queria passar anos
e anos punindo alguém, apenas frustrando um ato maligno. Eu percebi que eles
tinham sido punidos muito bem porque estavam presos a uma competição que não
-acabava e não ia desaparecer <a href="#foot-7">(7)</a>. Enquanto isso, era
-hora de começar a construir uma nova comunidade para substituir aquela que
-as ações da Symbolics e outros haviam eliminado.</p>
+acabava e não ia desaparecer&#8239;<a href="#foot-7">[7]</a>. Enquanto isso,
+era hora de começar a construir uma nova comunidade para substituir aquela
+que as ações da Symbolics e outros haviam eliminado.</p>
<p>A comunidade Lisp nos anos 70 não se limitou ao AI Lab do MIT, e os hackers
não estavam todos no MIT. A guerra que a Symbolics iniciou foi o que acabou
@@ -341,7 +357,7 @@ reduzido a algo como os compiladores Lisp para outras máquinas. Os programas
seriam mais rápidos, mas instáveis. Agora, tudo bem se você estiver
executando um programa em um sistema de tempo compartilhado &ndash; se um
programa falhar, isso não é um desastre, isso é algo que seu programa
-ocasionalmente faz. Mas isso não era bom em setratando de um sistema
+ocasionalmente faz. Mas isso não era bom para escrever um sistema
operacional, então rejeitei a ideia de fazer um sistema como o da Lisp.</p>
<p>Decidi, em vez disso, criar um sistema operacional semelhante ao Unix que
@@ -357,22 +373,23 @@ memória virtual. Eles queriam poder usar o GNU Emacs. Isso significava que
eu tinha que manter o programa o menor possível.</p>
<p>Por exemplo, naquele momento a única construção em <em>loop</em> era o
-<i>while</i>, o que era extremamente simples. Não havia maneira de sair da
-declaração <i>while</i>, você tinha que fazer um <i>catch</i> e um
-<i>throw</i>, ou testar uma variável que estava no <em>loop</em>. Isso
-mostra até onde eu estava indo para manter as coisas pequenas. Nós não
-tínhamos “caar” e “cadr” e assim por diante; “espremer tudo o que for
-possível” era o espírito do GNU Emacs, o espírito do Emacs Lisp, desde o
-começo.</p>
+<code>while</code>, o que era extremamente simples. Não havia maneira de
+sair da declaração <code>while</code>, você tinha que fazer um
+<code>catch</code> e um <code>throw</code>, ou testar uma variável que
+estava no <em>loop</em>. Isso mostra até onde eu estava indo para manter as
+coisas pequenas. Nós não tínhamos <code>caar</code> e <code>cadr</code> e
+assim por diante; “espremer tudo o que for possível” era o espírito do GNU
+Emacs, o espírito do Emacs Lisp, desde o começo.</p>
<p>Obviamente, as máquinas são maiores agora, e nós não fazemos mais isso. Nós
-colocamos em “caar” e “cadr” e assim por diante, e podemos colocar em outra
-construção de <em>loop</em> um dia desses. Estamos dispostos a estendê-lo
-agora, mas não queremos estendê-lo no nível do Lisp comum. Eu implementei o
-Common Lisp uma vez na máquina Lisp, e não estou muito feliz com isso. Uma
-coisa que eu não gosto muito é dos argumentos das palavras-chave <a
-href="#foot-8">(8)</a>. Eles não se parecem muito com algo do Lisp para mim;
-Às vezes faço isso, mas minimizo as vezes em que faço isso.</p>
+colocamos em <code>caar</code> e <code>cadr</code> e assim por diante, e
+podemos colocar em outra construção de <em>loop</em> um dia desses. Estamos
+dispostos a estendê-lo agora, mas não queremos estendê-lo no nível do Lisp
+comum. Eu implementei o Common Lisp uma vez na máquina Lisp, e não estou
+muito feliz com isso. Uma coisa que eu não gosto muito é dos argumentos das
+palavras-chave&#8239;<a href="#foot-8">[8]</a>. Eles não se parecem muito
+com algo do Lisp para mim; Às vezes faço isso, mas minimizo as vezes em que
+faço isso.</p>
<p>Esse não foi o fim dos projetos GNU envolvidos com o Lisp. Mais tarde, por
volta de 1995, estávamos procurando iniciar um projeto de área de trabalho
@@ -456,16 +473,18 @@ operacionais de software livre. Temos muitos aplicativos e obviamente temos
muito mais caminhos para trilhar. Então precisamos da sua ajuda. Eu gostaria
de pedir para você ser voluntário no projeto GNU; Ajude-nos a desenvolver
software livre para mais tarefas. Dê uma olhada em <a
-href="/help/">http://www.gnu.org/help</a> para encontrar sugestões de como
-ajudar. Se você quiser encomendar coisas, há um <em>link</em> para isso na
-página principal. Se você quiser ler sobre questões filosóficas, veja em
+href="/help/">gnu.org/help</a> para encontrar sugestões de como ajudar. Se
+você quiser encomendar coisas, há um <em>link</em> para isso na página
+principal. Se você quiser ler sobre questões filosóficas, veja em
/philosophy. Se você está procurando por software livre para usar, veja em
/directory, que lista cerca de 1900 pacotes agora (o que é uma fração de
todo o software livre disponível). Por favor, escreva mais e contribua
conosco. Meu livro de ensaios, “Free Software and Free Society”, está à
-venda e pode ser adquirido em <a
-href="http://www.gnu.org/">www.gnu.org</a>. <i>Happy hacking</i>!</p>
+venda e pode ser adquirido em www.gnu.org&#8239;<a
+href="#foot-9">[9]</a>. <i>Happy hacking!</i></p>
+<div class="column-limit"></div>
+<h3 class="footnote">Notas de rodapé</h3>
<ol>
<li id="foot-1">Guy Steele projetou o conjunto original de comandos simétrico do Emacs;
então ele e eu começamos a implementar o Emacs (sobre o TECO), mas depois de
@@ -509,7 +528,12 @@ o plano deles, havia custado à Symbolics um milhão de dólares.</li>
<li id="foot-8">Não me importo se uma função muito complexa e pesada requer argumentos de
palavras-chave. O que me incomoda é fazer funções básicas simples, como
“member” usá-los.</li>
+
+<li id="foot-9">Em 2021, este livro pode ser comprado da <a
+href="https://shop.fsf.org/books-docs/free-software-free-society-selected-essays-richard-m-stallman-3rd-edition">
+GNU Press</a>.</li>
</ol>
+</div>
<div class="translators-notes">
@@ -519,7 +543,7 @@ palavras-chave. O que me incomoda é fazer funções básicas simples, como
<!-- for id="content", starts in the include above -->
<!--#include virtual="/server/footer.pt-br.html" -->
-<div id="footer">
+<div id="footer" role="contentinfo">
<div class="unprintable">
<p>Envie perguntas em geral sobre a FSF e o GNU para <a
@@ -539,7 +563,7 @@ href="mailto:webmasters@gnu.org">&lt;webmasters@gnu.org&gt;</a>.</p>
&lt;web-translators@gnu.org&gt;</a>.</p>
- <p>For information on coordinating and submitting translations of
+ <p>For information on coordinating and contributing translations of
our web pages, see <a
href="/server/standards/README.translations.html">Translations
README</a>. -->
@@ -549,8 +573,8 @@ favor, envie seus comentários e sugestões em geral sobre as traduções para
<a
href="mailto:web-translators@gnu.org">&lt;web-translators@gnu.org&gt;</a>.
</p><p>Consulte o <a href="/server/standards/README.translations.html">Guia
-para as traduções</a> para mais informações sobre a coordenação e o envio de
-traduções das páginas deste site.</p>
+para as traduções</a> para mais informações sobre a coordenação e a
+contribuição com traduções das páginas deste site.</p>
</div>
<!-- Regarding copyright, in general, standalone pages (as opposed to
@@ -569,7 +593,7 @@ traduções das páginas deste site.</p>
There is more detail about copyright years in the GNU Maintainers
Information document, www.gnu.org/prep/maintain. -->
-<p>Copyright &copy; 2003, 2007, 2013, 2014, 2020 Free Software Foundation, Inc.</p>
+<p>Copyright &copy; 2003, 2007, 2013, 2021 Free Software Foundation, Inc.</p>
<p>Esta página está licenciada sob uma licença <a rel="license"
href="http://creativecommons.org/licenses/by-nd/4.0/deed.pt_BR">Creative
@@ -582,18 +606,19 @@ Commons Atribuição-SemDerivações 4.0 Internacional</a>.</p>
Traduzido por:
Rafael Fontenelle <a
href="mailto:rafaelff@gnome.org">&lt;rafaelff@gnome.org&gt;</a>,
-2018-2020<br />
+2018-2022<br />
Revisado por: Cassiano Reinert Novais dos Santos <a
href="mailto:caco@member.fsf.org">&lt;caco@member.fsf.org&gt;</a>, 2019.</div>
<p class="unprintable"><!-- timestamp start -->
Última atualização:
-$Date: 2020/09/29 18:29:24 $
+$Date: 2022/01/03 11:06:49 $
<!-- timestamp end -->
</p>
</div>
</div>
+<!-- for class="inner", starts in the banner include -->
</body>
</html>