Loading...

JAVAS DECKUNG

Original

April 2001

Dieser Aufsatz entstand aus Gesprächen, die ich mit mehreren anderen Programmierern darüber geführt habe, warum Java verdächtig riecht. Es ist keine Kritik an Java! Es ist eine Fallstudie über den Radar von Hackern.

Mit der Zeit entwickeln Hacker ein Gespür für gute (und schlechte) Technologien. Ich dachte, es könnte interessant sein, aufzuschreiben, was Java für mich verdächtig erscheinen ließ.

Einige Leute, die dies gelesen haben, halten es für einen interessanten Versuch, über etwas zu schreiben, worüber noch nie geschrieben wurde. Andere meinen, ich werde Ärger bekommen, weil es den Anschein erweckt, als würde ich über Dinge schreiben, die ich nicht verstehe. Nur für den Fall, dass es etwas nützt, möchte ich klarstellen, dass ich hier nicht über Java schreibe (das ich nie verwendet habe), sondern über Hacker-Radar (worüber ich viel nachgedacht habe).

Der Aphorismus „Man kann ein Buch nicht anhand seines Einbands erkennen“ stammt aus der Zeit, als Bücher in einfachen Pappeinbänden verkauft wurden, die jeder Käufer nach seinem eigenen Geschmack binden konnte. Damals konnte man ein Buch nicht anhand seines Einbands erkennen. Doch das Verlagswesen hat sich seitdem weiterentwickelt: Die heutigen Verleger arbeiten hart daran, den Einband zu etwas zu machen, an dem man ein Buch erkennen kann.

Ich verbringe viel Zeit in Buchhandlungen und habe das Gefühl, dass ich inzwischen alles verstehe, was die Verleger mir über ein Buch sagen wollen, und vielleicht noch ein bisschen mehr. Die Zeit, die ich nicht in Buchhandlungen verbracht habe, habe ich hauptsächlich vor Computern verbracht und habe das Gefühl, dass ich bis zu einem gewissen Grad gelernt habe, Technologie auch nach ihrem Äußeren zu beurteilen. Es mag reines Glück sein, aber ich habe mir einige Technologien erspart, die sich als echte Reinfälle herausgestellt haben.

