Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.
Click here to check if anything new just came in.
November 12 2009
Ich kann dir mal die aus meiner Sicht großen Vorteile aufzählen:
- Go hat ein leichtgewichtiges Objektmodell, d.h. es verzichtet auf eine Typhierarchie und setzt stattdessen Interfaces richtig um. Das sind beides Dinge, die weder auf C++ noch auf D zutreffen.
- Go ist, wenn man schon etwas Kontakt mit aktuellen OO-Sprachen und/oder C hatte, sehr leicht zu erlernen, weil man alle Sprachelemente im wesentlichen schon so oder ähnlich kennt, nur hier eben neu kombinert (eben keine Sprachrevolution, sondern eine Evolution).
- Go ist sicher.
- Go hat einen effizienten Garbage Collector (oder soll zumindest bald haben).
- Go ist schnell, zumindest wenn man den Angaben von Rob Pike traut, der von einem performance penalty von 10 bis 20 % im Vergleich zu C gesprochen hat.
- Go bietet einfach verständliche und anwendbare Primitiven für Multithreading (goroutines) und Thread-Kommunikation (communication channels).
Nun zu den Sprachvergleichen, die du gebracht hast: ja, C++ ist komplex, ja, C++ hat viele existierende Bibliotheken, aber die prominenten Bibliotheken (insbesondere boost) sind vollkommen overengineered, und Sprachinnovation in C++ findet hauptsächlich in Richtung Features statt, mit denen sich overengineerte Teile der Standardbibliothek oder von boost etwas vereinfachen lassen.
Eine Konkurrenz zu lua sehe ich nicht, denn lua spielt seine Stärken nicht bei den oben aufgezählten Punkten aus, sondern - was ich bisher so gesehen habe - primär bei der Einbettbarkeit in andere Programme.
Und naja, Erlang... die Konzepte zu Parallelisierung sind ja nett, Go hat sich mit goroutines und communication channels sicher etwas abgeschaut (oder parallel dazu entwickelt), letztlich finde ich Erlang aber zu umständlich einzusetzen und schwierig zu lesen und zu verstehen, für dumme Leute wie mich ist da Go geeigneter, weil da mehr Hirnschmalz für Programmieren und Debuggen übrig bleibt.
Natürlich ist Go noch einiges zu erledigen, das merkt man an Dingen wie der höchst unvollständigen Standardbibliothek oder dem praktisch undokumentieren Foreign Function Interface. Das Potential ist aber IMHO auf jeden Fall da, sich in den nächsten Jahren als weitere populäre Sprache zu verbreiten (dass an Go so Labels wie Google, Ken Thompson oder Rob Pike kleben, wird da auch so einiges zur Popularität beitragen...).
- Go hat ein leichtgewichtiges Objektmodell, d.h. es verzichtet auf eine Typhierarchie und setzt stattdessen Interfaces richtig um. Das sind beides Dinge, die weder auf C++ noch auf D zutreffen.
- Go ist, wenn man schon etwas Kontakt mit aktuellen OO-Sprachen und/oder C hatte, sehr leicht zu erlernen, weil man alle Sprachelemente im wesentlichen schon so oder ähnlich kennt, nur hier eben neu kombinert (eben keine Sprachrevolution, sondern eine Evolution).
- Go ist sicher.
- Go hat einen effizienten Garbage Collector (oder soll zumindest bald haben).
- Go ist schnell, zumindest wenn man den Angaben von Rob Pike traut, der von einem performance penalty von 10 bis 20 % im Vergleich zu C gesprochen hat.
- Go bietet einfach verständliche und anwendbare Primitiven für Multithreading (goroutines) und Thread-Kommunikation (communication channels).
Nun zu den Sprachvergleichen, die du gebracht hast: ja, C++ ist komplex, ja, C++ hat viele existierende Bibliotheken, aber die prominenten Bibliotheken (insbesondere boost) sind vollkommen overengineered, und Sprachinnovation in C++ findet hauptsächlich in Richtung Features statt, mit denen sich overengineerte Teile der Standardbibliothek oder von boost etwas vereinfachen lassen.
Eine Konkurrenz zu lua sehe ich nicht, denn lua spielt seine Stärken nicht bei den oben aufgezählten Punkten aus, sondern - was ich bisher so gesehen habe - primär bei der Einbettbarkeit in andere Programme.
Und naja, Erlang... die Konzepte zu Parallelisierung sind ja nett, Go hat sich mit goroutines und communication channels sicher etwas abgeschaut (oder parallel dazu entwickelt), letztlich finde ich Erlang aber zu umständlich einzusetzen und schwierig zu lesen und zu verstehen, für dumme Leute wie mich ist da Go geeigneter, weil da mehr Hirnschmalz für Programmieren und Debuggen übrig bleibt.
Natürlich ist Go noch einiges zu erledigen, das merkt man an Dingen wie der höchst unvollständigen Standardbibliothek oder dem praktisch undokumentieren Foreign Function Interface. Das Potential ist aber IMHO auf jeden Fall da, sich in den nächsten Jahren als weitere populäre Sprache zu verbreiten (dass an Go so Labels wie Google, Ken Thompson oder Rob Pike kleben, wird da auch so einiges zur Popularität beitragen...).
