taler-merchant-demos

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

java-trap.html (14807B)


      1 <!--#set var="ENGLISH_PAGE" value="/philosophy/java-trap.en.html" -->
      2 
      3 <!--#include virtual="/server/header.nl.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>Vrij maar geketend - De Java-valstrik - GNU-project - Free Software
     11 Foundation</title>
     12 
     13 <!--#include virtual="/philosophy/po/java-trap.translist" -->
     14 <!--#include virtual="/server/banner.nl.html" -->
     15 <!--#include virtual="/philosophy/ph-breadcrumb.nl.html" -->
     16 <!--GNUN: OUT-OF-DATE NOTICE-->
     17 <!--#include virtual="/server/top-addendum.nl.html" -->
     18 <div class="article reduced-width">
     19 
     20 <h2>Vrij maar geketend - De Java-valstrik</h2>
     21 
     22 <address class="byline">door <a href="https://www.stallman.org/">Richard Stallman</a></address>
     23 
     24 <div class="emph-box" style="background: none">
     25 <h3 class="footnote">Mededeling</h3>
     26 <p>Sinds publicatie van dit artikel heeft Sun (nu onderdeel van Oracle) het
     27 grootste deel van de referentie-implementatie van het Java-platform onder de
     28 GNU General Public License <a
     29 href="https://www.fsf.org/news/fsf-welcomes-gpl-java.html">uitgebracht</a>,
     30 en er is nu een vrij ontwikkelplatform voor Java. Daarmee vormt de
     31 Java-programmeertaal niet langer een valkuil.</p>
     32 
     33 <p>Oppassen echter, niet ieder Java platform is hiermee vrij. Sun verspreidt
     34 ook nog steeds een uitvoerbare versie die niet vrij is, evenals andere
     35 bedrijven.</p>
     36 
     37 <p>De vrij omgeving voor Java heet IcedTea; dit bevat ook de broncode die Sun
     38 vrij heeft gegeven. Die moet je dus gebruiken. Veel GNU/Linux-distributies
     39 bevatten IcedTea maar sommigen bevatten niet-vrije varianten. (Opmerking in
     40 oktober 2015: de vrije implementatie van Java staat in veel
     41 GNU/Linux-distributies bekend als OpenJDK.)</p>
     42 
     43 <p>Om te kunnen achterhalen of je Java-programma's goed in een vrije omgeving
     44 zullen draaien zul je met IcedTea moeten ontwikkelen. Theoretisch zouden de
     45 platformen uitwisselbaar moeten zijn maar dat is nooit voor 100 procent.</p>
     46 
     47 <p>Verder zijn er niet-vrije programma's in omloop met &ldquo;Java&rdquo; in
     48 hun naam, zoals JavaFX, en zijn er niet-vrije Java-pakketten die je wellicht
     49 zou willen gebruiken maar dat niet moet doen. Controleer dus altijd de
     50 licenties. Wanneer je Swing gebruikt, vergewis je er dan van dat je de vrije
     51 versie gebruikt die in IcedTea zit. (Opmerking in oktober 2015: een vrije
     52 vervanging voor JavaFX, OpenJFX genaamd, is uitgebracht.)</p>
     53 
     54 <p>Desalniettemin blijft het hier beschreven probleem relevant omdat andere
     55 niet-vrije programmabibliotheken of platformen hetzelfde probleem zouden
     56 kunnen bevatten.  Laat deze geschiedenis van Java dus een les zijn om
     57 toekomstige valstrikken te voorkomen.</p>
     58 
     59 <p>Zie verder: <a href="/philosophy/javascript-trap.html">De
     60 JavaScript-valstrik</a>.</p>
     61 </div>
     62 <hr class="no-display" />
     63 
     64 <p><em>12 april 2004</em></p>
     65 
     66 <p>
     67   Wanneer je programma vrije software is, is het van zichzelf ethisch
     68 verantwoord&mdash;maar er loert een valstrik waar je voor uit moet
     69 kijken. Hoewel je programma zelf vrij is kan het toch beperkingen hebben
     70 door andere software waar het van afhankelijk is. Omdat dit probleem vooral
     71 speelt bij Java-programma's noemen we het de Java-valstrik.
     72 </p>
     73 
     74 <p>
     75   Een programma is vrije software wanneer gebruikers ervan bepaalde
     76 belangrijke vrijheden krijgen. Grof gezegd zijn dit: de vrijheid een
     77 programma te gebruiken, de vrijheid het te bestuderen en de broncode te
     78 veranderen, de vrijheid de broncode en binaire code opnieuw te verspreiden
     79 en de vrijheid om nieuwe, verbeterde versies ervan te publiceren (zie ook <a
     80 href= "/philosophy/free-sw.html">de definitie van vrije software</a>). Of
     81 een programma vrij is of niet is geheel afhankelijk van de licentie die erop
     82 van kracht is.
     83 </p>
     84 
     85 <p>
     86   De vraag of het programma gebruikt kan worden in de vrije wereld, door
     87 mensen die in vrijheid behoren te leven, is moeilijker te beantwoorden. Dit
     88 wordt niet alleen bepaald door de licentie van een programma, want geen
     89 enkel programma werkt in totale isolatie. Ieder programma is afhankelijk van
     90 andere programma's. Het moet bijvoorbeeld gecompileerd worden of
     91 ge&iuml;nterpreteerd en is daarmee afhankelijk van een compiler of
     92 interpretator. Wanneer het gecompileerd wordt naar byte-code is het ook nog
     93 eens afhankelijk van een byte-code interpretator. Verder heeft het
     94 programmabibliotheken nodig om te draaien en het zou ook nog andere
     95 programma's kunnen starten die in andere processen draaien. Al die
     96 programma's vormen afhankelijkheden. Die afhankelijkheden kunnen nodig zijn
     97 voor het programma om &uuml;berhaupt te draaien of alleen voor bepaalde
     98 stukjes functionaliteit. Hoe dan ook, het programma, in zijn geheel of
     99 gedeeltelijk, kan niet draaien zonder de afhankelijkheden.
    100 </p>
    101 
    102 <p>
    103   Wanneer sommige van die afhankelijkheden van een programma niet vrij zijn,
    104 betekent het dat het programma, of een gedeelte daarvan, niet kan draaien op
    105 een compleet vrij systeem&mdash;het is onbruikbaar in de vrije
    106 wereld. Natuurlijk, we kunnen het programma verspreiden en kopie&euml;n
    107 houden op onze machines maar dat heeft weinig nut als we ze niet kunnen
    108 laten draaien. Het programma mag dan vrije software zijn, het wordt bij
    109 wijze van spreken geketend door zijn niet-vrije afhankelijkheden.
    110 </p>
    111 
    112 <p>
    113   Dit probleem kan zich voordoen in alle software, geschreven in welke taal
    114 dan ook. Een vrij programma bijvoorbeeld dat alleen op Microsoft Windows
    115 draait is duidelijk onbruikbaar in de vrije wereld. Maar software op
    116 GNU/Linux kan ook onbruikbaar zijn wanneer het afhankelijk is van andere,
    117 niet-vrije, software. In het verleden waren Motif (voordat we LessTif
    118 hadden) en Qt (voordat de ontwikkelaars het vrije software maakten) grote
    119 veroorzakers van dit probleem.  De meeste 3D-videokaarten werken alleen
    120 volledig met niet-vrije stuurprogramma's die ook een oorzaak van het
    121 probleem vormen. Maar de grootste bron van problemen op dit moment is Java,
    122 mede doordat veel mensen die vrije software schrijven Java sexy
    123 vinden. Verblind door de aantrekkingskracht van de taal zien ze het probleem
    124 van de afhankelijkheden over het hoofd en raken verstrikt in de
    125 Java-valstrik.
    126 </p>
    127 
    128 <p>
    129   De Java-implementatie door Sun is niet vrij. De standaard Java-bibliotheken
    130 zijn ook niet vrij. We hebben echter wel vrije versies van Java, zoals de <a
    131 href="https://objectcomputing.com/resources/publications/sett/january-2003-gcj-the-gnu-compiler-for-java">GNU-compiler
    132 voor Java</a> (GCJ) en <a href= "/software/classpath">GNU Classpath</a>,
    133 maar die ondersteunen nog niet alle mogelijkheden. We zijn bezig met een
    134 inhaalslag.
    135 </p>
    136 
    137 <p>
    138   Wanneer je een Java-programma op het Java-platform van Sun ontwikkelt loop
    139 je het risico Sun-specifieke dingen te gebruiken zonder dat je het door
    140 hebt. Wanneer je daar maanden later achter komt kan het ook weer maanden
    141 kosten voordat je die afhankelijkheid eruit hebt. Je zou dan kunnen
    142 verzuchten: &ldquo;Het is teveel werk om opnieuw te beginnen&rdquo;. Op dat
    143 moment is je programma verstrikt geraakt in de Java-valstrik; het is niet
    144 meer bruikbaar in de vrije wereld.
    145 </p>
    146 
    147 <p>
    148   De enige betrouwbare methode om de valstrik te omzeilen is alleen een vrije
    149 implementatie van Java op je systeem toe te laten. Wanneer je op die manier
    150 iets specifieks gebruikt van Java of een bibliotheek wat nog niet wordt
    151 ondersteund, kom je er direct achter en kun je meteen je code aanpassen.
    152 </p>
    153 
    154 <p>
    155   Sun blijft bezig met het ontwikkelen van nieuwe &ldquo;standaard&rdquo;
    156 Java-bibliotheken en ze zijn bijna allemaal niet-vrij; in veel gevallen is
    157 zelfs de specificatie van de bibliotheek een handelsgeheim en de meest
    158 recente versie van de licentie van Sun voor deze specificaties verbiedt
    159 zelfs publicatie van implementaties die niet volledig zijn. (Zie <a href=
    160 "http://jcp.org/aboutJava/communityprocess/JSPA2.pdf"><i>Java Specification
    161 Participation Agreement</i></a> en <a href=
    162 "http://jcp.org/aboutJava/communityprocess/final/jsr129/j2me_pb-1_0-fr-spec-license.html"><i>J2ME&trade;
    163 Personal Basis Profile Specification</i></a> voor voorbeelden).
    164 </p>
    165 
    166 <p>
    167   Gelukkig laat die licentie wel toe dat er een vrije implementatie
    168 uitgebracht kan worden; anderen die deze bibliotheek dan ontvangen mogen hem
    169 dan wel veranderen en hoeven niet volledig aan de specificatie te
    170 voldoen. Maar deze vereiste beperkt wel de mogelijkheid om via een
    171 samenwerkingsmodel een vrije implementatie te maken. In een dergelijk model
    172 moet je onvolledige versies publiceren wat diegenen die de specificatie
    173 hebben gelezen niet mogen doen.
    174 </p>
    175 
    176 <p>
    177   In de begintijd van de vrije software beweging was het onmogelijk om geen
    178 afhankelijkheden te hebben met niet-vrije programma's. Voordat we de GNU
    179 C-compiler hadden was ieder C-programma (vrij of niet), afhankelijk van een
    180 niet-vrije C-compiler. Voordat we de GNU C-bibliotheek hadden was ieder
    181 programma afhankelijk van een niet-vrije C-bibliotheek. Voordat we Linux
    182 hadden, de eerste vrije kernel, was ieder programma afhankelijk van een
    183 niet-vrije kernel. Voordat we Bash hadden moest ieder script
    184 ge&iuml;nterpreteerd worden door een niet-vrije shell. Deze beperkende
    185 afhankelijkheden waren onvermijdelijk maar dit was acceptabel omdat ons plan
    186 was ze in de toekomst hiervan te redden. Ons hogere doel, een zelfstandig
    187 besturingssysteem, zou een vrije vervanging hebben voor al deze
    188 afhankelijkheden; wanneer we dit doel zouden bereiken zouden al onze
    189 programma's gered zijn. Aldus geschiedde: met het GNU/Linux-systeem kunnen
    190 we deze programma's laten draaien op een vrij platform.
    191 </p>
    192 
    193 <p>
    194   Vandaag de dag is het anders. We hebben krachtige vrije besturingssystemen
    195 en een hoop vrije programmeer-hulpmiddelen. Wat je ook wilt doen, je kunt
    196 het op een vrij platform doen; er is geen reden meer om een niet-vrije
    197 afhankelijkheid te accepteren, zelfs niet voor even. Mensen raken
    198 voornamelijk nog verstrikt omdat ze er niet goed over nadenken. De simpelste
    199 oplossing voor deze Java-valstrik is door mensen aan te leren dit te
    200 vermijden.
    201 </p>
    202 
    203 <p>
    204   Om je Java-code te beschermen tegen de Java-valstrik moet je een vrije
    205 Java-ontwikkelomgeving installeren en die gebruiken. Meer in het algemeen,
    206 wat voor taal je ook gebruikt, let op en controleer de vrije status van de
    207 afhankelijkheden van je programma. De makkelijkste manier om dit na te gaan
    208 is door te kijken of het programma in de <a
    209 href="https://www.fsf.org/directory">lijst van vrije software</a> staat. Als
    210 hij niet in die lijst voorkomt dan kun je altijd nog zijn licentie nagaan op
    211 de lijst van vrije licenties (<a href= "/licenses/license-list.html">
    212 http://www.gnu.org/licenses/license-list.html</a>).
    213 </p>
    214 
    215 <p>
    216   We proberen nu de verstrikte Java-programma's te redden dus als je een zwak
    217 hebt voor Java wordt je van harte uitgenodigd om te helpen bij de
    218 ontwikkeling van GNU Classpath. Het testen van je programma met de
    219 GCJ-compiler en GNU Classpath en problemen met reeds gebouwde klassen
    220 rapporteren is ook nuttig. Het afmaken van GNU Classpath vergt echter tijd;
    221 indien er meer niet-vrije programmabibliotheken toegevoegd blijven worden
    222 zullen we wellicht nooit bij raken. Dus keten je vrije software alsjeblieft
    223 niet.  Wanneer je nu een applicatie gaat schrijven, doe het dan zo dat het
    224 vanaf het begin op vrije voorzieningen draait.
    225 </p>
    226 
    227 <h3 class="footnote">Zie ook:</h3>
    228 <p><a href="/philosophy/sun-in-night-time.html">Het Merkwaardige Incident van
    229 Sun in de Nacht</a></p>
    230 </div>
    231 
    232 <div class="translators-notes">
    233 
    234 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.-->
    235  </div>
    236 </div>
    237 
    238 <!-- for id="content", starts in the include above -->
    239 <!--#include virtual="/server/footer.nl.html" -->
    240 <div id="footer" role="contentinfo">
    241 <div class="unprintable">
    242 
    243 <p>Gelieve algemene vragen over FSF &amp; GNU te sturen naar <a
    244 href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>. Er zijn ook nog <a
    245 href="/contact/">andere manieren om in contact te komen</a> met de
    246 FSF. Foute links en andere correcties graag sturen aan <a
    247 href="mailto:webmasters@gnu.org">&lt;webmasters@gnu.org&gt;</a>.</p>
    248 
    249 <p>
    250 <!-- TRANSLATORS: Ignore the original text in this paragraph,
    251         replace it with the translation of these two:
    252 
    253         We work hard and do our best to provide accurate, good quality
    254         translations.  However, we are not exempt from imperfection.
    255         Please send your comments and general suggestions in this regard
    256         to <a href="mailto:web-translators@gnu.org">
    257 
    258         &lt;web-translators@gnu.org&gt;</a>.</p>
    259 
    260         <p>For information on coordinating and contributing translations of
    261         our web pages, see <a
    262         href="/server/standards/README.translations.html">Translations
    263         README</a>. -->
    264 We doen ons best om goede vertalingen te maken maar staan altijd open voor
    265 verbeteringen. Suggesties, op- en aanmerkingen sturen aan: <a
    266 href="mailto:web-translators@gnu.org">&lt;web-translators@gnu.org&gt;</a>.</p>
    267 <p>Zie <a href="/server/standards/README.translations.html"> Translations
    268 README</a> voor informatie over het onderhoud van vertalingen op deze
    269 website.</p>
    270 </div>
    271 
    272 <!-- Regarding copyright, in general, standalone pages (as opposed to
    273      files generated as part of manuals) on the GNU web server should
    274      be under CC BY-ND 4.0.  Please do NOT change or remove this
    275      without talking with the webmasters or licensing team first.
    276      Please make sure the copyright date is consistent with the
    277      document.  For web pages, it is ok to list just the latest year the
    278      document was modified, or published.
    279      
    280      If you wish to list earlier years, that is ok too.
    281      Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
    282      years, as long as each year in the range is in fact a copyrightable
    283      year, i.e., a year in which the document was published (including
    284      being publicly visible on the web or in a revision control system).
    285      
    286      There is more detail about copyright years in the GNU Maintainers
    287      Information document, www.gnu.org/prep/maintain. -->
    288 <p>Copyright &copy; 2004, 2010, 2015, 2021 Richard Stallman</p>
    289 
    290 <p>Deze pagina is uitgebracht onder de <a rel="license"
    291 href="http://creativecommons.org/licenses/by-nd/4.0/deed.nl">Creative
    292 Commons Naamsvermelding-GeenAfgeleideWerken 4.0 Internationaal licentie</a>.</p>
    293 
    294 <!--#include virtual="/server/bottom-notes.nl.html" -->
    295 <div class="translators-credits">
    296 
    297 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
    298 <strong>Vertaling:</strong> <a
    299 href="//savannah.gnu.org/projects/www-nl">www-nl</a></div>
    300 
    301 <p class="unprintable"><!-- timestamp start -->
    302 Bijgewerkt:
    303 
    304 $Date: 2021/10/01 17:39:49 $
    305 
    306 <!-- timestamp end -->
    307 </p>
    308 </div>
    309 </div>
    310 <!-- for class="inner", starts in the banner include -->
    311 </body>
    312 </html>