Loading...

JAVAS COVER

Original

April 2001

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

Im Laufe der Zeit entwickeln Hacker ein Gespür für gute (und schlechte) Technologie. Ich dachte, es könnte interessant sein, aufzuschreiben, was Java für mich verdächtig erscheinen lässt.

Einige Leute, die das gelesen haben, denken, es sei ein interessanter Versuch, über etwas zu schreiben, das zuvor nicht behandelt wurde. Andere sagen, ich werde in Schwierigkeiten geraten, weil ich über Dinge schreibe, die ich nicht verstehe. Also, 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 den Radar von Hackern (über den ich viel nachgedacht habe).

Das Sprichwort "Man kann ein Buch nicht nach seinem Einband beurteilen" stammt aus Zeiten, als Bücher in schlichten Pappcovern verkauft wurden, die von jedem Käufer nach eigenem Geschmack gebunden werden sollten. In jenen Tagen konnte man ein Buch nicht nach seinem Einband beurteilen. Aber der Verlagswesen hat sich seitdem weiterentwickelt: Heutige Verlage arbeiten hart daran, das Cover so zu gestalten, dass man ein Buch daran erkennen kann.

Ich verbringe viel Zeit in Buchhandlungen und habe das Gefühl, dass ich mittlerweile gelernt habe, alles zu verstehen, was Verlage mir über ein Buch mitteilen wollen, und vielleicht sogar ein bisschen mehr. Die Zeit, die ich nicht in Buchhandlungen verbracht habe, habe ich größtenteils vor Computern verbracht, und ich habe das Gefühl, dass ich, bis zu einem gewissen Grad, auch gelernt habe, Technologie nach ihrem Äußeren zu beurteilen. Es mag nur Glück sein, aber ich habe mich vor einigen Technologien gerettet, die sich als echte Flops herausstellten.

Bisher scheint Java für mich ein Flop zu sein. Ich habe noch nie ein Java-Programm geschrieben, habe nie mehr als einen flüchtigen Blick in Referenzbücher darüber geworfen, aber ich habe das Gefühl, dass es keine sehr erfolgreiche Sprache sein wird. Ich könnte mich irren; Vorhersagen über Technologie sind ein gefährliches Geschäft. Aber für das, was es wert ist, hier ist als eine Art Zeitkapsel, warum ich das Aussehen von Java nicht mag:

  1. Es wurde so energisch gehypt. Echte Standards müssen nicht beworben werden. Niemand musste C, Unix oder HTML bewerben. Ein echter Standard ist in der Regel bereits etabliert, wenn die meisten Menschen davon hören. Auf dem Radar der Hacker ist Perl so groß wie Java oder größer, nur aufgrund seiner eigenen Verdienste.

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

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

  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 sind gezwungen, es zu benutzen. Viele der Leute, die ich kenne, die Java verwenden, tun dies, weil sie das Gefühl haben, es tun zu müssen. Entweder ist es etwas, das sie tun mussten, um finanzielle Mittel zu erhalten, oder etwas, von dem sie dachten, dass es die Kunden wollen würden, oder etwas, das ihnen von der Geschäftsführung gesagt wurde. Das sind kluge Leute; wenn die Technologie gut wäre, würden sie sie freiwillig verwenden.

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

  7. Es ist bürokratisch. Soweit ich über Java Bescheid weiß, scheint es viele Protokolle für die Durchführung von Dingen zu geben. Wirklich gute Sprachen sind nicht so. Sie lassen dich tun, was du willst, und halten sich aus dem Weg.

  8. Es ist pseudo-hip. Sun tut jetzt so, als wäre Java eine grassroots, Open-Source-Sprachinitiative wie Perl oder Python. Diese hier wird nur von einem riesigen Unternehmen kontrolliert. Daher wird die Sprache wahrscheinlich die gleiche triste Schwere haben wie alles andere, das aus einem großen Unternehmen kommt.

  9. Es ist für große Organisationen entworfen. Große Organisationen haben andere Ziele als Hacker. Sie wollen Sprachen, die (als geeignet angesehen werden) für den Einsatz 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 Sprache, die herablassend zu ihnen spricht. Hacker wollen einfach Macht. Historisch gesehen haben Sprachen, die für große Organisationen entworfen wurden (PL/I, Ada), verloren, während Hacker-Sprachen (C, Perl) gewonnen haben. Der Grund: Der heutige jugendliche Hacker 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 begeistert. Wer mag Java? Anzugträger, die nicht wissen, eine Sprache von einer anderen zu unterscheiden, aber wissen, dass sie ständig in der Presse von Java hören; Programmierer in großen Unternehmen, die erstaunt sind, dass es etwas gibt, das sogar besser ist als C++; und Plug-and-Chug-Studenten, die bereit sind, alles zu mögen, was ihnen einen Job verschaffen könnte (wird das in der Prüfung sein?). Die Meinungen dieser Leute ändern sich mit jedem Wind.

  11. Sein Vater steckt in der Klemme. Das Geschäftsmodell von Sun wird an zwei Fronten untergraben. Günstige Intel-Prozessoren, die vom gleichen Typ sind, der in Desktop-Maschinen verwendet wird, sind jetzt mehr als schnell genug für Server. Und FreeBSD scheint mindestens so gut ein Betriebssystem für Server zu sein wie Solaris. Suns Werbung impliziert, dass man Sun-Server für industrielle Anwendungen benötigt. Wenn das wahr wäre, würde Yahoo als erstes in der Schlange stehen, um Suns zu kaufen; aber als ich dort arbeitete, waren die Server alles Intel-Boxen, die FreeBSD liefen. Das deutet schlecht auf Suns Zukunft hin. Wenn Sun in Schwierigkeiten gerät, könnte es Java mit sich ziehen.

  12. Das DoD mag es. Das Verteidigungsministerium ermutigt Entwickler, Java zu verwenden. Das scheint mir das verheerendste Zeichen von allen zu sein. Das Verteidigungsministerium macht einen guten (wenn auch teuren) Job, um das Land zu verteidigen, aber sie lieben Pläne und Verfahren und Protokolle. Ihre Kultur ist das Gegenteil der Hacker-Kultur; in Fragen der Software neigen sie dazu, falsch zu wetten. Das letzte Mal, dass das DoD wirklich eine Programmiersprache mochte, war Ada.

Beachte, dass dies keine Kritik an Java ist, sondern eine Kritik an seinem Cover. Ich kenne Java nicht gut genug, um es zu mögen oder nicht zu mögen. Dies ist nur eine Erklärung, warum ich nicht das Gefühl habe, dass ich es eilig habe, es zu lernen.

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

Es könnte sein, dass ich im Fall von Java falsch liege. Es könnte sein, dass eine Sprache, die von einem großen Unternehmen beworben wird, um ein anderes zu untergraben, von einem Komitee für ein "Mainstream"-Publikum entworfen wurde, bis zum Himmel gehypt wird und vom DoD geliebt wird, dennoch eine saubere, schöne, leistungsstarke Sprache ist, in der ich gerne programmieren würde. Es könnte sein, aber es scheint sehr unwahrscheinlich.