java-trap.html (16830B)
1 <!--#set var="ENGLISH_PAGE" value="/philosophy/java-trap.en.html" --> 2 3 <!--#include virtual="/server/header.de.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>Frei, aber gefesselt: Die Java-Falle - GNU-Projekt - Free Software 11 Foundation</title> 12 13 <!--#include virtual="/philosophy/po/java-trap.translist" --> 14 <!--#include virtual="/server/banner.de.html" --> 15 <!--#include virtual="/philosophy/ph-breadcrumb.de.html" --> 16 <!--GNUN: OUT-OF-DATE NOTICE--> 17 <!--#include virtual="/server/top-addendum.de.html" --> 18 <div class="article reduced-width"> 19 20 <h2>Frei, aber gefesselt: Die Java-Falle</h2> 21 22 <address class="byline">von <a href="//www.stallman.org/">Richard Stallman</a></address> 23 24 <div class="emph-box" style="background: none"> 25 <h3 class="footnote"> </h3> 26 <p><span class="intro">Seitdem dieser Artikel 2004 erstveröffentlicht wurde, 27 hat Sun Microsystems ‑ 2010 durch Oracle übernommen und 28 eingegliedert! ‑ den größten Teil ihrer Umsetzung der 29 Java-Plattform-Referenz unter der <a href="/licenses/gpl" xml:lang="en" 30 lang="en">GNU General Public License</a> (GPL) <a 31 href="https://www.fsf.org/news/fsf-welcomes-gpl-java.html" title="Free 32 Software Foundation, Sun begins releasing Java under the GPL, unter: fsf.org 33 2006.">relizenziert</a>. Es gibt nunmehr eine freie Entwicklungsumgebung für 34 Java. Somit stellt Java als solches keine Falle mehr dar.</span></p> 35 36 <p><span class="intro">Man muss jedoch achtsam sein, denn nicht jede 37 Java-Plattform ist frei. Sun vertreibt nach wie vor eine lauffähige 38 Java-Plattform, die unfrei ist, und andere Unternehmen tun dies auch.</span></p> 39 40 <p><span class="intro">Die freie Umgebung für Java heiẞt 41 <strong>IcedTea</strong>, der von Sun freigegebene Quellcode ist darin 42 enthalten, die sollte <ins>bevorzugt</ins> genutzt werden. IcedTea ist 43 bereits in vielen GNU/Linux-Distributionen enthalten, einige enthalten 44 jedoch unfreie Java-Plattformen.<br /><br /><em>Hinweis: Die freie Umsetzung 45 der Java-Plattform ist<!-- in vielen GNU/Linux Distributionen--> unter der 46 Bezeichnung <strong>OpenJDK</strong> bekannt.</em></span></p> 47 48 <p><span class="intro">Um zuverlässig sicherzustellen das Java-Programme 49 problemlos in einer freien Umgebung ausgeführt werden können, muss man diese 50 mit IcedTea entwickeln. Theoretisch sollten die Java-Plattformen kompatibel 51 sein, aber sie sind nicht 100%ig kompatibel.</span></p> 52 53 <p><span class="intro">Darüber hinaus gibt es unfreie Programme mit den Wort 54 <em>Java</em> im Namen, wie beispielsweise <strong>JavaFX</strong>‚ und es 55 gibt unfreie Java-Pakete, die einen vielleicht verlocken mögen, man aber 56 zurückweisen muss. Die Lizenz/en, von gleich welchen Paketen man plant 57 benutzen zu wollen sollten <ins>zuvor</ins> eingehend überprüft 58 werden. Möchte man etwa <ins>Java-Swing-Ereignisse</ins> nutzen, sollte man 59 dafür sorge tragen die freie Variante zu benutzen, die mit IcedTea kommt.<br 60 /><br /><em>Hinweis: Die freie Umsetung der JavaFX-Rahmenstruktur ist unter 61 der Bezeichnung <strong>OpenJFX</strong> bekannt.</em></span></p> 62 63 <p><span class="intro">Abgesehen von diesen Java-Besonderheiten bleibt die hier 64 beschriebene allgemeine Frage bedeutsam, weil jede unfreie Bibliothek oder 65 Programmierplattform ein ähnliches Problem verursachen kann. Wir müssen aus 66 der Geschichte von Java eine Lehre ziehen, damit wir andere Fallen zukünftg 67 vermeiden können.</span></p> 68 69 <p><span class="intro">Bitte beachten in diesem Zusammenhang auch den Artikel 70 <cite><a href="/philosophy/javascript-trap">Die 71 JavaScript-Falle</a></cite>!</span></p> 72 </div> 73 <hr class="no-display" /> 74 75 <p> </p> 76 77 <p> 78 Wenn Ihr Programm Freie Software ist, ist das grundsätzlich 79 ethisch ‑ aber es gibt eine Falle, bei der Sie auf der Hut 80 sein müssen. Ihr Programm, obwohl an sich frei, kann durch unfreie Software, 81 von der es abhängt, eingeschränkt werden. Da das Problem bei heutigen 82 Java-Programmen am auffälligsten ist, nennen wir es die Java-Falle. 83 </p> 84 85 <p> 86 Ein Programm ist Freie Software, wenn deren Nutzer bestimmte entscheidende 87 Freiheiten haben. Diese sind grob gesagt: das Programm ausführen, den 88 Quellcode untersuchen und ändern, den Quellcode und Binärdateien erneut 89 distribuieren und verbesserte Versionen bereitstellen (siehe <cite><a 90 href="/philosophy/free-sw">Freie Software. Was ist das?</a></cite>). Ob ein 91 bestimmtes Programm in Quellcodeform <em>freie</em> Software ist, hängt 92 ausschließlich von der Bedeutung seiner Lizenz ab. 93 </p> 94 95 <p> 96 Ob das Programm aber in der freien Welt genutzt werden kann, genutzt von 97 Menschen die beabsichtigen in Freiheit zu leben, ist schon eine komplexere 98 Frage. Dies hängt nicht allein von der Lizenz des Programms selbst ab, weil 99 kein Programm isoliert funktioniert. Jedes Programm hängt von anderen 100 Programmen ab. Ein Programm muss beispielsweise kompiliert oder 101 interpretiert werden und hängt damit von einem Compiler oder Interpreter 102 ab. Wenn in Bytecode kompiliert, hängt es von einem Bytecode-Interpreter 103 ab. Außerdem benötigt es zur Ausführung Bibliotheken und kann auch andere 104 separate Programme aufrufen, die in anderen Prozessen ausgeführt werden. All 105 diese Programme sind Abhängigkeiten. Abhängigkeiten sind möglicherweise 106 notwendig, damit das Programm überhaupt ausgeführt wird, oder sind 107 möglicherweise nur für bestimmte Funktionen notwendig. So oder so, ohne die 108 Abhängigkeiten kann das Programm ganz oder teilweise nicht ausgeführt 109 werden. 110 </p> 111 112 <p> 113 Wenn einige der Abhängigkeiten eines Programms unfrei sind, bedeutet das, 114 dass das ganze oder ein Teil des Programms nicht auf einem völlig freien 115 System ausgeführt werden kann ‑ es ist in der freien Welt 116 unbrauchbar. Sicher, wir könnten das Programm zwar weiterverbreiten und 117 Kopien auf unseren Rechnern haben, aber das nützt nicht viel, wenn es nicht 118 ausgeführt werden kann. Dieses Programm ist zwar Freie Software, aber 119 praktisch durch eigene unfreie Abhängigkeiten gefesselt. 120 </p> 121 122 <p> 123 Dieses Problem kann in jeder Art von Software auftreten ‑ in 124 jeder Programmiersprache. Beispielsweise ist ein freies Programm, das nur 125 unter Microsoft Windows läuft, in der freien Welt eindeutig 126 unbrauchbar. Aber Software, die unter GNU/Linux läuft, kann ebenfalls 127 unbrauchbar sein, wenn sie von anderer unfreier Software abhängig ist. In 128 der Vergangenheit waren Motif (bevor wir LessTif hatten) und Qt (bevor seine 129 Entwickler es zu Freie Software machten) Hauptursachen dieses Problems. Die 130 meisten 3D-Grafikkarten funktionieren nur vollständig mit unfreien Treibern, 131 die dieses Problem ebenfalls verursachen. Aber die Hauptquelle dieses 132 Problems ist heute Java, weil Menschen, die Freie Software schreiben, oft 133 meinen, Java sei sexy. Verblendet von der Anziehungskraft der Sprache, 134 übersehen sie das Problem der Abhängigkeiten und tappen in die Java-Falle. 135 </p> 136 137 <p> 138 Suns Java-Umsetzung ist unfrei. Die Standard-Java-Bibliotheken 139 ebenfalls. Wir haben zwar freie Java-Umsetzungen, wie den <strong><a 140 href="https://objectcomputing.com/resources/publications/sett/january-2003-gcj-the-gnu-compiler-for-java" 141 xml:lang="en" lang="en">GNU Compiler for Java</a></strong> (GCJ) und 142 <strong><a href="/software/classpath">GNU Classpath</a></strong>, aber sie 143 unterstützen noch nicht alle Funktionen. Wir haben noch einiges an 144 Aufholarbeit zu leisten. 145 </p> 146 147 <p> 148 Wenn Sie ein Java-Programm auf Suns Java-Plattform entwickeln, laufen Sie 149 Gefahr nur noch <!--(proprietäre)-->Funktionen von Sun zu nutzen, ohne es zu 150 bemerken. Bis Sie das herausgefunden haben, können Sie diese schon 151 monatelang benutzt haben, und das Ganze umzuschreiben könnte weitere Monate 152 dauern. Sie könnten dann sagen, „Es ist zu viel Arbeit, um 153 anzufangen.“ Dann wird Ihr Programm in die Java-Falle getappt 154 sein ‑ unbrauchbar in der freien Welt. 155 </p> 156 157 <p> 158 Der zuverlässigste Weg die Java-Falle zu vermeiden ist nur eine freie 159 Umsetzung von Java auf dem System zu haben. Dann, wenn Sie eine 160 Java-Funktion oder -Bibliothek benutzen, die Freie Software noch nicht 161 unterstützt, werden Sie das stehenden Fußes herausfinden und können diesen 162 Quellcode sofort umschreiben. 163 </p> 164 165 <p> 166 Sun entwickelt weiterhin zusätzliche 167 „Standard“-Java-Bibliotheken, und fast alle sind unfrei. In 168 vielen Fällen ist sogar die Spezifikation einer Bibliothek ein 169 Geschäftsgeheimnis, und Suns neueste Lizenz für diese Spezifikationen 170 untersagt die Freigabe von nichts geringerem als einer vollständigen 171 Umsetzung der Spezifikation (siehe <a 172 href="https://jcp.org/aboutJava/communityprocess/JSPA2.pdf" title="Java 173 Community Process, Java Specification Participation Agreement, unter: 174 jcp.org 2005." type="application/pdf" xml:lang="en" lang="en">Java 175 Specification Participation Agreement</a> und <a 176 href="https://jcp.org/aboutJava/communityprocess/final/jsr129/j2me_pb-1_0-fr-spec-license.html" 177 title="Java Community Process, J2ME Personal Basis Profile Specification" 178 type="application/pdf" xml:lang="en" lang="en">J2ME™ Personal Basis 179 Profile Specification</a>). 180 </p> 181 182 <p> 183 Glücklicherweise ermöglicht diese Lizenzspezifikation die Freigabe einer 184 Umsetzung als Freie Software; anderen, die die Bibliothek erhalten, kann 185 eingeräumt werden sie zu ändern und müssen sich nicht an die Spezifikation 186 halten. Aber diese Bedingung bewirkt die Verwendung eines 187 zusammenarbeitenden Entwicklungsmodells zu verbieten, um die freie Umsetzung 188 zu erzeugen. Die Verwendung dieses Modells würde die Veröffentlichung von 189 unvollständigen Versionen mit sich bringen, was jenen, die die 190 Spezifikationen gelesen haben, nicht eingeräumt wird. 191 </p> 192 193 <p> 194 In den frühen Tagen der Freie-Software-Bewegung war es unmöglich zu 195 vermeiden, dass man von unfreien Programmen abhängig war. Bevor wir den GNU 196 C-Compiler hatten, hing jedes C-Programm (frei oder nicht) von einem 197 unfreien C-Compiler ab. Bevor wir die GNU C-Bibliothek hatten, hing jedes 198 Programm von einer unfreien C-Bibliothek ab. Bevor wir Linux hatten, den 199 ersten freien Betriebssystemkern, hing jedes Programm von einem unfreien 200 Systemkern ab. Bevor wir Bash hatten, musste jedes Shell-Skript von einer 201 unfreien Shell interpretiert werden. Es war unvermeidlich, dass unsere 202 ersten Programme zunächst durch diese Abhängigkeiten behindert würden. Aber 203 wir akzeptierten das, weil unser Plan beinhaltete diese nachträglich zu 204 befreien. Unser oberstes Ziel ‑ ein im Wesentlichen alle zum 205 Betrieb notwendigen Komponenten umfassendes (Self-Hosting) 206 GNU-Betriebssystem ‑ beinhaltete freien Ersatz für all jene 207 Abhängigkeiten; sofern wir das Ziel erreichten, würden all unsere Programme 208 befreit. So geschah es: mit dem GNU/Linux-System können wir nun diese 209 Programme auf freien Plattformen ausführen. 210 </p> 211 212 <p> 213 Heute ist die Situation eine andere. Wir haben nun leistungsfähige freie 214 Betriebssysteme und viele freie Programmierwerkzeuge. Welche Aufgabe Sie 215 auch immer erledigen wollen, Sie können es auf einer freien Plattform tun; 216 es gibt keinen Grund, eine unfreie Abhängigkeit auch nur zeitweilig zu 217 akzeptieren. Der Hauptgrund warum Menschen in die Falle tappen besteht heute 218 darin, weil sie dabei nicht darüber nachdenken. Die einfachste Lösung des 219 Problems ist den Menschen beizubringen dies zu erkennen und nicht 220 hineinzufallen. 221 </p> 222 223 <p> 224 Um Ihren Java-Quellcode vor der Java-Falle zu schützen, installieren Sie 225 eine freie Java-Entwicklungsumgebung und benutzen Sie sie. Welche Sprache 226 auch immer Sie benutzen, halten Sie generell die Augen offen und prüfen Sie 227 den freien Status der Programme, von denen Ihr Quellode abhängt. Am 228 einfachsten, um zu überprüfen ob ein Programm frei ist, ist danach im <a 229 href="https://www.fsf.org/directory">Freie-Software-Verzeichnis</a> zu 230 gucken. Sollte ein Programm nicht aufgeführt sein, können die Lizenz(en) 231 anhand <a href="/licenses/license-list"><em>Verschiedene Lizenzen und 232 Kommentare</em> <gnu.org/licenses/license-list.html></a> überprüft 233 werden. 234 </p> 235 236 <p> 237 Wir versuchen die in die Falle getappten Java-Programme zu befreien. Wenn 238 Sie also die Sprache Java mögen, laden wir Sie ein bei der Entwicklung von 239 GNU Classpath zu helfen. Auch hilfreich ist Programme mit GCJ und GNU 240 Classpath auszuprobieren und etwaige Probleme, die in bereits 241 implementierten Klassen auftreten, zu berichten. Allerdings wird GNU 242 Classpath’ letzter Schliff Zeit beanspruchen. Werden weiterhin mehr unfreie 243 Bibliotheken geschrieben, werden wir möglicherweise niemals alle aktuellen 244 haben. Legen Sie also Ihrer freien Software keine Fesseln an. Wenn Sie heute 245 ein Anwendungsprogramm schreiben, schreiben Sie es, damit es von Anfang an 246 in freien Umgebungen ausgeführt werden kann. 247 </p> 248 249 <h3 class="footnote">Siehe auch:</h3> 250 <p>Richard Stallman, <cite><a href="/philosophy/sun-in-night-time">Supergute 251 Tage oder Die sonderbare Welt von Sun</a></cite> 2006.</p> 252 </div> 253 254 <div class="translators-notes"> 255 256 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.--> 257 </div> 258 </div> 259 260 <!-- for id="content", starts in the include above --> 261 <!--#include virtual="/server/footer.de.html" --> 262 <div id="footer" role="contentinfo"> 263 <div class="unprintable"> 264 265 <p>Bitte senden Sie allgemeine Fragen zur FSF & GNU an <a 266 href="mailto:gnu@gnu.org"><gnu@gnu.org></a>. Sie können auch die <a 267 href="/contact/"><span xml:lang="en" lang="en">Free Software 268 Foundation</span> kontaktieren</a>. Ungültige Verweise und andere 269 Korrekturen oder Vorschläge können an <a 270 href="mailto:webmasters@gnu.org"><webmasters@gnu.org></a> gesendet 271 werden.</p> 272 273 <p> 274 <!-- TRANSLATORS: Ignore the original text in this paragraph, 275 replace it with the translation of these two: 276 277 We work hard and do our best to provide accurate, good quality 278 translations. However, we are not exempt from imperfection. 279 Please send your comments and general suggestions in this regard 280 to <a href="mailto:web-translators@gnu.org"> 281 282 <web-translators@gnu.org></a>.</p> 283 284 <p>For information on coordinating and contributing translations of 285 our web pages, see <a 286 href="/server/standards/README.translations.html">Translations 287 README</a>. --> 288 Bei der Übersetzung dieses Werkes wurde mit größter Sorgfalt 289 vorgegangen. Trotzdem können Fehler nicht völlig ausgeschlossen 290 werden. Sollten Sie Fehler bemerken oder Vorschläge, Kommentare oder Fragen 291 zu diesem Dokument haben, wenden Sie sich bitte an unser Übersetzungsteam <a 292 href="mailto:web-translators@gnu.org?cc=www-de-translators@gnu.org"><web-translators@gnu.org></a>.</p> 293 <p>Weitere Informationen über die Koordinierung und Einsendung von 294 Übersetzungen unserer Internetpräsenz finden Sie in der <a 295 href="/server/standards/README.translations">LIESMICH für Übersetzungen</a>.</p> 296 </div> 297 298 <!-- Regarding copyright, in general, standalone pages (as opposed to 299 files generated as part of manuals) on the GNU web server should 300 be under CC BY-ND 4.0. Please do NOT change or remove this 301 without talking with the webmasters or licensing team first. 302 Please make sure the copyright date is consistent with the 303 document. For web pages, it is ok to list just the latest year the 304 document was modified, or published. 305 306 If you wish to list earlier years, that is ok too. 307 Either "2001, 2002, 2003" or "2001-2003" are ok for specifying 308 years, as long as each year in the range is in fact a copyrightable 309 year, i.e., a year in which the document was published (including 310 being publicly visible on the web or in a revision control system). 311 312 There is more detail about copyright years in the GNU Maintainers 313 Information document, www.gnu.org/prep/maintain. --> 314 <p>Copyright © 2004, 2010, 2015, 2021 Richard Stallman.</p> 315 316 <p>Dieses Werk ist lizenziert unter einer <a rel="license" 317 href="//creativecommons.org/licenses/by-nd/4.0/deed.de">Creative Commons 318 Namensnennung-Keine Bearbeitungen 4.0 International</a>-Lizenz.</p> 319 320 <!--#include virtual="/server/bottom-notes.de.html" --> 321 <div class="translators-credits"> 322 323 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.--> 324 <strong>Übersetzung:</strong> Andreas K. Förster, 2006. Jоегg Kоhпе <a 325 href="https://savannah.gnu.org/projects/www-de"><www-de></a>, 2013, 326 2015.</div> 327 328 <p class="unprintable"><!-- timestamp start --> 329 Letzte Änderung: 330 331 $Date: 2021/10/08 10:06:17 $ 332 333 <!-- timestamp end --> 334 </p> 335 </div> 336 </div> 337 <!-- for class="inner", starts in the banner include --> 338 </body> 339 </html>