Week 1, continued
Heutige kommerzielle Programmiersprachen - Insbesondere C ++ und Java seien viel zu komplex und für die heutigen Computerumgebungen nicht angemessen geeignet, argumentierte der angesehene Google-Ingenieur Rob Pike in einem Vortrag am Donnerstag auf der Open Source-Konferenz O'Reilly.
Pike argumentierte gegen solche "Industrielle Programmiersprachen" während seiner Keynote auf der Konferenz in Portland, Oregon.
"Ich denke, diese Sprachen sind zu schwer zu verwenden, zu subtil, zu kompliziert. Sie sind viel zu weitschweifig und ihre Subtilität, Kompliziertheit und Ausführlichkeit scheinen im Laufe der Zeit zuzunehmen ", sagte Pike. "Sie sind überverkauft und werden viel zu breit verwendet."
Pike erläuterte die Unzulänglichkeiten solcher Sprachen als eine Möglichkeit, die Ziele zu beschreiben, die er und andere Google-Ingenieure für eine neue Programmiersprache mit dem Namen Go. haben
Als Beispiel für die Komplexität solcher Sprachen zeigte Pike einige Beispiele für C ++ - Code. Ein Beispiel war eine variable Deklaration, die sich fast über eine ganze Bildschirmlinie erstreckte.
"Wie können wir so etwas wie die Standardmethode des Rechnens haben, die in Schulen gelehrt wird und in der Industrie verwendet wird? " fragte er rhetorisch. Diese Art von Programmierung "ist sehr bürokratisch. Jeder Schritt muss dem Compiler gerechtfertigt sein", sagte er.
Während Pike einräumte, dass er etwas witzig sei, behauptete er, dass solche Fragen immer noch gestellt werden sollten. C ++ entstand wegen der Frustration der Leute mit der Low-Level-C-Sprache und Java kam als eine Möglichkeit, C ++ zu vereinfachen. Mit der Zeit wurden jedoch neue Funktionen in beiden Sprachen hinzugefügt, wodurch sie immer komplexer wurden.
"Rauschen kommt mit Raffinesse", sagte er.
Pike fügte hinzu, dass solche Sprachen vor der Einführung der Multicore-Verarbeitung entwickelt wurden und weit verbreitete Vernetzung, so dass sie nicht leicht diese neuen Umgebungen unterbringen.
Pike ist nicht der einzige Google-Mitarbeiter, der Unzufriedenheit mit traditionellen kommerziellen Sprachen ausdrückt.
Auf der USENIX-Jahreskonferenz letzten Monat, Gmail-Ingenieur Adam de Boor überraschte das Publikum, indem er feststellte, dass der Gmail-Dienst des Unternehmens vollständig in JavaScript geschrieben war und dass sein gesamter Code, ungefähr 443.000 Zeilen, von Hand geschrieben wurde.
Er bemerkte, dass Java zwar expressiver, aber auch ausführlicher ist. "An diesem Punkt ist es für mich eine Frage der Wahl, welche Sprache Sie verwenden", sagte de Boor.
JavaScript ist einer von vielen Sprachen - andere enthalten Ruby und Python - die in den letzten 10 Jahren entwickelt wurden Jahre als Reaktion auf die wachsende Komplexität von C ++ und Java. Solche Sprachen hätten zwar auch eine einfachere Syntax, aber auch ihre Nachteile, argumentierte er.
Diese neuen Sprachen tendieren dazu, langsamer zu sein, skalieren nicht so gut und können mehr Fehler enthalten, erklärte Pike.
Die Sprachen werden eher interpretiert als kompiliert, was bedeutet, dass die Programme, die in solchen Sprachen geschrieben sind, vor dem Ausführen nicht kompiliert werden und daher langsamer laufen. Sie neigen auch dazu, dynamisch typisiert zu werden, was bedeutet, dass Programmierer nicht spezifizieren müssen, welche Art von Daten ihre Variablen enthalten.
"Dynamische Typisierung ist nicht unbedingt gut. Sie erhalten zur Laufzeit statische Fehler, die Sie wirklich haben sollten fange zur Kompilierzeit an ", sagte er.
In diesem Sinne beschrieb Pike Go als einen Versuch, die besten Eigenschaften beider Sprachen zu vereinen.
" Go ist ein Versuch, Sicherheit und Leistung zu kombinieren von statisch getippten Sprachen mit der Bequemlichkeit und dem Spaß dynamisch typisierter interpretativer Sprachen ", sagte er, bevor er hinzufügte," soweit es Erfolg hat, müssen Sie für sich selbst urteilen. "
Ein Mitglied des Publikums, Larry Augustin, der CEO des Kundenbeziehungsmanagement-Softwareanbieters SugarCRM, stimmte mit der Einschätzung von Pike überein, dass C ++ und Java zu komplex geworden seien, obwohl er feststellte, dass dies in der Regel mit allen Sprachen geschieht, wenn sie einem breiteren Spektrum von Anwendungsfällen entsprechen.
"Der Grund, warum diese Sprachen an Komplexität zugenommen haben, ist, dass je mehr sie verwendet werden, je mehr Fehler und Unklarheiten wir haben und die Versuche, diese Mehrdeutigkeiten und Fehler zu beseitigen, haben etwas Komplexeres geschaffen", sagte Augustin Hintergrund in Software Engineering und Programmiersprachen Design.
"Ich schätze sein Ziel", sagte er über Pikes Bemühungen. "Die Frage ist, ob er sein Zielergebnis erreichen kann oder ob Go [komplexer wird], je mehr Leute es verwenden", sagte Augustin.
Joab Jackson berichtet über Unternehmenssoftware und allgemeine Technologie für den IDG News Service. Folge Joab auf Twitter unter @Joab_Jackson. Joabs E-Mail-Adresse ist [email protected]