2015-09-23 digital life Imperialismus Warum ich Java nicht mag Ich mag Java (die Programmiersprache) nicht. Aber warum mag ich sie nicht? Ein Gefuehl und einige grobe sachliche Argumente reichen nicht aus, um diesen Standpunkt ueberzeugend nach aussen zu vertreten. So war es an mir, zu ergruenden, weshalb ich Java nicht mag. Java ist das Cobol der Gegenwart. Diese Aussage tragen auch Java-Entwickler mit, zumindest diejenigen, die schon mal ueber den Tellerrand geschaut haben und zur Reflexion faehig sind. Java ist ein grosser Kompromiss. Es ist ein besseres C++, aber nicht viel mehr. Dass es im Informatik-Studium gelehrt wird, ist ein fataler Fehler, denn es vermittelt keine Erkenntnisse im Bezug auf gute Sprachkonzepte. Java zu lernen ist nur eine Ausbildung fuer die Wirtschaft. Sowas gehoert nicht an die Uni. Objektorien- tierung anhand von Java zu vermitteln, ist wie den Wert und die Schoenheit der Tierwelt anhand von Zoos. Wie ich aber feststelle, ist das nicht der eigentliche Grund, weshalb ich Java nicht mag, denn PHP ist diesbezueglich weit haesslicher, doch ich habe weniger Probleme damit. Das mag auch historische Gruende haben (Mit PHP habe ich ``richtig'' zu pro- grammieren gelernt.), aber nicht nur. Der Kern meiner Abneigung zu Java ist ihr Imperialismus. Java ist eine Welt, die dann gut funktioniert, wenn man sie einmal aktzep- tiert und dann nicht mehr in Frage stellt. Java ist nicht nur eine Sprache; man muss sich schon auf ein ganzes Oekosystem -- ein Imperium -- einlassen. Das beginnt bei der Entwick- lungsplattform (Eclipse bzw. Netbeans), geht ueber Buildsysteme, bis zu Application-Servern -- alles schoen homogenisiert und unter Kontrolle. Die Java-Welt strebt danach, all diese Aspekte einzunehmen und unter Kontrolle zu bringen. Das ist Imperial- ismus. Ich mag das nicht. Ich will mich nicht einem Imperium ver- schreiben. Ich suche Offenheit, Vielfalt und Kooperation. PHP mag zwar haesslich sein, aber es ist nur eine Sprache. PHP diktiert keine Entwicklungsplattformen oder sonstige Organe, die man quasi verwenden muss. In PHP gibt es nicht diese Abgrenzung zwischen Innen und Aussen des Imperiums, wie bei Java. PHP ist durchlaessig und fuegt sich in eine bunte Umgebung ein -- ganz anders als Java. Unix ist in dieser Hinsicht das Gegenteil von Java. Unix ist Vielfalt und Offenheit pur. Fast seit Beginn unterstuetzt Unix eine Vielzahl von Sprachen: Seine eigenen Sprachen Shell, C und spaeter awk, aber auch fremde, wie Pascal und Fortran (inkl. der Variante Ratfor). Das beste Beispiel fuer den anti- imperialistischen Charakter von Unix ist aber seine Ermunterung dazu, dass sowohl Administratoren als auch User das System nach ihren eigenen Belieben anpassen. Das gipfelt darin, dass die Lo- ginshell auf Benutzerbasis (!) ausgetauscht werden kann. In einem imperialistischen System ist sowas unerwuenscht. In der Umsetzung tendiert der Imperialismus zu grossen Program- men, die den Charakter der Staatsform widerspiegeln. Ganz anders bei Unix, wo eine Vielzahl von kleinen Spezialisten entsteht, die dann gemeinsam immer wieder neu kombiniert werden, um Groesseres zu schaffen. In Java ist Code-Reuse noch immer ein Wunschtraum; bei Unix ist der Werkzeuggebrauch Realitaet. Ich will nicht sagen, dass der kontrollierte, grosse Ansatz des Imperialismus nicht auch Vorteile haette - ich glaube, er hat sie in manchen Faellen -- aber ich sehe zu viele Probleme mit ihm verbunden. Am wichtigsten wiegt aber, dass ich in keiner imperi- alistischen Welt leben will. Wuerde ich Java programmieren, dann muesste ich das aber, denn nur so koennte ich ein guter Java- Entwickler sein, und gute Arbeit will ich in jedem Fall er- bringen. All diese Ueberlegungen sind aber letztlich irrelevant, da es einen viel einfacheren, uebergreifenden Leitgedanken gibt: Computer bieten mir so viele schoene, aesthetische und wunder- volle Welten -- viel mehr als mir zu erkunden moeglich ist -- warum sollte ich da auch nur einen einzigen Tag mit schlechteren verschwenden? http://marmaro.de/apov/ markus schnalke