taler-merchant-demos

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

java-trap.html (15014B)


      1 <!--#set var="ENGLISH_PAGE" value="/philosophy/java-trap.en.html" -->
      2 
      3 <!--#include virtual="/server/header.it.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>Libero ma incatenato - La trappola Java - Progetto GNU - Free Software
     11 Foundation</title>
     12 
     13 <!--#include virtual="/philosophy/po/java-trap.translist" -->
     14 <!--#include virtual="/server/banner.it.html" -->
     15 <!--#include virtual="/philosophy/ph-breadcrumb.it.html" -->
     16 <!--GNUN: OUT-OF-DATE NOTICE-->
     17 <!--#include virtual="/server/top-addendum.it.html" -->
     18 <div class="article reduced-width">
     19 
     20 <h2>Libero ma incatenato - La trappola Java</h2>
     21 
     22 <address class="byline">di <a href="https://www.stallman.org/">Richard Stallman</a></address>
     23 
     24 <div class="emph-box" style="background: none">
     25 <h3 class="footnote">Nota</h3>
     26 <p>Dalla prima pubblicazione di questo articolo le cose sono cambiate: Sun (ora
     27 parte di Oracle) ha <a
     28 href="https://www.fsf.org/news/fsf-welcomes-gpl-java.html">rilasciato sotto
     29 licenza GNU GPL</a> la maggior parte del suo codice sorgente per la
     30 piattaforma Java, ed ora esiste un ambiente di sviluppo Java libero. Quindi
     31 il linguaggio Java in sé non è più una trappola.</p>
     32 
     33 <p>Tuttavia bisogna prestare attenzione quando lo si usa, perché non tutte le
     34 piattaforme Java sono libere. Sun continua a distribuire una piattaforma
     35 Java in forma binaria che non è software libero, e così fanno anche altri.</p>
     36 
     37 <p>L'ambiente Java libero si chiama IcedTea e comprende il codice sorgente
     38 rilasciato da Sun. Dovete quindi usare IcedTea, che è incluso in molte
     39 distribuzioni GNU/Linux, anche se alcune includono anche piattaforme Java
     40 non libere. (Nota di ottobre 2015: in molte distribuzioni GNU/Linux questa
     41 implementazione libera di Java è denominata OpenJDK).</p>
     42 
     43 <p>Per essere certi che i vostri programmi Java si possano utilizzare
     44 correttamente un un ambiente libero, dovete svilupparli con IcedTea. In
     45 teoria le piattaforme Java dovrebbero essere compatibili fra loro, ma la
     46 compatibilità non è perfetta al 100%.</p>
     47 
     48 <p>Inoltre ci sono molti programmi non liberi con “Java” nel nome, some JavaFX,
     49 e ci sono pacchetti Java non liberi che possono sembrare comodi ma che sono
     50 da rifiutare. Quindi dovete controllare la licenza di qualsiasi pacchetto
     51 vogliate usare. Se usate Swing, accertatevi di usare la versione libera, che
     52 è inclusa in IcedTea. (Nota di ottobre 2015: è ora disponibile un sostituto
     53 libero di JavaFX che si chiama OpenJFX).</p>
     54 
     55 <p>A parte il caso specifico di Java, il problema generale qui descritto rimane
     56 importante, perché qualsiasi libreria o piattaforma di sviluppo non libera
     57 può creare problemi simili. La storia di Java ci deve servire di lezione per
     58 evitare trappole simili in futuro.</p>
     59 
     60 <p>Vedere anche: <a href="/philosophy/javascript-trap.html"> La trappola
     61 JavaScript</a>.</p>
     62 </div>
     63 <hr class="no-display" />
     64 
     65 <p><em>12 aprile 2004</em></p>
     66 
     67 <p>
     68   Se un vostro programma è software libero è, in linea di principio,
     69 accettabile, ma c'è una trappola a cui dovete stare attenti. Il vostro
     70 programma, benché libero di per sé, può subire restrizioni a causa di
     71 software non libero da cui dipende. Dato che l'esempio classico di questo
     72 problema è oggi quello dei programmi Java, diamo a questo problema il nome
     73 di “trappola Java”.
     74 </p>
     75 
     76 <p>
     77   Un programma è software libero se i suoi utenti hanno alcune libertà
     78 cruciali. Per farla breve, intendiamo: la libertà di eseguire il programma,
     79 la libertà di studiare e modificare il codice sorgente, la libertà di
     80 redistribuire il codice sorgente e il programma in formato binario, e la
     81 libertà di pubblicare versioni migliorate. (Si veda <a
     82 href="/philosophy/free-sw.html">la definizione di software libero</a>). È
     83 esclusivamente la licenza a determinare se uno specifico programma, fornito
     84 in forma di codice sorgente, sia o meno software libero.
     85 </p>
     86 
     87 <p>
     88   È tutto un altro problema, invece, determinare se il programma possa essere
     89 usato nel Mondo Libero, da persone intenzionate a vivere nella
     90 libertà. Questo non è determinato dalla sola licenza del programma, perché
     91 nessun programma funziona da solo: ogni programma dipende da altri
     92 programmi. Ad esempio, un programma deve essere compilato o interpretato,
     93 perciò dipende da un compilatore o da un interprete; se compilato in
     94 bytecode, ha bisogno di un interprete bytecode; inoltre ha bisogno di
     95 librerie per essere eseguito, e a sua volta potrebbe chiamare altri
     96 programmi che girano in altri processi. Tutti questi programmi si chiamano
     97 dipendenze: le dipendenze possono essere indispensabili per l'esecuzione di
     98 un programma, oppure possono essere necessarie solo per alcune funzioni. In
     99 ogni modo un programma non è pienamente funzionale senza le sue dipendenze.
    100 </p>
    101 
    102 <p>
    103   Se alcune delle dipendenze di un programma non sono libere, quel programma è
    104 inutilizzabile in tutto o in parte su sistemi completamente liberi, non è
    105 utilizzabile nel Mondo Libero. Certo, potremmo comunque ridistribuirlo e
    106 copiarlo sui nostri computer, ma non serve a molto se è impossibile
    107 eseguirlo. Quel programma, pur essendo software libero, è di fatto
    108 incatenato ai suoi requisiti non liberi.
    109 </p>
    110 
    111 <p>
    112   Questo problema può manifestarsi in ogni tipo di software, in ogni
    113 linguaggio. Per esempio un programma che funziona solo su Microsoft Windows
    114 è chiaramente inutile nel Mondo Libero. Ma anche il software per GNU/Linux
    115 può essere inutile se richiede software non libero: in passato Motif (prima
    116 che avessimo LessTif) e Qt (prima che i suoi sviluppatori lo rendessero
    117 software libero) hanno causato problemi del genere. Molte schede grafiche 3D
    118 funzionano al meglio solo con driver non liberi, altra tipica situazione
    119 problematica. Ma la causa principale di questo problema di questi tempi è
    120 Java, perché chi scrive software libero spesso trova Java attraente:
    121 accecati dalla loro attrazione per questo linguaggio, non badano alla
    122 questione dei requisiti e cadono nella trappola Java.
    123 </p>
    124 
    125 <p>
    126   L'implementazione di Java realizzata da Sun non è libera. Anche Blackdown
    127 non è libera, è un adattamento di codice proprietario di Sun. E anche le
    128 librerie Java standard non sono libere. Implementazioni libere di Java
    129 esistono (ad esempio <a
    130 href="https://objectcomputing.com/resources/publications/sett/january-2003-gcj-the-gnu-compiler-for-java">GCJ</a>,
    131 il compilatore GNU per Java e <a href="/software/classpath">GNU
    132 Classpath</a>), ma non supportano ancora tutte le caratteristiche; stiamo
    133 ancora inseguendo.
    134 </p>
    135 
    136 <p>
    137   Se sviluppate un programma Java sulla piattaforma Java di Sun, potreste
    138 finire per usare caratteristiche esclusive di Sun senza nemmeno
    139 accorgervene, e prima di scoprirlo potreste averle usate per mesi, al punto
    140 che sarebbero necessari mesi per rifare il lavoro. Potreste concludere che è
    141 troppo tardi per ricominciare, e a quel punto il vostro programma sarà
    142 caduto nella trappola Java: sarà inutilizzabile nel Mondo Libero.
    143 </p>
    144 
    145 <p>
    146   L'unico modo affidabile di evitare la trappola Java è quello di avere
    147 esclusivamente un'implementazione libera di Java sul vostro sistema: in
    148 questo modo vi accorgerete immediatamente se state usando una libreria o una
    149 caratteristica di Java che il software libero ancora non supporta, e potrete
    150 riscrivere quel codice subito.
    151 </p>
    152 
    153 <p>
    154   Sun continua a sviluppare nuove librerie aggiuntive Java “standard”, quasi
    155 tutte non libere: in molti casi sono un segreto commerciale anche le
    156 specifiche di una libreria, e l'ultima licenza di Sun per queste specifiche
    157 proibisce di distribuire qualsiasi cosa diversa da una piena implementazione
    158 delle specifiche: si vedano, ad esempio, <a
    159 href="http://jcp.org/aboutJava/communityprocess/JSPA2.pdf">“Java
    160 Specification Participation Agreement”</a> e <a
    161 href="http://jcp.org/aboutJava/communityprocess/final/jsr129/j2me_pb-1_0-fr-spec-license.html">“J2ME&trade;
    162 Personal Basis Profile Specification”</a>.
    163 </p>
    164 
    165 <p>
    166   Per fortuna, quella licenza permette di distribuire un'implementazione come
    167 software libero; altri che ricevono la libreria possono essere autorizzati a
    168 cambiarla e non devono necessariamente aderire alla specifica. Ma la
    169 richiesta ha l'effetto di proibire l'uso di un modello di sviluppo
    170 cooperativo per produrre l'implementazione libera. L'uso di quel modello
    171 costringerebbe alla pubblicazione di versioni incomplete, cosa che quelli
    172 che hanno letto la specifica non possono fare.
    173 </p>
    174 
    175 <p>
    176   Agli albori del movimento del Software Libero era inevitabile dipendere da
    177 programmi non liberi. Prima che avessimo il compilatore C GNU, ogni
    178 programma in C (libero o no) richiedeva un compilatore C non libero. Prima
    179 che avessimo la libreria GNU C, ogni programma dipendeva da una libreria C
    180 non libera. Prima che avessimo Linux (il primo kernel libero) ogni programma
    181 dipendeva da un kernel non libero. Prima che avessimo BASH, ogni script per
    182 shell doveva essere interpretato da una shell non libera. Era inevitabile
    183 che i nostri programmi all'inizio avessero queste dipendenze, ma abbiamo
    184 accettato questa situazione perché il nostro progetto prevedeva di rimediare
    185 in seguito: il nostro obiettivo, un sistema GNU completo, comprendeva
    186 alternative libere per tutte quelle dipendenze; una volta raggiunto lo scopo
    187 avremmo recuperato tutti i nostri programmi. E così è successo: col sistema
    188 GNU/Linux, ora possiamo eseguire tutti questi programmi su piattaforme
    189 libere.
    190 </p>
    191 
    192 <p>
    193   Oggi la situazione è diversa: ora abbiamo potenti sistemi operativi liberi e
    194 molti strumenti liberi per la programmazione. Qualsiasi cosa vogliate fare,
    195 potete farla su una piattaforma libera e non c'è bisogno di accettare una
    196 dipendenza non libera, nemmeno provvisoriamente. Il principale motivo per
    197 cui alcuni oggi cadono nella trappola è semplicemente che non ci pensano; la
    198 soluzione più facile al problema è insegnare alla gente a riconoscere la
    199 trappola e a non cascarci.
    200 </p>
    201 
    202 <p>
    203   Per tenere il vostro codice Java al sicuro dalla Trappola Java, installate e
    204 usate un ambiente di sviluppo libero per Java. In generale, qualsiasi
    205 linguaggio usiate, tenete gli occhi aperti, e accertatevi dello stato libero
    206 dei programmi da cui dipende il vostro codice. Il modo più semplice di
    207 verificare che un programma è libero è quello di cercarlo nell'<a
    208 href="https://www.fsf.org/directory">Elenco del Software Libero</a>. Se un
    209 programma non è in elenco, potete comunque cercare la sua licenza nella <a
    210 href="/licenses/license-list.html">lista delle licenze software libere</a>.
    211 </p>
    212 
    213 <p>
    214   Stiamo cercando di salvare i programmi Java intrappolati, quindi se vi piace
    215 Java per favore aiutate lo sviluppo di GNU Classpath. E' utile anche provare
    216 i vostri programmi con il compilatore GCJ e GNU Classpath, e comunicare gli
    217 eventuali problemi che riscontrate nelle classi già implementate. Comunque,
    218 ci vorrà tempo per finire GNU Classpath; se continueranno ad essere aggiunte
    219 altre librerie non libere, potremmo non avere mai le ultime versioni. Quindi
    220 per favore non incatenate il vostro software libero: se scrivete
    221 un'applicazione ora, fatelo su fondamenta libere.
    222 </p>
    223 
    224 <h3 class="footnote">Vedere anche:</h3>
    225 <p><a href="/philosophy/sun-in-night-time.html">The Curious Incident of Sun in
    226 the Night-Time</a></p>
    227 </div>
    228 
    229 <div class="translators-notes">
    230 
    231 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.-->
    232  </div>
    233 </div>
    234 
    235 <!-- for id="content", starts in the include above -->
    236 <!--#include virtual="/server/footer.it.html" -->
    237 <div id="footer" role="contentinfo">
    238 <div class="unprintable">
    239 
    240 <p>Per informazioni su FSF e GNU rivolgetevi, possibilmente in inglese, a <a
    241 href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>. Ci sono anche <a
    242 href="/contact/">altri modi di contattare</a> la FSF. Inviate segnalazioni
    243 di link non funzionanti e altri suggerimenti relativi alle pagine web a <a
    244 href="mailto:webmasters@gnu.org">&lt;webmasters@gnu.org&gt;</a>.</p>
    245 
    246 <p>
    247 <!-- TRANSLATORS: Ignore the original text in this paragraph,
    248         replace it with the translation of these two:
    249 
    250         We work hard and do our best to provide accurate, good quality
    251         translations.  However, we are not exempt from imperfection.
    252         Please send your comments and general suggestions in this regard
    253         to <a href="mailto:web-translators@gnu.org">
    254 
    255         &lt;web-translators@gnu.org&gt;</a>.</p>
    256 
    257         <p>For information on coordinating and contributing translations of
    258         our web pages, see <a
    259         href="/server/standards/README.translations.html">Translations
    260         README</a>. -->
    261 Le traduzioni italiane sono effettuate ponendo la massima attenzione ai
    262 dettagli e alla qualità, ma a volte potrebbero contenere imperfezioni. Se ne
    263 riscontrate, inviate i vostri commenti e suggerimenti riguardo le traduzioni
    264 a <a
    265 href="mailto:web-translators@gnu.org">&lt;web-translators@gnu.org&gt;</a>
    266 oppure contattate direttamente il <a
    267 href="http://savannah.gnu.org/projects/www-it/">gruppo dei traduttori
    268 italiani</a>.<br/>Per informazioni su come gestire e inviare traduzioni
    269 delle nostre pagine web consultate la <a
    270 href="/server/standards/README.translations.html">Guida alle traduzioni</a>.</p>
    271 </div>
    272 
    273 <!-- Regarding copyright, in general, standalone pages (as opposed to
    274      files generated as part of manuals) on the GNU web server should
    275      be under CC BY-ND 4.0.  Please do NOT change or remove this
    276      without talking with the webmasters or licensing team first.
    277      Please make sure the copyright date is consistent with the
    278      document.  For web pages, it is ok to list just the latest year the
    279      document was modified, or published.
    280      
    281      If you wish to list earlier years, that is ok too.
    282      Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
    283      years, as long as each year in the range is in fact a copyrightable
    284      year, i.e., a year in which the document was published (including
    285      being publicly visible on the web or in a revision control system).
    286      
    287      There is more detail about copyright years in the GNU Maintainers
    288      Information document, www.gnu.org/prep/maintain. -->
    289 <p>Copyright &copy; 2004, 2010, 2015, 2021 Richard Stallman</p>
    290 
    291 <p>Questa pagina è distribuita secondo i termini della licenza <a rel="license"
    292 href="http://creativecommons.org/licenses/by-nd/4.0/deed.it">Creative
    293 Commons Attribuzione - Non opere derivate 4.0 Internazionale</a> (CC BY-ND
    294 4.0).</p>
    295 
    296 <!--#include virtual="/server/bottom-notes.it.html" -->
    297 <div class="translators-credits">
    298 
    299 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
    300 Tradotto originariamente da Andrea Pescetti.</div>
    301 
    302 <p class="unprintable"><!-- timestamp start -->
    303 Ultimo aggiornamento:
    304 
    305 $Date: 2021/10/16 10:33:12 $
    306 
    307 <!-- timestamp end -->
    308 </p>
    309 </div>
    310 </div>
    311 <!-- for class="inner", starts in the banner include -->
    312 </body>
    313 </html>