diff options
Diffstat (limited to 'talermerchantdemos/blog/articles/nl/java-trap.html')
-rw-r--r-- | talermerchantdemos/blog/articles/nl/java-trap.html | 286 |
1 files changed, 286 insertions, 0 deletions
diff --git a/talermerchantdemos/blog/articles/nl/java-trap.html b/talermerchantdemos/blog/articles/nl/java-trap.html new file mode 100644 index 0000000..5ff7598 --- /dev/null +++ b/talermerchantdemos/blog/articles/nl/java-trap.html @@ -0,0 +1,286 @@ +<!--#set var="ENGLISH_PAGE" value="/philosophy/java-trap.en.html" --> + +<!--#include virtual="/server/header.nl.html" --> +<!-- Parent-Version: 1.77 --> + +<!-- This file is automatically generated by GNUnited Nations! --> +<title>Vrij maar geketend - De Java-valstrik - GNU-project - Free Software +Foundation</title> + +<!--#include virtual="/philosophy/po/java-trap.translist" --> +<!--#include virtual="/server/banner.nl.html" --> +<h2>Vrij maar geketend - De Java-valstrik</h2> + +<p>door <a href="http://www.stallman.org/">Richard Stallman</a></p> + + +<div class="announcement"><blockquote><h3>Mededeling</h3> +<p>Sinds publicatie van dit artikel heeft Sun (nu onderdeel van Oracle) het +grootste deel van de referentie-implementatie van het Java-platform onder de +GNU General Public License <a +href="http://www.fsf.org/news/fsf-welcomes-gpl-java.html">uitgebracht</a>, +en er is nu een vrij ontwikkelplatform voor Java. Daarmee vormt de +Java-programmeertaal niet langer een valkuil.</p> + +<p>Oppassen echter, niet ieder Java platform is hiermee vrij. Sun verspreidt +ook nog steeds een uitvoerbare versie die niet vrij is, evenals andere +bedrijven.</p> + +<p>De vrij omgeving voor Java heet IcedTea; dit bevat ook de broncode die Sun +vrij heeft gegeven. Die moet je dus gebruiken. Veel GNU/Linux-distributies +bevatten IcedTea maar sommigen bevatten niet-vrije varianten. (Opmerking in +oktober 2015: de vrije implementatie van Java staat in veel +GNU/Linux-distributies bekend als OpenJDK.)</p> + +<p>Om te kunnen achterhalen of je Java-programma's goed in een vrije omgeving +zullen draaien zul je met IcedTea moeten ontwikkelen. Theoretisch zouden de +platformen uitwisselbaar moeten zijn maar dat is nooit voor 100 procent.</p> + +<p>Verder zijn er niet-vrije programma's in omloop met “Java” in +hun naam, zoals JavaFX, en zijn er niet-vrije Java-pakketten die je wellicht +zou willen gebruiken maar dat niet moet doen. Controleer dus altijd de +licenties. Wanneer je Swing gebruikt, vergewis je er dan van dat je de vrije +versie gebruikt die in IcedTea zit. (Opmerking in oktober 2015: een vrije +vervanging voor JavaFX, OpenJFX genaamd, is uitgebracht.)</p> + +<p>Desalniettemin blijft het hier beschreven probleem relevant omdat andere +niet-vrije programmabibliotheken of platformen hetzelfde probleem zouden +kunnen bevatten. Laat deze geschiedenis van Java dus een les zijn om +toekomstige valstrikken te voorkomen.</p> + +<p>Zie verder: <a href="/philosophy/javascript-trap.html">De +JavaScript-valstrik</a>.</p> +</blockquote> +</div> + +<p>12 april 2004</p> + +<p> + Wanneer je programma vrije software is, is het van zichzelf ethisch +verantwoord—maar er loert een valstrik waar je voor uit moet +kijken. Hoewel je programma zelf vrij is kan het toch beperkingen hebben +door andere software waar het van afhankelijk is. Omdat dit probleem vooral +speelt bij Java-programma's noemen we het de Java-valstrik. +</p> + +<p> + Een programma is vrije software wanneer gebruikers ervan bepaalde +belangrijke vrijheden krijgen. Grof gezegd zijn dit: de vrijheid een +programma te gebruiken, de vrijheid het te bestuderen en de broncode te +veranderen, de vrijheid de broncode en binaire code opnieuw te verspreiden +en de vrijheid om nieuwe, verbeterde versies ervan te publiceren (zie ook <a +href= "/philosophy/free-sw.html"> +http://www.gnu.org/philosophy/free-sw.html</a>). Of een programma vrij is of +niet is geheel afhankelijk van de licentie die erop van kracht is. +</p> + +<p> + De vraag of het programma gebruikt kan worden in de vrije wereld, door +mensen die in vrijheid behoren te leven, is moeilijker te beantwoorden. Dit +wordt niet alleen bepaald door de licentie van een programma, want geen +enkel programma werkt in totale isolatie. Ieder programma is afhankelijk van +andere programma's. Het moet bijvoorbeeld gecompileerd worden of +geïnterpreteerd en is daarmee afhankelijk van een compiler of +interpretator. Wanneer het gecompileerd wordt naar byte-code is het ook nog +eens afhankelijk van een byte-code interpretator. Verder heeft het +programmabibliotheken nodig om te draaien en het zou ook nog andere +programma's kunnen starten die in andere processen draaien. Al die +programma's vormen afhankelijkheden. Die afhankelijkheden kunnen nodig zijn +voor het programma om überhaupt te draaien of alleen voor bepaalde +stukjes functionaliteit. Hoe dan ook, het programma, in zijn geheel of +gedeeltelijk, kan niet draaien zonder de afhankelijkheden. +</p> + +<p> + Wanneer sommige van die afhankelijkheden van een programma niet vrij zijn, +betekent het dat het programma, of een gedeelte daarvan, niet kan draaien op +een compleet vrij systeem—het is onbruikbaar in de vrije +wereld. Natuurlijk, we kunnen het programma verspreiden en kopieën +houden op onze machines maar dat heeft weinig nut als we ze niet kunnen +laten draaien. Het programma mag dan vrije software zijn, het wordt bij +wijze van spreken geketend door zijn niet-vrije afhankelijkheden. +</p> + +<p> + Dit probleem kan zich voordoen in alle software, geschreven in welke taal +dan ook. Een vrij programma bijvoorbeeld dat alleen op Microsoft Windows +draait is duidelijk onbruikbaar in de vrije wereld. Maar software op +GNU/Linux kan ook onbruikbaar zijn wanneer het afhankelijk is van andere, +niet-vrije, software. In het verleden waren Motif (voordat we LessTif +hadden) en Qt (voordat de ontwikkelaars het vrije software maakten) grote +veroorzakers van dit probleem. De meeste 3D-videokaarten werken alleen +volledig met niet-vrije stuurprogramma's die ook een oorzaak van het +probleem vormen. Maar de grootste bron van problemen op dit moment is Java, +mede doordat veel mensen die vrije software schrijven Java sexy +vinden. Verblind door de aantrekkingskracht van de taal zien ze het probleem +van de afhankelijkheden over het hoofd en raken verstrikt in de +Java-valstrik. +</p> + +<p> + De Java-implementatie door Sun is niet vrij. De standaard Java-bibliotheken +zijn ook niet vrij. We hebben echter wel vrije versies van Java, zoals de <a +href="http://gcc.gnu.org/java/">GNU-compiler voor Java</a> (GCJ) en <a href= +"/software/classpath">GNU Classpath</a>, maar die ondersteunen nog niet alle +mogelijkheden. We zijn bezig met een inhaalslag. +</p> + +<p> + Wanneer je een Java-programma op het Java-platform van Sun ontwikkelt loop +je het risico Sun-specifieke dingen te gebruiken zonder dat je het door +hebt. Wanneer je daar maanden later achter komt kan het ook weer maanden +kosten voordat je die afhankelijkheid eruit hebt. Je zou dan kunnen +verzuchten: “Het is teveel werk om opnieuw te beginnen”. Op dat +moment is je programma verstrikt geraakt in de Java-valstrik; het is niet +meer bruikbaar in de vrije wereld. +</p> + +<p> + De enige betrouwbare methode om de valstrik te omzeilen is alleen een vrije +implementatie van Java op je systeem toe te laten. Wanneer je op die manier +iets specifieks gebruikt van Java of een bibliotheek wat nog niet wordt +ondersteund, kom je er direct achter en kun je meteen je code aanpassen. +</p> + +<p> + Sun blijft bezig met het ontwikkelen van nieuwe “standaard” +Java-bibliotheken en ze zijn bijna allemaal niet-vrij; in veel gevallen is +zelfs de specificatie van de bibliotheek een handelsgeheim en de meest +recente versie van de licentie van Sun voor deze specificaties verbiedt +zelfs publicatie van implementaties die niet volledig zijn. (Zie <a href= +"http://jcp.org/aboutJava/communityprocess/JSPA2.pdf"> +http://jcp.org/aboutJava/communityprocess/JSPA2.pdf</a> en <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> +voor voorbeelden). +</p> + +<p> + Gelukkig laat die licentie wel toe dat er een vrije implementatie +uitgebracht kan worden; anderen die deze bibliotheek dan ontvangen mogen hem +dan wel veranderen en hoeven niet volledig aan de specificatie te +voldoen. Maar deze vereiste beperkt wel de mogelijkheid om via een +samenwerkingsmodel een vrije implementatie te maken. In een dergelijk model +moet je onvolledige versies publiceren wat diegenen die de specificatie +hebben gelezen niet mogen doen. +</p> + +<p> + In de begintijd van de vrije software beweging was het onmogelijk om geen +afhankelijkheden te hebben met niet-vrije programma's. Voordat we de GNU +C-compiler hadden was ieder C-programma (vrij of niet), afhankelijk van een +niet-vrije C-compiler. Voordat we de GNU C-bibliotheek hadden was ieder +programma afhankelijk van een niet-vrije C-bibliotheek. Voordat we Linux +hadden, de eerste vrije kernel, was ieder programma afhankelijk van een +niet-vrije kernel. Voordat we Bash hadden moest ieder script +geïnterpreteerd worden door een niet-vrije shell. Deze beperkende +afhankelijkheden waren onvermijdelijk maar dit was acceptabel omdat ons plan +was ze in de toekomst hiervan te redden. Ons hogere doel, een zelfstandig +besturingssysteem, zou een vrije vervanging hebben voor al deze +afhankelijkheden; wanneer we dit doel zouden bereiken zouden al onze +programma's gered zijn. Aldus geschiedde: met het GNU/Linux-systeem kunnen +we deze programma's laten draaien op een vrij platform. +</p> + +<p> + Vandaag de dag is het anders. We hebben krachtige vrije besturingssystemen +en een hoop vrije programmeer-hulpmiddelen. Wat je ook wilt doen, je kunt +het op een vrij platform doen; er is geen reden meer om een niet-vrije +afhankelijkheid te accepteren, zelfs niet voor even. Mensen raken +voornamelijk nog verstrikt omdat ze er niet goed over nadenken. De simpelste +oplossing voor deze Java-valstrik is door mensen aan te leren dit te +vermijden. +</p> + +<p> + Om je Java-code te beschermen tegen de Java-valstrik moet je een vrije +Java-ontwikkelomgeving installeren en die gebruiken. Meer in het algemeen, +wat voor taal je ook gebruikt, let op en controleer de vrije status van de +afhankelijkheden van je programma. De makkelijkste manier om dit na te gaan +is door te kijken of het programma in de lijst van vrije software (<a href= +"http://www.fsf.org/directory">http://www.fsf.org/directory</a>) staat. Als +hij niet in die lijst voorkomt dan kun je altijd nog zijn licentie nagaan op +de lijst van vrije licenties (<a href= "/licenses/license-list.html"> +http://www.gnu.org/licenses/license-list.html</a>). +</p> + +<p> + We proberen nu de verstrikte Java-programma's te redden dus als je een zwak +hebt voor Java wordt je van harte uitgenodigd om te helpen bij de +ontwikkeling van GNU Classpath. Het testen van je programma met de +GCJ-compiler en GNU Classpath en problemen met reeds gebouwde klassen +rapporteren is ook nuttig. Het afmaken van GNU Classpath vergt echter tijd; +indien er meer niet-vrije programmabibliotheken toegevoegd blijven worden +zullen we wellicht nooit bij raken. Dus keten je vrije software alsjeblieft +niet. Wanneer je nu een applicatie gaat schrijven, doe het dan zo dat het +vanaf het begin op vrije voorzieningen draait. +</p> + +<h3>Zie ook:</h3> +<p><a href="/philosophy/sun-in-night-time.html">Het Merkwaardige Incident van +Sun in de Nacht</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.nl.html" --> +<div id="footer"> +<div class="unprintable"> + +<p>Gelieve algemene vragen over FSF & GNU te sturen naar <a +href="mailto:gnu@gnu.org"><gnu@gnu.org></a>. Er zijn ook nog <a +href="/contact/">andere manieren om in contact te komen</a> met de +FSF. Foute links en andere correcties graag sturen aan <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>. --> +We doen ons best om goede vertalingen te maken maar staan altijd open voor +verbeteringen. Suggesties, op- en aanmerkingen sturen aan: <a +href="mailto:web-translators@gnu.org"><web-translators@gnu.org></a>.</p> +<p>Zie <a href="/server/standards/README.translations.html"> Translations +README</a> voor informatie over het onderhoud van vertalingen op deze +website.</p> +</div> + +<p>Copyright © 2004, 2010, 2015 Richard Stallman</p> + +<p>Deze pagina is uitgebracht onder een <a rel="license" +href="https://creativecommons.org/licenses/by-nd/4.0/deed.nl">Creative +Commons Naamsvermelding-GeenAfgeleideWerken 4.0 Internationaal licentie</a>.</p> + +<!--#include virtual="/server/bottom-notes.nl.html" --> +<div class="translators-credits"> + +<!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.--> +<strong>Vertaling:</strong> <a +href="//savannah.gnu.org/projects/www-nl">www-nl</a></div> + +<p class="unprintable"><!-- timestamp start --> +Bijgewerkt: + +$Date: 2017/05/22 08:01:00 $ + +<!-- timestamp end --> +</p> +</div> +</div> +</body> +</html> |