summaryrefslogtreecommitdiff
path: root/talermerchantdemos/blog/articles/br/java-trap.html
diff options
context:
space:
mode:
Diffstat (limited to 'talermerchantdemos/blog/articles/br/java-trap.html')
-rw-r--r--talermerchantdemos/blog/articles/br/java-trap.html284
1 files changed, 284 insertions, 0 deletions
diff --git a/talermerchantdemos/blog/articles/br/java-trap.html b/talermerchantdemos/blog/articles/br/java-trap.html
new file mode 100644
index 0000000..2367f09
--- /dev/null
+++ b/talermerchantdemos/blog/articles/br/java-trap.html
@@ -0,0 +1,284 @@
+<!--#set var="ENGLISH_PAGE" value="/philosophy/java-trap.en.html" -->
+
+<!--#include virtual="/server/header.pt-br.html" -->
+<!-- Parent-Version: 1.77 -->
+
+<!-- This file is automatically generated by GNUnited Nations! -->
+<title>Livre, mas Algemado - A Armadilha do Java - Projeto GNU - Free Software
+Foundation</title>
+
+<!--#include virtual="/philosophy/po/java-trap.translist" -->
+<!--#include virtual="/server/banner.pt-br.html" -->
+<h2>Livre, mas Algemado - A Armadilha do Java</h2>
+
+<p>por <a href="http://www.stallman.org/">Richard Stallman</a></p>
+
+
+<div class="announcement"><blockquote><h3>Nota introdutória</h3>
+<p>Desde que este artigo foi publicado pela primeira vez, a Sun (agora parte da
+Oracle) <a
+href="http://www.fsf.org/news/fsf-welcomes-gpl-java.html">relicenciou</a> a
+maioria das sua implementação de referência de plataforma Java sob a Licença
+Pública Geral GNU, e agora existe um ambiente de desenvolvimento livre para
+Java. Assim, a linguagem Java, como tal, não é mais uma armadilha.</p>
+
+<p>Você deve ter cuidado, no entanto, porque nem toda plataforma Java é
+livre. A Sun continua a distribuir uma plataforma Java executável que não é
+livre, e outras empresas também o fazem.</p>
+
+<p>O ambiente livre para Java é chamado IcedTea; o código-fonte que Sun liberou
+está incluído nele. Então esse é o que você deve usar. Muitas distribuições
+GNU/Linux vêm com o IcedTea, mas algumas incluem plataformas Java não
+livres. (Nota, adicionada em 10/2015: A implementação livre de Java é
+conhecida como OpenJDK em muitas distribuições GNU/Linux.)</p>
+
+<p>Para garantir que seus programas Java sejam executados corretamente em um
+ambiente livre, você precisa desenvolvê-los usando o IcedTea. Teoricamente,
+as plataformas Java devem ser compatíveis, mas não são totalmente
+compatíveis.</p>
+
+<p>Além disso, existem programas não livres com o “Java” em seu nome, como o
+JavaFX, e há pacotes Java não livres que você pode achar tentadores, mas
+você precisa rejeitá-los. Portanto, verifique as licenças de todos os
+pacotes que você planeja usar. Se você usa o Swing, certifique-se de usar a
+versão livre, que vem com o IcedTea. (Nota, adicionada em 10/2015: Um
+substituto livre para o JavaFX chamado OpenJFX foi lançado.)</p>
+
+<p>Além dessas especificidades de Java, a questão geral descrita aqui permanece
+importante, porque qualquer biblioteca não livre ou plataforma de
+programação pode causar um problema semelhante. Devemos aprender uma lição
+com a história do Java, para que possamos evitar outras armadilhas no
+futuro.</p>
+
+<p>Por favor, veja também: <a href="/philosophy/javascript-trap.html"> A
+Armadilha do JavaScript</a>.</p>
+</blockquote>
+</div>
+
+<p>12 de abril de 2004</p>
+
+<p>
+ Se o seu programa é software livre, é basicamente ético &ndash; mas há uma
+armadilha para a qual você deve estar atento. Seu programa, embora seja
+livre, pode ser restrito por softwares não livres dos quais ele
+depende. Como o problema é mais proeminente hoje em dia nos programas Java,
+nós o chamamos de Armadilha do Java.
+</p>
+
+<p>
+ Um programa é software livre se seus usuários tiverem certas liberdades
+cruciais. A grosso modo, elas são: a liberdade de executar o programa, a
+liberdade de estudar e alterar o fonte, a liberdade de redistribuir o fonte
+e os binários e a liberdade de publicar versões aprimoradas. (Veja <a
+href="/philosophy/free-sw.html">http://www.gnu.org/philosophy/free-sw.html</a>.)
+Se algum programa dado em forma de fonte é software livre depende unicamente
+do significado de sua licença.
+</p>
+
+<p>
+ Se o programa pode ser usado no mundo livre, usado por pessoas que querem
+viver em liberdade, é uma questão mais complexa. Isso não é determinado
+apenas pela própria licença do programa porque nenhum programa funciona
+isoladamente. Todo programa depende de outros programas. Por exemplo, um
+programa precisa ser compilado ou interpretado, então depende de um
+compilador ou interpretador. Se compilado em código de byte, isso depende de
+um interpretador de código de bytes. Além disso, ele precisa de bibliotecas
+para ser executado e também pode chamar outros programas separados que são
+executados em outros processos. Todos esses programas são
+dependências. Dependências podem ser necessárias para o programa ser
+executado, ou podem ser necessárias apenas para determinados recursos. De
+qualquer maneira, todo ou parte do programa não pode operar sem as
+dependências.
+</p>
+
+<p>
+ Se algumas das dependências de um programa forem não livres, isso significa
+que todo ou parte do programa não pode ser executado em um sistema
+totalmente livre &ndash; é inutilizável no mundo livre. Claro, poderíamos
+redistribuir o programa e ter cópias em nossas máquinas, mas isso não é
+muito bom se não for executado. Esse programa é software livre, mas está
+efetivamente preso por suas dependências não livres.
+</p>
+
+<p>
+ Esse problema pode ocorrer em qualquer tipo de software, em qualquer
+linguagem. Por exemplo, um programa livre que só funciona no Microsoft
+Windows é claramente inútil no mundo livre. Mas o software que funciona no
+GNU/Linux também pode ser inútil se depender de outro software não livre. No
+passado, o Motif (antes de ter o LessTif) e o Qt (antes de seus
+desenvolvedores o tornar software livre) eram as principais causas desse
+problema. A maioria das placas de vídeo 3D funciona totalmente apenas com
+drivers não livres, o que também causa esse problema. Mas a principal fonte
+desse problema hoje é o Java, porque as pessoas que escrevem software livre
+geralmente acham que o Java é sexy. Cegos por sua atração pela linguagem,
+eles ignoram a questão das dependências e caem na Armadilha do Java.
+</p>
+
+<p>
+ A implementação de Java da Sun não é livre. As bibliotecas padrão do Java
+também são não livres. Nós temos implementações livres de Java, como o <a
+href="http://gcc.gnu.org/java/">GNU Compiler for Java</a> (GCJ) e <a
+href="/software/classpath">GNU Classpath</a>, mas elas não possuem suporte a
+todos os recursos ainda. Nós ainda estamos trabalhando nisso.
+</p>
+
+<p>
+ Se você desenvolver um programa Java na plataforma Java da Sun, será
+necessário usar recursos exclusivos da Sun sem nem mesmo notar. No momento
+em que você descobrir isso, você pode tê-los usado por meses, e refazer o
+trabalho pode levar mais meses. Você pode dizer: “É muito trabalho para
+recomeçar”. Então, seu programa terá caído na Armadilha do Java; será
+inutilizável no mundo livre.
+</p>
+
+<p>
+ A maneira confiável de evitar a Armadilha do Java é ter apenas uma
+implementação livre do Java em seu sistema. Então, se você usar um recurso
+ou biblioteca Java que o software livre ainda não possui suporte, você
+descobrirá imediatamente e poderá reescrever esse código imediatamente.
+</p>
+
+<p>
+ A Sun continua a desenvolver bibliotecas “padrão” adicionais para o Java e
+quase todas elas são não livres; em muitos casos, até mesmo a especificação
+de uma biblioteca é um segredo comercial, e a última licença da Sun para
+essas especificações proíbe o lançamento de qualquer coisa menos que uma
+implementação completa da especificação. (Consulte <a
+href="http://jcp.org/aboutJava/communityprocess/JSPA2.pdf">http://jcp.org/aboutJava/communityprocess/JSPA2.pdf</a>
+e <a
+href="http://jcp.org/aboutJava/communityprocess/final/jsr129/j2me_pb-1_0-fr-spec-license.html">http://jcp.org/aboutJava/communityprocess/final/jsr129/j2me_pb-1_0-fr-spec-license.html</a>
+para exemplos.)
+</p>
+
+<p>
+ Felizmente, essa licença de especificação permite lançar uma implementação
+como software livre; outros que recebem a biblioteca podem ter permissão
+para alterá-la e não são obrigados a aderir à especificação. Mas o requisito
+tem o efeito de proibir o uso de um modelo de desenvolvimento colaborativo
+para produzir a implementação livre. O uso desse modelo implicaria a
+publicação de versões incompletas, algo que aqueles que leram a
+especificação não têm permissão para fazer.
+</p>
+
+<p>
+ Nos primeiros dias do movimento do software livre, era impossível evitar
+depender de programas não livres. Antes de termos o compilador C GNU, todo
+programa C (livre ou não) dependia de um compilador C não livre. Antes de
+termos a biblioteca GNU C, todo programa dependia de uma biblioteca C não
+livre. Antes de termos o Linux, o primeiro kernel livre, todo programa
+dependia de um kernel não livre. Antes de termos o BASH, todo script de
+shell tinha que ser interpretado por um shell não livre. Era inevitável que
+nossos primeiros programas fossem inicialmente prejudicados por essas
+dependências, mas aceitamos isso porque nosso plano incluía salvá-los
+posteriormente. Nosso objetivo geral, um sistema operacional GNU de
+hospedagem própria, incluía substituições livre para todas essas
+dependências; Se alcançássemos a meta, todos os nossos programas seriam
+resgatados. Assim aconteceu: com o sistema GNU/Linux, agora podemos usar
+esses programas em plataformas livres.
+</p>
+
+<p>
+ A situação é diferente hoje. Agora temos sistemas operacionais poderosos e
+livres e muitas ferramentas de programação livres. Qualquer que seja o
+trabalho que você queira fazer, você pode fazê-lo em uma plataforma livre;
+não há necessidade de aceitar uma dependência não livre, mesmo que
+temporariamente. A principal razão pela qual as pessoas caem na armadilha
+hoje é porque elas não estão pensando nisso. A solução mais fácil para o
+problema é ensinar as pessoas a reconhecê-lo e não cair nele.
+</p>
+
+<p>
+ Para manter seu código Java protegido da Armadilha do Java, instale um
+ambiente de desenvolvimento Java livre e use-o. De forma mais genérica, seja
+qual for a linguagem que você usa, mantenha os olhos abertos e verifique o
+status de programas dos quais o seu código depende. A maneira mais fácil de
+verificar se um programa é livre é procurá-lo no Diretório de Software Livre
+(<a
+href="http://www.fsf.org/directory">http://www.fsf.org/directory</a>). Se um
+programa não estiver no diretório, você poderá verificar sua(s) licença(s)
+com a lista de licenças de software livre (<a
+href="/licenses/license-list.html">http://www.gnu.org/licenças/license-list.html</a>).
+</p>
+
+<p>
+ Estamos tentando resgatar os programas Java que caíram nessa armadilha,
+portanto, se você gosta da linguagem Java, nós o convidamos a ajudar no
+desenvolvimento do GNU Classpath. Experimentar seus programas com o GCJ
+Compiler e o GNU Classpath, e relatar quaisquer problemas que você encontre
+em classes já implementadas, também é útil. No entanto, terminar o GNU
+Classpath levará tempo; se mais bibliotecas não livres continuarem sendo
+adicionadas, talvez nunca tenhamos todas as mais recentes. Então, por favor,
+não coloque seu software livre em grilhões. Quando você escrever um programa
+hoje, escreva-o para funcionar em instalações livres desde o início.
+</p>
+
+<h3>Veja também:</h3>
+<p><a href="/philosophy/sun-in-night-time.html">O curioso incidente da Sun no
+período noturno</a></p>
+
+<div class="translators-notes">
+
+<!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.-->
+ </div>
+</div>
+
+<!-- for id="content", starts in the include above -->
+<!--#include virtual="/server/footer.pt-br.html" -->
+<div id="footer">
+<div class="unprintable">
+
+<p>Envie perguntas em geral sobre a FSF e o GNU para <a
+href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>. Também existem <a
+href="/contact/">outros meios de contatar</a> a FSF. Links quebrados e
+outras correções ou sugestões podem ser enviadas para <a
+href="mailto:webmasters@gnu.org">&lt;webmasters@gnu.org&gt;</a>.</p>
+
+<p>
+<!-- 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:web-translators@gnu.org">
+
+ &lt;web-translators@gnu.org&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>. -->
+A equipe de traduções para o português brasileiro se esforça para oferecer
+traduções precisas e de boa qualidade, mas não estamos isentos de erros. Por
+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>
+</div>
+
+<p>Copyright &copy; 2004, 2010, 2015 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
+Commons Atribuição-SemDerivações 4.0 Internacional</a>.</p>
+
+<!--#include virtual="/server/bottom-notes.pt-br.html" -->
+<div class="translators-credits">
+
+<!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
+Traduzido por: Rafael Fontenelle <a
+href="mailto:rafaelff@gnome.org">&lt;rafaelff@gnome.org&gt;</a>, 2019.</div>
+
+<p class="unprintable"><!-- timestamp start -->
+Última atualização:
+
+$Date: 2020/05/22 22:05:25 $
+
+<!-- timestamp end -->
+</p>
+</div>
+</div>
+</body>
+</html>