Bisher scheint mir Java ein Reinfall zu sein. Ich habe noch nie ein Java-Programm geschrieben und nie mehr als einen Blick auf Nachschlagewerke darüber geworfen, aber ich habe das Gefühl, dass es keine sehr erfolgreiche Sprache sein wird. Vielleicht irre ich mich auch; Vorhersagen über Technologie zu treffen ist ein gefährliches Geschäft. Aber für das, was es wert ist, als eine Art Zeitkapsel, hier ist, warum mir Java nicht gefällt:

  1. Es wurde so energisch gehypt. Echte Standards müssen nicht gefördert werden. Niemand musste C, Unix oder HTML fördern. Ein echter Standard ist in der Regel bereits etabliert, wenn die meisten Leute davon hören. Auf dem Radarschirm der Hacker ist Perl allein aufgrund seiner eigenen Vorzüge so groß wie Java oder sogar größer.

  2. Es zielt nicht aufs Wesentliche. Im ursprünglichen Java-Whitepaper sagt Gosling ausdrücklich, dass Java so konzipiert wurde, dass es für Programmierer, die an C gewöhnt sind, nicht zu schwierig ist. Es wurde als ein weiteres C++ konzipiert: C plus ein paar Ideen aus fortgeschritteneren Sprachen. Wie die Macher von Sitcoms, Junkfood oder Pauschalreisen haben die Entwickler von Java bewusst ein Produkt für Leute entwickelt, die nicht so schlau sind wie sie. Historisch gesehen waren Sprachen, die für andere Leute entwickelt wurden, schlecht: Cobol, PL/I, Pascal, Ada, C++. Die guten Sprachen waren diejenigen, die für ihre eigenen Schöpfer entwickelt wurden: C, Perl, Smalltalk, Lisp.

  3. Es hat Hintergedanken. Jemand hat einmal gesagt, die Welt wäre ein besserer Ort, wenn die Leute nur Bücher schreiben würden, weil sie etwas zu sagen haben, und nicht, weil sie ein Buch schreiben wollen. Und der Grund, warum wir ständig von Java hören, ist nicht, dass es etwas über Programmiersprachen zu sagen hat. Wir hören von Java als Teil eines Plans von Sun, Microsoft zu unterminieren.

  4. Niemand liebt es. C-, Perl-, Python-, Smalltalk- und Lisp-Programmierer lieben ihre Sprachen. Ich habe noch nie jemanden sagen hören, dass er Java liebt.

  5. Die Leute werden gezwungen, Java zu verwenden. Viele Leute, die ich kenne und die Java verwenden, verwenden es, weil sie das Gefühl haben, sie müssten es tun. Entweder ist es etwas, von dem sie dachten, sie müssten es tun, um Geld zu bekommen, oder etwas, von dem sie dachten, die Kunden würden es wollen, oder etwas, das ihnen vom Management aufgetragen wurde. Das sind kluge Leute; wenn die Technologie gut wäre, hätten sie sie freiwillig verwendet.

  6. Es gibt zu viele Köche. Die besten Programmiersprachen wurden von kleinen Gruppen entwickelt. Java scheint von einem Komitee geleitet zu werden. Wenn es sich als eine gute Sprache herausstellt, wäre es das erste Mal in der Geschichte, dass ein Komitee eine gute Sprache entwickelt hat.

  7. Es ist bürokratisch. Nach dem wenigen, was ich über Java weiß, scheint es eine Menge Protokolle zu geben, um Dinge zu tun. Wirklich gute Sprachen sind nicht so. Sie lassen Sie tun, was Sie wollen, und halten sich aus dem Weg.

  8. Es ist pseudo-hip. Sun gibt jetzt vor, Java sei eine Grassroots-Open-Source-Sprache wie Perl oder Python. Diese wird nur zufällig von einem riesigen Unternehmen kontrolliert. Daher ist die Sprache wahrscheinlich genauso eintönig und schwerfällig wie alles andere, was aus einem großen Unternehmen kommt.

  9. Es ist für große Organisationen konzipiert. Große Organisationen verfolgen andere Ziele als Hacker. Sie wollen Sprachen, die (vermutlich) für die Verwendung durch große Teams mittelmäßiger Programmierer geeignet sind – Sprachen mit Funktionen, die wie die Geschwindigkeitsbegrenzer in U-Haul-Trucks verhindern, dass Dummköpfe zu viel Schaden anrichten. Hacker mögen keine Sprachen, die von oben herab mit ihnen reden. Hacker wollen nur Macht. Historisch gesehen haben Sprachen, die für große Organisationen entwickelt wurden (PL/I, Ada), verloren, während Hackersprachen (C, Perl) gewonnen haben. Der Grund: Der jugendliche Hacker von heute ist der CTO von morgen.

  10. Die falschen Leute mögen es. Die Programmierer, die ich am meisten bewundere, sind im Großen und Ganzen nicht von Java fasziniert. Wer mag Java? Anzugträger, die die eine Sprache nicht von der anderen unterscheiden können, aber wissen, dass sie in der Presse immer wieder von Java hören; Programmierer in großen Unternehmen, die erstaunt sind, dass es etwas gibt, das sogar noch besser ist als C++; und Plug-and-Chug-Studenten, die alles mögen, was ihnen einen Job verschaffen könnte (wird das in der Prüfung vorkommen?). Die Meinungen dieser Leute ändern sich mit jedem Wind.

  11. Sein Vater steckt in der Klemme. Suns Geschäftsmodell wird an zwei Fronten untergraben. Billige Intel-Prozessoren, vom gleichen Typ, der in Desktop-Rechnern verwendet wird, sind jetzt mehr als schnell genug für Server. Und FreeBSD scheint ein mindestens so gutes Betriebssystem für Server zu sein wie Solaris. Suns Werbung suggeriert, dass man Sun-Server für Anwendungen auf Industrieniveau braucht. Wenn das wahr wäre, wäre Yahoo der erste, der Suns kauft; aber als ich dort arbeitete, waren die Server alle Intel-Boxen mit FreeBSD. Das verheißt nichts Gutes für Suns Zukunft. Wenn Sun in Schwierigkeiten gerät, könnten sie Java mit in den Abgrund reißen.

  12. Dem Verteidigungsministerium gefällt das. Das Verteidigungsministerium ermutigt Entwickler, Java zu verwenden. Das scheint mir das vernichtendste Zeichen von allen zu sein. Das Verteidigungsministerium leistet gute (wenn auch teure) Arbeit bei der Verteidigung des Landes, aber sie lieben Pläne, Verfahren und Protokolle. Ihre Kultur ist das Gegenteil einer Hackerkultur; bei Softwarefragen neigen sie dazu, aufs Falsche zu setzen. Das letzte Mal, dass dem Verteidigungsministerium eine Programmiersprache wirklich gefiel, war es Ada.

Bedenken Sie, dass dies keine Kritik an Java ist, sondern eine Kritik an seinem Äußeren. Ich kenne Java nicht gut genug, um es zu mögen oder nicht zu mögen. Dies ist nur eine Erklärung dafür, warum ich nicht begierig darauf bin, es zu lernen.

Es mag leichtfertig erscheinen, eine Sprache abzulehnen, bevor man überhaupt versucht hat, Programme darin zu schreiben. Aber das ist etwas, was alle Programmierer tun müssen. Es gibt zu viele Technologien, um sie alle zu lernen. Sie müssen lernen, anhand äußerer Zeichen zu beurteilen, welche Ihre Zeit wert sind. Ich habe unter anderem Cobol, Ada, Visual Basic, IBM AS400, VRML, ISO 9000, das SET-Protokoll, VMS, Novell Netware und CORBA ebenso leichtfertig abgelehnt. Sie rochen einfach falsch.

Es könnte sein, dass ich mich im Fall von Java irre. Es könnte sein, dass eine Sprache, die von einem großen Unternehmen gefördert wird, um ein anderes zu untergraben, die von einem Komitee für ein „Mainstream“-Publikum entwickelt wurde, in den Himmel gepriesen wird und vom Verteidigungsministerium geliebt wird, trotzdem eine saubere, schöne, leistungsstarke Sprache ist, in der ich gerne programmieren würde. Das könnte sein, aber es scheint sehr unwahrscheinlich.