Paul Graham über Java und „Hacker“-Programmiersprachen (2001)

Paul Graham über Java und „Hacker“-Programmiersprachen (2001)

Dieser Aufsatz entstand aus Gesprächen, die ich mit mehreren Entwicklern über das Thema Voreingenommenheit gegenüber Java geführt habe. Dies ist keine Kritik an Java, sondern ein klares Beispiel für das „Hacker-Radar“.

Mit der Zeit entwickeln Hacker ein Gespür für gute – oder schlechte – Technologie. Ich dachte, es könnte interessant sein, die Gründe darzulegen, warum ich Java fragwürdig finde.

Einige, die es lasen, betrachteten es als einen bemerkenswerten Versuch, über etwas zu schreiben, über das noch nie zuvor geschrieben worden war. Andere warnten, ich schreibe über Dinge, von denen ich nichts wisse. Für alle Fälle möchte ich klarstellen, dass ich nicht über Java schreibe (mit dem ich noch nie gearbeitet habe), sondern über „Hacker-Radar“ (über das ich viel nachgedacht habe).

Der Ausdruck „Beurteile ein Buch nicht nach seinem Einband“ stammt aus einer Zeit, als Bücher in leeren Papphüllen verkauft wurden, die der Käufer nach seinen Wünschen band. Damals konnte man ein Buch nicht am Einband erkennen. Seitdem hat sich die Verlagsbranche jedoch stark weiterentwickelt und moderne Verlage unternehmen große Anstrengungen, um sicherzustellen, dass das Cover viel aussagt.

Ich habe viel Zeit in Buchhandlungen verbracht und glaube, dass ich gelernt habe, alles zu verstehen, was die Verlage mir sagen wollen, und wahrscheinlich noch mehr. Die meiste Zeit, die ich außerhalb von Buchhandlungen verbrachte, verbrachte ich vor Computerbildschirmen, und ich glaube, ich habe bis zu einem gewissen Grad gelernt, Technologie anhand ihrer Umschläge zu beurteilen. Es mag reines Glück sein, aber ich habe es geschafft, ein paar Technologien zu vermeiden, die sich als wirklich schlecht herausgestellt haben.

