diff options
Diffstat (limited to 'talermerchantdemos/blog/articles/br/java-trap.html')
-rw-r--r-- | talermerchantdemos/blog/articles/br/java-trap.html | 284 |
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 – 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 – é 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"><gnu@gnu.org></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"><webmasters@gnu.org></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"> + + <web-translators@gnu.org></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"><web-translators@gnu.org></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 © 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"><rafaelff@gnome.org></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> |