taler-merchant-demos

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

java-trap.html (15918B)


      1 <!--#set var="ENGLISH_PAGE" value="/philosophy/java-trap.en.html" -->
      2 
      3 <!--#include virtual="/server/header.fr.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>Libre mais entravé - le piège Java - Projet GNU - Free Software Foundation</title>
     11 
     12 <!--#include virtual="/philosophy/po/java-trap.translist" -->
     13 <!--#include virtual="/server/banner.fr.html" -->
     14 <!--#include virtual="/philosophy/ph-breadcrumb.fr.html" -->
     15 <!--GNUN: OUT-OF-DATE NOTICE-->
     16 <!--#include virtual="/server/top-addendum.fr.html" -->
     17 <div class="article reduced-width">
     18 
     19 <h2>Libre mais entravé - le piège Java</h2>
     20 
     21 <address class="byline">par <a href="https://www.stallman.org/">Richard Stallman</a></address>
     22 
     23 <div class="emph-box" style="background: none">
     24 <h3 class="footnote">Note préliminaire</h3>
     25 <p>Depuis la parution de cet article, Sun (qui fait maintenant partie d'Oracle)
     26 a <a href="https://www.fsf.org/news/fsf-welcomes-gpl-java.html">fait passer
     27 l'essentiel de l'implémentation de référence de sa plateforme Java sous la
     28 licence publique générale GNU</a> ; il y a donc maintenant un environnement
     29 de développement libre pour Java. Ainsi le langage Java n'est plus un piège.</p>
     30 
     31 <p>Vous devez faire attention, cependant, parce que toutes les plateformes Java
     32 ne sont pas libres. Sun continue à distribuer une plateforme Java exécutable
     33 qui n'est pas libre et d'autres sociétés font de même.</p>
     34 
     35 <p>L'environnement libre pour Java s'appelle IcedTea ; le code source libéré
     36 par Sun y est inclus. C'est donc cet environnement que vous devez
     37 utiliser. Beaucoup de distributions GNU/Linux sont fournies avec IcedTea,
     38 mais certaines contiennent des plateformes Java non libres. (Note ajoutée en
     39 octobre 2015 : l'implémentation libre de Java s'appelle OpenJDK dans
     40 beaucoup de distributions GNU/Linux.)</p>
     41 
     42 <p>Pour vous assurer de manière fiable que votre programme Java s'exécutera
     43 correctement dans un environnement libre, vous devez le développer avec
     44 IcedTea. Théoriquement les plateformes Java devraient être compatibles, mais
     45 elles ne le sont pas à 100%.</p>
     46 
     47 <p>De plus, il y a des programmes non libres dont le nom contient « Java »,
     48 comme JavaFX, et il y a des paquets Java non libres qui pourraient vous
     49 tenter mais que vous devez rejeter. Donc vérifiez les licences de tout
     50 paquet que vous envisagez d'utiliser. Si vous utilisez Swing, faites en
     51 sorte d'utiliser la version libre, qui est fournie avec IcedTea. (Note
     52 ajoutée en octobre 2015 : un programme libre remplaçant JavaFX a été publié
     53 sous le nom d'OpenJFX.)</p>
     54 
     55 <p>Mis à part ces problèmes spécifiques à Java, le problème général décrit ici
     56 demeure important, car toute bibliothèque ou plateforme de programmation non
     57 libre peut causer un problème similaire. Nous devons retenir la leçon de
     58 l'histoire de Java de manière à éviter d'autres pièges à l'avenir.</p>
     59 
     60 <p>Veuillez aussi consulter : <a href="/philosophy/javascript-trap.html">Le
     61 piège JavaScript</a>.</p>
     62 </div>
     63 <hr class="no-display" />
     64 
     65 <p><em>Le 12 avril 2004</em></p>
     66 
     67 <p>
     68   Si votre programme est un logiciel libre, il est éthique par nature, mais il
     69 y a un piège dont il faut se méfier. Bien qu'intrinsèque, la liberté de
     70 votre programme peut être restreinte à cause de logiciels non libres dont il
     71 dépend. Comme c'est avec les programmes Java que ce problème est aujourd'hui
     72 le plus évident, nous l'avons nommé le « piège Java ».
     73 </p>
     74 
     75 <p>
     76   Un programme est un logiciel libre si ses utilisateurs possèdent certaines
     77 libertés fondamentales. En gros, il s'agit de : la liberté d'exécuter le
     78 programme, la liberté d'en étudier et modifier le code source, la liberté
     79 d'en redistribuer les fichiers source et binaires, et la liberté d'en
     80 publier des versions améliorées (voir la <a
     81 href="/philosophy/free-sw.html">définition du logiciel libre</a>). Qu'un
     82 programme donné soit un logiciel libre ne dépend que de la signification de
     83 sa licence.
     84 </p>
     85 
     86 <p>
     87   Que le programme puisse être utilisé dans le monde du Libre, utilisé par des
     88 personnes qui entendent vivre en toute liberté, est une question plus
     89 compliquée. La seule licence du programme ne détermine pas cela, car aucun
     90 programme ne fonctionne en isolement total. Chaque programme dépend d'autres
     91 programmes. Par exemple, il nécessite d'être compilé ou interprété, il
     92 dépend donc d'un compilateur ou d'un interpréteur. S'il est compilé en
     93 pseudo-code binaire, il dépend d'un interpréteur de pseudo-code. Qui plus
     94 est, pour s'exécuter il a besoin de bibliothèques et peut faire appel à
     95 d'autres programmes qui s'exécutent sous d'autres processus. Tous ces
     96 programmes sont des dépendances. Ces dernières peuvent être totalement
     97 indispensables à l'exécution du programme, ou juste nécessaires à certaines
     98 de ses fonctionnalités. D'une façon ou d'une autre, tout ou partie du
     99 programme ne peut pas fonctionner sans elles.
    100 </p>
    101 
    102 <p>
    103   Que certaines des dépendances d'un programme ne soient pas libres signifie
    104 que tout ou partie du programme ne peut s'exécuter sur un système totalement
    105 libre – il est inutilisable dans le monde du Libre. Bien sûr, nous pouvons
    106 distribuer le programme et en avoir des copies sur nos machines, mais cela
    107 ne sert pas à grand-chose s'il ne s'exécute pas. Ce programme est un
    108 logiciel libre, mais il est en fait entravé par des dépendances non libres.
    109 </p>
    110 
    111 <p>
    112   Ce problème peut se produire avec n'importe quel type de logiciel, n'importe
    113 quel langage. Par exemple, un programme libre qui ne fonctionne que sous
    114 Microsoft Windows est parfaitement inutilisable dans le monde du Libre. Mais
    115 des logiciels qui tournent sous GNU/Linux peuvent aussi être inutilisable
    116 lorsqu'ils dépendent d'autres logiciels non libres. Par le passé, Motif
    117 (avant que nous ayons LessTif) et Qt (avant que ses développeurs n'en
    118 fassent un logiciel libre) étaient les causes principales de ce problème. La
    119 plupart des cartes vidéo 3D ne fonctionnent pleinement qu'avec des pilotes
    120 non libres, ceci pose également un problème. Mais en ce moment, la cause
    121 principale de ce problème est Java, parce que certaines personnes qui
    122 écrivent des logiciels libres pense que le langage Java est sexy. Aveuglés
    123 par l'attrait du langage, ils sous-estiment le problème des dépendances et
    124 tombent dans le piège Java.
    125 </p>
    126 
    127 <p>
    128   L'implémentation Java de Sun est non libre. Les bibliothèques Java standard
    129 sont aussi non libres ; c'est une adaptation du code privateur
    130 (propriétaire) de Sun. Les bibliothèques de base de Java sont non libres
    131 aussi. Bien sûr, nous disposons d'implémentations libres de Java, comme le
    132 <a
    133 href="https://objectcomputing.com/resources/publications/sett/january-2003-gcj-the-gnu-compiler-for-java">compilateur
    134 GNU pour Java</a> (GCJ) et <a href="/software/classpath">GNU Classpath</a>,
    135 mais ils ne gèrent pas encore toutes les fonctionnalités. Nous sommes encore
    136 en train de rattraper le retard.
    137 </p>
    138 
    139 <p>
    140   Si vous développez un programme Java sur la plateforme Java de Sun, vous
    141 êtes voué à utiliser des fonctionnalités Sun exclusives sans même vous en
    142 rendre compte. Vous pourriez les avoir utilisées pendant des mois avant de
    143 le découvrir et reprendre la tâche pourrait prendre plus de mois
    144 encore. Vous pourriez vous dire : « Recommencer demande trop de travail. »
    145 Alors votre programme sera tombé dans le piège Java ; il sera inutilisable
    146 dans le monde du Libre.
    147 </p>
    148 
    149 <p>
    150   Le truc fiable pour éviter le piège Java est de n'avoir qu'une
    151 implémentation libre de Java sur votre système. Ainsi, si vous utilisez une
    152 fonctionnalité ou une bibliothèque que le logiciel libre ne supporte pas
    153 encore, vous vous en rendrez compte immédiatement et vous pourrez réécrire
    154 ce code tout de suite.
    155 </p>
    156 
    157 <p>
    158   Sun continue de créer des bibliothèques « de base » supplémentaires, presque
    159 toutes non libres ; dans bien des cas, même les spécifications de la
    160 bibliothèque sont des secrets de fabrication. De plus, la dernière licence
    161 de Sun concernant ces spécifications interdit la publication d'une mise en
    162 œuvre partielle de ces dernières (voir par exemple <a
    163 href="https://jcp.org/aboutJava/communityprocess/JSPA2.pdf"><i>Java
    164 Specification Participation Agreement</i></a> et <a
    165 href="https://jcp.org/aboutJava/communityprocess/final/jsr129/j2me_pb-1_0-fr-spec-license.html"><i>J2ME&trade;
    166 Personal Basis Profile Specification</i></a>).
    167 </p>
    168 
    169 <p>
    170   Heureusement, la licence de ces spécifications permet d'en publier une mise
    171 en œuvre libre ; ceux qui recevraient une telle bibliothèque peuvent être
    172 autorisés à la modifier et ne sont pas tenus d'en suivre les
    173 spécifications. Mais cette clause a pour effet d'interdire l'utilisation
    174 d'un modèle de développement collaboratif pour produire cette mise en œuvre
    175 libre. L'utilisation d'un tel modèle impliquerait la parution de versions
    176 incomplètes, ce qui est interdit aux personnes ayant lu les spécifications.
    177 </p>
    178 
    179 <p>
    180   Aux premiers jours du mouvement du logiciel libre, il était impossible de ne
    181 pas dépendre de programmes non libres. Avant que nous ne disposions du
    182 compilateur C de GNU, tous les programmes C (qu'ils fussent libres ou non)
    183 dépendaient d'un compilateur C non libre. Avant que nous ne disposions de la
    184 bibliothèque C de GNU, tous les programmes dépendaient d'une bibliothèque C
    185 non libre. Avant que nous ne disposions de Linux, le premier noyau libre,
    186 tous les programmes dépendaient d'un noyau non libre. Avant que nous ne
    187 disposions de BASH, chaque script shell devait être exécuté par un
    188 interpréteur non libre. Il était inévitable que nos premiers programmes
    189 soient initialement sous le joug de ces dépendances, mais ceci était
    190 acceptable car leur sauvetage ultérieur faisait partie de notre plan. Notre
    191 objectif global, un système d'exploitation autonome, comprenait des
    192 remplacements libres à toutes ces dépendances ; si nous atteignions ce but,
    193 tous nos programmes seraient sauvés. Et c'est ce qui se produisit : avec le
    194 système GNU/Linux, nous pouvons à présent exécuter ces programmes sur des
    195 plateformes libres.
    196 </p>
    197 
    198 <p>
    199   La situation est différente aujourd'hui. Nous disposons à présent de
    200 systèmes d'exploitation puissants et de nombreux outils de programmation
    201 libres. Quelle que soit la tâche que vous ayez à exécuter, vous pouvez le
    202 faire sur une plateforme libre ; il n'est plus nécessaire, même
    203 temporairement, d'accepter des dépendances non libres. À ce jour, la raison
    204 principale pour laquelle les gens tombent dans le piège est que cela ne leur
    205 vient pas à l'esprit. La plus simple des solutions concernant le piège Java
    206 est d'apprendre aux gens à ne pas tomber dedans.
    207 </p>
    208 
    209 <p>
    210   Afin de protéger votre code Java du piège Java, installez un environnement
    211 de développement Java libre et utilisez-le. De façon générale, quel que soit
    212 le langage que vous utilisiez, ouvrez l'œil et assurez-vous du statut libre
    213 des programmes dont dépend le code de vos programmes. La façon la plus
    214 simple de vérifier si ce programme est libre est de s'assurer qu'il possède
    215 une entrée dans le <a href="https://www.fsf.org/directory">répertoire du
    216 logiciel libre</a>. Si un programme n'est pas dans ce répertoire, vous
    217 pouvez vérifier si la licence qui l'accompagne est dans la <a
    218 href="/licenses/license-list.html">liste des licences de logiciel libre</a>.
    219 </p>
    220 
    221 <p>
    222   Nous sommes en train d'essayer de sauver les programmes Java piégés, alors
    223 si vous aimez le langage Java, nous vous invitons à nous aider à développer
    224 GNU Classpath. Vous pouvez aussi aider en essayant vos programmes avec le
    225 compilateur GCJ et GNU Classpath. Toutefois, cela prendra du temps pour
    226 terminer GNU Classpath ; si d'autres bibliothèques non libres continuent à y
    227 être ajoutées, il se peut que nous n'ayons jamais les plus récentes. Alors
    228 s'il vous plaît, ne placez pas d'entraves sur vos logiciels libres. Faites
    229 en sorte que l'application que vous écrivez en ce moment soit conçue pour
    230 fonctionner dans un environnement libre dès le départ.
    231 </p>
    232 
    233 <h3 class="footnote">Voir également :</h3>
    234 <p><a href="/philosophy/sun-in-night-time.html">Le curieux non-événement de Sun
    235 dans la pénombre</a></p>
    236 </div>
    237 
    238 <div class="translators-notes">
    239 
    240 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.-->
    241  </div>
    242 </div>
    243 
    244 <!-- for id="content", starts in the include above -->
    245 <!--#include virtual="/server/footer.fr.html" -->
    246 <div id="footer" role="contentinfo">
    247 <div class="unprintable">
    248 
    249 <p>Veuillez envoyer les requêtes concernant la FSF et GNU à &lt;<a
    250 href="mailto:gnu@gnu.org">gnu@gnu.org</a>&gt;. Il existe aussi <a
    251 href="/contact/">d'autres moyens de contacter</a> la FSF. Les liens
    252 orphelins et autres corrections ou suggestions peuvent être signalés à
    253 &lt;<a href="mailto:webmasters@gnu.org">webmasters@gnu.org</a>&gt;.</p>
    254 
    255 <p>
    256 <!-- TRANSLATORS: Ignore the original text in this paragraph,
    257         replace it with the translation of these two:
    258 
    259         We work hard and do our best to provide accurate, good quality
    260         translations.  However, we are not exempt from imperfection.
    261         Please send your comments and general suggestions in this regard
    262         to <a href="mailto:web-translators@gnu.org">
    263 
    264         &lt;web-translators@gnu.org&gt;</a>.</p>
    265 
    266         <p>For information on coordinating and contributing translations of
    267         our web pages, see <a
    268         href="/server/standards/README.translations.html">Translations
    269         README</a>. -->
    270 Merci d'adresser vos commentaires sur les pages en français à &lt;<a
    271 href="mailto:trad-gnu@april.org">trad-gnu@april.org</a>&gt;, et sur les
    272 traductions en général à &lt;<a
    273 href="mailto:web-translators@gnu.org">web-translators@gnu.org</a>&gt;. Si
    274 vous souhaitez y contribuer, vous trouverez dans le <a
    275 href="/server/standards/README.translations.html">guide de traduction</a>
    276 les infos nécessaires.</p>
    277 </div>
    278 
    279 <!-- Regarding copyright, in general, standalone pages (as opposed to
    280      files generated as part of manuals) on the GNU web server should
    281      be under CC BY-ND 4.0.  Please do NOT change or remove this
    282      without talking with the webmasters or licensing team first.
    283      Please make sure the copyright date is consistent with the
    284      document.  For web pages, it is ok to list just the latest year the
    285      document was modified, or published.
    286      
    287      If you wish to list earlier years, that is ok too.
    288      Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
    289      years, as long as each year in the range is in fact a copyrightable
    290      year, i.e., a year in which the document was published (including
    291      being publicly visible on the web or in a revision control system).
    292      
    293      There is more detail about copyright years in the GNU Maintainers
    294      Information document, www.gnu.org/prep/maintain. -->
    295 <p>Copyright &copy; 2004, 2010, 2015, 2021 Richard Stallman</p>
    296 
    297 <p>Cette page peut être utilisée suivant les conditions de la licence <a
    298 rel="license"
    299 href="http://creativecommons.org/licenses/by-nd/4.0/deed.fr">Creative
    300 Commons attribution, pas de modification, 4.0 internationale (CC BY-ND
    301 4.0)</a>.</p>
    302 
    303 <!--#include virtual="/server/bottom-notes.fr.html" -->
    304 <div class="translators-credits">
    305 
    306 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
    307 Traduction : Francis Pied.<br /> Révision : <a
    308 href="mailto:trad-gnu&#64;april.org">trad-gnu&#64;april.org</a></div>
    309 
    310 <p class="unprintable"><!-- timestamp start -->
    311 Dernière mise à jour :
    312 
    313 $Date: 2021/10/01 17:39:49 $
    314 
    315 <!-- timestamp end -->
    316 </p>
    317 </div>
    318 </div>
    319 <!-- for class="inner", starts in the banner include -->
    320 </body>
    321 </html>