Haskell vs Java-Leistung


Antwort 1:

Beachten Sie diesen historischen Anlass: Michael O. Church wird Google verteidigen, auch auf Kosten einer seiner Lieblingssprachen (Haskell).

1998 galt die Programmiersprachenforschung als totes Feld. Die meisten der großartigen Ideen, die jetzt in Sprachen wie Clojure und Haskell zum Vorschein kommen, stammen aus den 1970er und 1980er Jahren.

Haskell war Ende der neunziger Jahre auch nicht annähernd so ausgereift und stabil wie heute. Könnten Sie 2014 ein Unternehmen im Google-Maßstab auf Haskell aufbauen? Ja möglicherweise. Es wird Lücken in jedem Tool geben, aber Sie können das Recht vermarkten, als Jobvorteil zu Open Source beizutragen, und das Problem ist gelöst. In den späten 1990er Jahren, als Sie gerade mit Risikokapital vollgepumpt wurden und keine Zeit haben, 100 Ingenieure in einer "esoterischen" Sprache auszubilden, die (zu der Zeit) nicht annähernd die Unterstützung der Bibliothek hatte? Wahrscheinlich nicht. Haskell ist nur ein weiteres verdammtes Gespräch, das Sie mit Investoren führen müssten, und das wird einige Zeit in Anspruch nehmen, um das Produkt zu entwickeln.

Egal was passiert, C ++ sollte auf der Whitelist von Google stehen. Es gibt viele Anwendungsfälle, in denen auch 2014 nichts anderes so gut funktioniert. Wenn Sie im Google-Maßstab erstellen, benötigen Sie eine Sprache für verwalteten Speicher. Und während die Leute C in der Zusammenfassung lieben und argumentieren werden, dass C ++ hässliche Bloatware ist, wollte Google nicht, dass hundert Programmierer ihre eigenen Hash-Tabellen und alternativen Zeichenfolgentypen schreiben, und entschied sich stattdessen (mit Bedacht), C ++ so weit wie möglich zu reparieren sie konnten. Und (obwohl ich auf ein schreckliches Legacy-Projekt gestoßen bin) der größte Teil des C ++ - Codes bei Google ist sehr gut und in typischen Unternehmen viel besser lesbar als Code in "besseren" Sprachen.

Java (das bei Google nicht so hoch angesehen ist wie C ++) wurde durch Akquisitionen auf die weiße Liste gesetzt. Wenn Sie jedes halbherzige Startup aufnehmen wollen, das von jemandem finanziert wird, dem eine Führungskraft einen Gefallen schuldet, dann werden Sie viel Java essen, also können Sie das auch auf die weiße Liste setzen.

Python wird als "High-Level" -Prototyping-Sprache auf die Liste gesetzt, aber (ab 2011) wird davon abgeraten, es in Produktion zu bringen, und das nicht aus schlechten Gründen.

Damit ist das Grundbedürfnis von Google ausgefüllt. Es gibt Go and Dart und einige andere interne Sprachen ... aber Google sieht keine Notwendigkeit für Innovationen in Lisp oder Haskell. Es ist einfach keine Firma für Programmiersprachen. Dies ist wirklich einer der Fehler, die wir alle (einschließlich meiner selbst, schmerzhaft und öffentlich) in Bezug auf Google gemacht haben: Wir erwarten, dass es in jeder Frage "Technologieführer" ist. Wenn wir dann feststellen, dass es intern viel Java verwendet oder dass es sich nicht wirklich um die Spielqualität des G + Games-Produkts kümmert, sind wir schockiert über diesen Mangel an Führung in Bezug auf unsere Haustierprobleme (schuldig). Google kann es sich jedoch nicht leisten, in allem führend zu sein. Es führt in ein paar Dingen, macht Milliarden von Dollar dabei. Ist die Verwendung von so viel Java (auf Kosten von Clojure und Haskell) die richtige Wahl für den Technologieführer? Nein natürlich nicht. Ist es richtig für Google? Möglicherweise. Es ist eine Geschäftsentscheidung und ich kenne nicht alle Variablen. Die falsche und gefährliche Annahme ist, dass von einem Unternehmen (einem börsennotierten Unternehmen, das gegenüber Investoren rechenschaftspflichtig ist, nicht weniger) jemals erwartet werden kann, dass es in allen Dingen "Technologieführer" ist. Das ist eine unvernünftige Erwartung, und das liegt an uns.