Eine dieser Technologien war für mich Java. Ich habe kein einziges Programm in Java geschrieben und die Dokumentation nur überflogen, aber ich habe das Gefühl, dass es nicht dazu bestimmt ist, eine sehr erfolgreiche Sprache zu werden. Ich könnte mich irren – Vorhersagen über Technologie zu treffen ist ein gefährliches Geschäft. Und doch, eine Art Zeugnis dieser Ära, hier ist der Grund, warum ich Java nicht mag:

  1. Übermäßige Begeisterung. Diese Standards müssen nicht vorgeschrieben werden. Niemand hat versucht, C, Unix oder HTML zu fördern. Echte Standards werden festgelegt, lange bevor die meisten Menschen überhaupt von ihnen hören. Auf dem Radar eines Hackers sieht Perl allein aufgrund seiner Vorzüge nicht schlechter aus als Java.
  2. Java hat keine hohen Ziele. In der Originalbeschreibung von Java gibt Gosling ausdrücklich an, dass Java so konzipiert wurde, dass es für Programmierer, die mit C vertraut sind, einfach zu bedienen ist. Es sollte ein weiteres C++:C sein, mit einigen Ideen, die von fortgeschritteneren Sprachen übernommen wurden. Wie die Macher von Sitcoms, Fast Food oder Reisereisen haben auch die Macher von Java bewusst ein Produkt für Menschen entworfen, die nicht so schlau waren wie sie selbst. In der Vergangenheit sind Sprachen, die für die Verwendung durch andere Menschen entwickelt wurden, gescheitert: Cobol, PL/1, Pascal, Ada, C++. Erfolgreich waren jedoch diejenigen, die die Macher selbst entwickelt haben: C, Perl, Smalltalk, Lisp.
  3. Versteckte Motive. Jemand hat einmal gesagt, dass die Welt ein besserer Ort wäre, wenn die Menschen nur dann Bücher schreiben würden, wenn sie etwas zu sagen hätten, anstatt zu schreiben, wenn sie Lust dazu hätten. Der Grund, warum wir immer wieder von Java hören, liegt nicht darin, dass sie versuchen, uns etwas über Programmiersprachen zu sagen. Wir hören von Java als Teil von Suns Plan, es mit Microsoft aufzunehmen.
  4. Niemand liebt sie. C-, Perl-, Python-, Smalltalk- oder Lisp-Programmierer sind in ihre Sprachen verliebt. Ich habe noch nie gehört, dass jemand seine Liebe zu Java erklärt hat.
  5. Die Menschen werden gezwungen, es zu benutzen. Viele Leute, die ich kenne, die Java verwenden, tun dies aus der Notwendigkeit heraus. Sie gehen davon aus, dass sie dadurch Gelder erhalten, oder sie glauben, dass es Kunden ansprechen wird, oder dass es eine Entscheidung des Managements ist. Das sind kluge Leute; Wenn die Technologie gut wäre, würden sie sie freiwillig nutzen.
  6. Dies ist ein Gericht vieler Köche. Die besten Programmiersprachen wurden von kleinen Teams entwickelt. Java wird von einem Komitee vorangetrieben. Sollte es sich um eine erfolgreiche Sprache handeln, wäre es das erste Mal in der Geschichte, dass ein Komitee eine solche Sprache geschaffen hat.
  7. Sie ist bürokratisch. Nach dem Wenigen, das ich über Java weiß, scheint es viele Protokolle zu geben, mit denen man alles machen kann. Wirklich gute Sprachen sind nicht so. Sie lassen Sie tun und lassen, was Sie wollen, und stehen Ihnen nicht im Weg.
  8. Künstlicher Hype. Jetzt versucht Sun so zu tun, als ob Java von der Community betrieben würde, dass es ein Open-Source-Projekt wie Perl oder Python sei. Und doch wird die Entwicklung von einem riesigen Unternehmen gesteuert. Es besteht also die Gefahr, dass sich die Sprache als das gleiche langweilige Elend erweist wie alles, was aus den Eingeweiden eines großen Unternehmens kommt.
  9. Es wurde für große Organisationen entwickelt. Große Unternehmen verfolgen mit Hackern unterschiedliche Ziele. Unternehmen benötigen Sprachen, die den Ruf haben, für große Teams mittelmäßiger Programmierer geeignet zu sein. Sprachen mit Eigenschaften wie die Geschwindigkeitsbegrenzer bei U-Haul-Lastwagen, die Dummköpfe davor warnen, zu viel Schaden anzurichten. Hacker mögen keine Sprachen, die sie herabwürdigen. Hacker brauchen Macht. In der Vergangenheit haben Sprachen, die für große Organisationen erstellt wurden (PL/1, Ada), verloren, während von Hackern erstellte Sprachen (C, Perl) gewonnen haben. Grund: Der jugendliche Hacker von heute ist der CTO von morgen.
  10. Die falschen Leute mögen sie. Die Programmierer, die ich am meisten bewundere, sind im Allgemeinen nicht verrückt nach Java. Wer mag sie? Anzüge, diejenigen, die den Unterschied zwischen Sprachen nicht sehen, aber in der Presse ständig von Java hören; Programmierer in großen Unternehmen, die davon besessen sind, etwas Besseres als C++ zu finden; Allesfresser im Vorgraduiertenstudium, die alles lieben, was ihnen einen Job verschafft (oder in einer Prüfung landet). Die Meinung dieser Menschen ändert sich mit der Windrichtung.
  11. Ihre Eltern haben es schwer. Das Geschäftsmodell von Sun wird an zwei Fronten angegriffen. Billige Intel-Prozessoren, die in Desktop-Computern verwendet werden, sind mittlerweile schnell genug für Server. Und FreeBSD scheint sich zu einem ebenso guten Server-Betriebssystem zu entwickeln wie Solaris. Die Werbung von Sun deutet an, dass Sie Sun-Server für Anwendungen in Produktionsqualität benötigen. Wenn das wahr wäre, wäre Yahoo der Erste, der Sun kaufen würde. Aber als ich dort arbeitete, nutzten sie Intel- und FreeBSD-Server. Das verheißt Gutes für die Zukunft von Sun. Und wenn Sun untergeht, könnte auch Java in Schwierigkeiten geraten.
  12. Liebe zum Verteidigungsministerium. Das Verteidigungsministerium ermutigt Entwickler, Java zu verwenden. Und das scheint das schlimmste Zeichen von allen zu sein. Das Verteidigungsministerium leistet hervorragende (wenn auch teure) Arbeit beim Schutz des Landes, es liebt Pläne, Verfahren und Protokolle. Ihre Kultur ist das völlige Gegenteil der Hackerkultur; Wenn es um Software geht, neigen sie dazu, die falschen Entscheidungen zu treffen. Die letzte Programmiersprache, in die sich das Verteidigungsministerium verliebte, war Ada.

Bitte beachten Sie, 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. Ich versuche nur zu erklären, warum ich kein Interesse daran habe, Java zu lernen.

Es mag voreilig erscheinen, eine Sprache zu verwerfen, ohne überhaupt zu versuchen, darin zu programmieren. Aber damit müssen sich alle Programmierer auseinandersetzen. Es gibt zu viele Technologien, um sie alle zu erkunden. Sie müssen lernen, anhand äußerer Anzeichen zu beurteilen, ob es Ihre Zeit wert ist. Mit der gleichen Eile habe ich unter anderem Cobol, Ada, Visual Basic, IBM AS400, VRML, ISO 9000, SET Protocol, VMS, Novell Netware und CORBA verworfen. Sie haben mich einfach nicht angesprochen.

Vielleicht irre ich mich im Fall von Java. Vielleicht wird sich eine Sprache, die von einem großen Unternehmen gefördert wird, um mit einem anderen zu konkurrieren, von einem Komitee für die breite Masse entwickelt, mit viel Hype entwickelt und vom Verteidigungsministerium geliebt, dennoch als eine nette, schöne und kraftvolle Sprache herausstellen, was ich gerne tun werde Programm ein. Vielleicht. Aber es ist sehr zweifelhaft.

Danke für die Übersetzung: Denis Mitropolsky

PS

Source: habr.com

Kommentar hinzufügen