taler-merchant-demos

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

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&#160;&#8209;&#160;2010 durch Oracle übernommen und
     28 eingegliedert!&#160;&#8209;&#160;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&#160;&#8209;&#160;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&#160;&#8209;&#160;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&#160;&#8209;&#160;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, &#8222;Es ist zu viel Arbeit, um
    153 anzufangen.&#8220; Dann wird Ihr Programm in die Java-Falle getappt
    154 sein&#160;&#8209;&#160;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 &#8222;Standard&#8220;-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&trade; 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&#160;&#8209;&#160;ein im Wesentlichen alle zum
    205 Betrieb notwendigen Komponenten umfassendes (Self-Hosting)
    206 GNU-Betriebssystem&#160;&#8209;&#160;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> &lt;gnu.org/licenses/license-list.html&gt;</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 &amp; GNU an <a
    266 href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</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">&lt;webmasters@gnu.org&gt;</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         &lt;web-translators@gnu.org&gt;</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">&lt;web-translators@gnu.org&gt;</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 &copy; 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">&lt;www-de&gt;</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>