taler-merchant-demos

Python-based Frontends for the Demonstration Web site
Log | Files | Refs | Submodules | README | LICENSE

java-trap.html (15060B)


      1 <!--#set var="ENGLISH_PAGE" value="/philosophy/java-trap.en.html" -->
      2 
      3 <!--#include virtual="/server/header.pt-br.html" -->
      4 <!-- Parent-Version: 1.96 -->
      5 <!-- This page is derived from /server/standards/boilerplate.html -->
      6 <!--#set var="TAGS" value="essays licensing traps" -->
      7 <!--#set var="DISABLE_TOP_ADDENDUM" value="yes" -->
      8 
      9 <!-- This file is automatically generated by GNUnited Nations! -->
     10 <title>Livre, mas Algemado - A Armadilha do Java - Projeto GNU - Free Software
     11 Foundation</title>
     12 
     13 <!--#include virtual="/philosophy/po/java-trap.translist" -->
     14 <!--#include virtual="/server/banner.pt-br.html" -->
     15 <!--#include virtual="/philosophy/ph-breadcrumb.pt-br.html" -->
     16 <!--GNUN: OUT-OF-DATE NOTICE-->
     17 <!--#include virtual="/server/top-addendum.pt-br.html" -->
     18 <div class="article reduced-width">
     19 
     20 <h2>Livre, mas Algemado - A Armadilha do Java</h2>
     21 
     22 <address class="byline">por <a href="https://www.stallman.org/">Richard Stallman</a></address>
     23 
     24 <div class="emph-box" style="background: none">
     25 <h3 class="footnote">Nota introdutória</h3>
     26 <p>Desde que este artigo foi publicado pela primeira vez, a Sun (agora parte da
     27 Oracle) <a
     28 href="https://www.fsf.org/news/fsf-welcomes-gpl-java.html">relicenciou</a> a
     29 maioria das sua implementação de referência de plataforma Java sob a Licença
     30 Pública Geral GNU, e agora existe um ambiente de desenvolvimento livre para
     31 Java. Assim, a linguagem Java, como tal, não é mais uma armadilha.</p>
     32 
     33 <p>Você deve ter cuidado, no entanto, porque nem toda plataforma Java é
     34 livre. A Sun continua a distribuir uma plataforma Java executável que não é
     35 livre, e outras empresas também o fazem.</p>
     36 
     37 <p>O ambiente livre para Java é chamado IcedTea; o código-fonte que Sun liberou
     38 está incluído nele. Então esse é o que você deve usar. Muitas distribuições
     39 GNU/Linux vêm com o IcedTea, mas algumas incluem plataformas Java não
     40 livres. (Nota, adicionada em 10/2015: A implementação livre de Java é
     41 conhecida como OpenJDK em muitas distribuições GNU/Linux.)</p>
     42 
     43 <p>Para garantir que seus programas Java sejam executados corretamente em um
     44 ambiente livre, você precisa desenvolvê-los usando o IcedTea. Teoricamente,
     45 as plataformas Java devem ser compatíveis, mas não são totalmente
     46 compatíveis.</p>
     47 
     48 <p>Além disso, existem programas não livres com o “Java” em seu nome, como o
     49 JavaFX, e há pacotes Java não livres que você pode achar tentadores, mas
     50 você precisa rejeitá-los. Portanto, verifique as licenças de todos os
     51 pacotes que você planeja usar. Se você usa o Swing, certifique-se de usar a
     52 versão livre, que vem com o IcedTea. (Nota, adicionada em 10/2015: Um
     53 substituto livre para o JavaFX chamado OpenJFX foi lançado.)</p>
     54 
     55 <p>Além dessas especificidades de Java, a questão geral descrita aqui permanece
     56 importante, porque qualquer biblioteca não livre ou plataforma de
     57 programação pode causar um problema semelhante. Devemos aprender uma lição
     58 com a história do Java, para que possamos evitar outras armadilhas no
     59 futuro.</p>
     60 
     61 <p>Por favor, veja também: <a href="/philosophy/javascript-trap.html"> A
     62 Armadilha do JavaScript</a>.</p>
     63 </div>
     64 <hr class="no-display" />
     65 
     66 <p><em>12 de abril de 2004</em></p>
     67 
     68 <p>
     69   Se o seu programa é software livre, é basicamente ético &ndash; mas há uma
     70 armadilha para a qual você deve estar atento. Seu programa, embora seja
     71 livre, pode ser restrito por softwares não livres dos quais ele
     72 depende. Como o problema é mais proeminente hoje em dia nos programas Java,
     73 nós o chamamos de Armadilha do Java.
     74 </p>
     75 
     76 <p>
     77   Um programa é software livre se seus usuários tiverem certas liberdades
     78 cruciais. A grosso modo, elas são: a liberdade de executar o programa, a
     79 liberdade de estudar e alterar o fonte, a liberdade de redistribuir o
     80 código-fonte e os binários e a liberdade de publicar versões
     81 aprimoradas. (Veja a <a href="/philosophy/free-sw.html">Definição de
     82 Software Livre</a>.) Se algum programa dado em forma de fonte é software
     83 livre depende unicamente do significado de sua licença.
     84 </p>
     85 
     86 <p>
     87   Se o programa pode ser usado no mundo livre, usado por pessoas que querem
     88 viver em liberdade, é uma questão mais complexa. Isso não é determinado
     89 apenas pela própria licença do programa porque nenhum programa funciona
     90 isoladamente. Todo programa depende de outros programas. Por exemplo, um
     91 programa precisa ser compilado ou interpretado, então depende de um
     92 compilador ou interpretador. Se compilado em código de byte, isso depende de
     93 um interpretador de código de bytes. Além disso, ele precisa de bibliotecas
     94 para ser executado e também pode chamar outros programas separados que são
     95 executados em outros processos. Todos esses programas são
     96 dependências. Dependências podem ser necessárias para o programa ser
     97 executado, ou podem ser necessárias apenas para determinados recursos. De
     98 qualquer maneira, todo ou parte do programa não pode operar sem as
     99 dependências.
    100 </p>
    101 
    102 <p>
    103   Se algumas das dependências de um programa forem não livres, isso significa
    104 que todo ou parte do programa não pode ser executado em um sistema
    105 totalmente livre &ndash; é inutilizável no mundo livre. Claro, poderíamos
    106 redistribuir o programa e ter cópias em nossas máquinas, mas isso não é
    107 muito bom se não for executado. Esse programa é software livre, mas está
    108 efetivamente preso por suas dependências não livres.
    109 </p>
    110 
    111 <p>
    112   Esse problema pode ocorrer em qualquer tipo de software, em qualquer
    113 linguagem. Por exemplo, um programa livre que só funciona no Microsoft
    114 Windows é claramente inútil no mundo livre. Mas o software que funciona no
    115 GNU/Linux também pode ser inútil se depender de outro software não livre. No
    116 passado, o Motif (antes de ter o LessTif) e o Qt (antes de seus
    117 desenvolvedores o tornar software livre) eram as principais causas desse
    118 problema. A maioria das placas de vídeo 3D funciona totalmente apenas com
    119 drivers não livres, o que também causa esse problema. Mas a principal fonte
    120 desse problema hoje é o Java, porque as pessoas que escrevem software livre
    121 geralmente acham que o Java é sexy. Cegos por sua atração pela linguagem,
    122 eles ignoram a questão das dependências e caem na Armadilha do Java.
    123 </p>
    124 
    125 <p>
    126   A implementação de Java da Sun não é livre. As bibliotecas padrão do Java
    127 também são não livres. Nós temos implementações livres de Java, como o <a
    128 href="https://objectcomputing.com/resources/publications/sett/january-2003-gcj-the-gnu-compiler-for-java">GNU
    129 Compiler for Java</a> (GCJ) e <a href="/software/classpath">GNU
    130 Classpath</a>, mas elas não possuem suporte a todos os recursos ainda. Nós
    131 ainda estamos trabalhando nisso.
    132 </p>
    133 
    134 <p>
    135   Se você desenvolver um programa Java na plataforma Java da Sun, será
    136 necessário usar recursos exclusivos da Sun sem nem mesmo notar. No momento
    137 em que você descobrir isso, você pode tê-los usado por meses, e refazer o
    138 trabalho pode levar mais meses. Você pode dizer: “É muito trabalho para
    139 recomeçar”. Então, seu programa terá caído na Armadilha do Java; será
    140 inutilizável no mundo livre.
    141 </p>
    142 
    143 <p>
    144   A maneira confiável de evitar a Armadilha do Java é ter apenas uma
    145 implementação livre do Java em seu sistema. Então, se você usar um recurso
    146 ou biblioteca Java que o software livre ainda não possui suporte, você
    147 descobrirá imediatamente e poderá reescrever esse código imediatamente.
    148 </p>
    149 
    150 <p>
    151   A Sun continua a desenvolver bibliotecas “padrão” adicionais para o Java e
    152 quase todas elas são não livres; em muitos casos, até mesmo a especificação
    153 de uma biblioteca é um segredo comercial, e a última licença da Sun para
    154 essas especificações proíbe o lançamento de qualquer coisa menos que uma
    155 implementação completa da especificação. (Veja <a
    156 href="https://jcp.org/aboutJava/communityprocess/JSPA2.pdf"> Java
    157 Specification Participation Agreement</a> e <a
    158 href="https://jcp.org/aboutJava/communityprocess/final/jsr129/j2me_pb-1_0-fr-spec-license.html">
    159 J2ME&trade; Personal Basis Profile Specification</a> para exemplos.)
    160 </p>
    161 
    162 <p>
    163   Felizmente, essa licença de especificação permite lançar uma implementação
    164 como software livre; outros que recebem a biblioteca podem ter permissão
    165 para alterá-la e não são obrigados a aderir à especificação. Mas o requisito
    166 tem o efeito de proibir o uso de um modelo de desenvolvimento colaborativo
    167 para produzir a implementação livre. O uso desse modelo implicaria a
    168 publicação de versões incompletas, algo que aqueles que leram a
    169 especificação não têm permissão para fazer.
    170 </p>
    171 
    172 <p>
    173   Nos primeiros dias do movimento do software livre, era impossível evitar
    174 depender de programas não livres. Antes de termos o compilador C GNU, todo
    175 programa C (livre ou não) dependia de um compilador C não livre. Antes de
    176 termos a biblioteca GNU C, todo programa dependia de uma biblioteca C não
    177 livre. Antes de termos o Linux, o primeiro kernel livre, todo programa
    178 dependia de um kernel não livre. Antes de termos o BASH, todo script de
    179 shell tinha que ser interpretado por um shell não livre. Era inevitável que
    180 nossos primeiros programas fossem inicialmente prejudicados por essas
    181 dependências, mas aceitamos isso porque nosso plano incluía salvá-los
    182 posteriormente. Nosso objetivo geral, um sistema operacional GNU de
    183 hospedagem própria, incluía substituições livre para todas essas
    184 dependências; Se alcançássemos a meta, todos os nossos programas seriam
    185 resgatados. Assim aconteceu: com o sistema GNU/Linux, agora podemos usar
    186 esses programas em plataformas livres.
    187 </p>
    188 
    189 <p>
    190   A situação é diferente hoje. Agora temos sistemas operacionais poderosos e
    191 livres e muitas ferramentas de programação livres. Qualquer que seja o
    192 trabalho que você queira fazer, você pode fazê-lo em uma plataforma livre;
    193 não há necessidade de aceitar uma dependência não livre, mesmo que
    194 temporariamente. A principal razão pela qual as pessoas caem na armadilha
    195 hoje é porque elas não estão pensando nisso. A solução mais fácil para o
    196 problema é ensinar as pessoas a reconhecê-lo e não cair nele.
    197 </p>
    198 
    199 <p>
    200   Para manter seu código Java protegido da Armadilha do Java, instale um
    201 ambiente de desenvolvimento Java livre e use-o. De forma mais genérica, seja
    202 qual for a linguagem que você usa, mantenha os olhos abertos e verifique o
    203 status de programas dos quais o seu código depende. A maneira mais fácil de
    204 verificar se um programa é livre é procurá-lo no <a
    205 href="https://www.fsf.org/directory">Diretório de Software Livre</a>. Se um
    206 programa não estiver no diretório, você poderá verificar sua(s) licença(s)
    207 com a <a href="/licenses/license-list.html">lista de licenças de software
    208 livre</a>.
    209 </p>
    210 
    211 <p>
    212   Estamos tentando resgatar os programas Java que caíram nessa armadilha,
    213 portanto, se você gosta da linguagem Java, nós o convidamos a ajudar no
    214 desenvolvimento do GNU Classpath. Experimentar seus programas com o GCJ
    215 Compiler e o GNU Classpath, e relatar quaisquer problemas que você encontre
    216 em classes já implementadas, também é útil. No entanto, terminar o GNU
    217 Classpath levará tempo; se mais bibliotecas não livres continuarem sendo
    218 adicionadas, talvez nunca tenhamos todas as mais recentes. Então, por favor,
    219 não coloque seu software livre em grilhões. Quando você escrever um programa
    220 hoje, escreva-o para funcionar em instalações livres desde o início.
    221 </p>
    222 
    223 <h3 class="footnote">Veja também:</h3>
    224 <p><a href="/philosophy/sun-in-night-time.html">O curioso incidente da Sun no
    225 período noturno</a></p>
    226 </div>
    227 
    228 <div class="translators-notes">
    229 
    230 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.-->
    231  </div>
    232 </div>
    233 
    234 <!-- for id="content", starts in the include above -->
    235 <!--#include virtual="/server/footer.pt-br.html" -->
    236 <div id="footer" role="contentinfo">
    237 <div class="unprintable">
    238 
    239 <p>Envie perguntas em geral sobre a FSF e o GNU para <a
    240 href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>. Também existem <a
    241 href="/contact/">outros meios de contatar</a> a FSF. Links quebrados e
    242 outras correções ou sugestões podem ser enviadas para <a
    243 href="mailto:webmasters@gnu.org">&lt;webmasters@gnu.org&gt;</a>.</p>
    244 
    245 <p>
    246 <!-- TRANSLATORS: Ignore the original text in this paragraph,
    247         replace it with the translation of these two:
    248 
    249         We work hard and do our best to provide accurate, good quality
    250         translations.  However, we are not exempt from imperfection.
    251         Please send your comments and general suggestions in this regard
    252         to <a href="mailto:web-translators@gnu.org">
    253 
    254         &lt;web-translators@gnu.org&gt;</a>.</p>
    255 
    256         <p>For information on coordinating and contributing translations of
    257         our web pages, see <a
    258         href="/server/standards/README.translations.html">Translations
    259         README</a>. -->
    260 A equipe de traduções para o português brasileiro se esforça para oferecer
    261 traduções precisas e de boa qualidade, mas não estamos isentos de erros. Por
    262 favor, envie seus comentários e sugestões em geral sobre as traduções para
    263 <a
    264 href="mailto:web-translators@gnu.org">&lt;web-translators@gnu.org&gt;</a>.
    265 </p><p>Consulte o <a href="/server/standards/README.translations.html">Guia
    266 para as traduções</a> para mais informações sobre a coordenação e a
    267 contribuição com traduções das páginas deste site.</p>
    268 </div>
    269 
    270 <!-- Regarding copyright, in general, standalone pages (as opposed to
    271      files generated as part of manuals) on the GNU web server should
    272      be under CC BY-ND 4.0.  Please do NOT change or remove this
    273      without talking with the webmasters or licensing team first.
    274      Please make sure the copyright date is consistent with the
    275      document.  For web pages, it is ok to list just the latest year the
    276      document was modified, or published.
    277      
    278      If you wish to list earlier years, that is ok too.
    279      Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
    280      years, as long as each year in the range is in fact a copyrightable
    281      year, i.e., a year in which the document was published (including
    282      being publicly visible on the web or in a revision control system).
    283      
    284      There is more detail about copyright years in the GNU Maintainers
    285      Information document, www.gnu.org/prep/maintain. -->
    286 <p>Copyright &copy; 2004, 2010, 2015, 2021 Free Software Foundation, Inc.</p>
    287 
    288 <p>Esta página está licenciada sob uma licença <a rel="license"
    289 href="http://creativecommons.org/licenses/by-nd/4.0/deed.pt_BR">Creative
    290 Commons Atribuição-SemDerivações 4.0 Internacional</a>.</p>
    291 
    292 <!--#include virtual="/server/bottom-notes.pt-br.html" -->
    293 <div class="translators-credits">
    294 
    295 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
    296 Traduzido por: Rafael Fontenelle <a
    297 href="mailto:rafaelff@gnome.org">&lt;rafaelff@gnome.org&gt;</a>, 2019-2021.</div>
    298 
    299 <p class="unprintable"><!-- timestamp start -->
    300 Última atualização:
    301 
    302 $Date: 2021/10/01 17:39:49 $
    303 
    304 <!-- timestamp end -->
    305 </p>
    306 </div>
    307 </div>
    308 <!-- for class="inner", starts in the banner include -->
    309 </body>
    310 </html>