Habe die Tage etwas über Go rumgelesen und ich verstehe nicht ganz was die Leute daran so toll finden. Letztens etwa auf HN:
- Die Dokumentation ist komisch. Ich habe davor "The D Programming Language" gelesen was exzellent war, aber Mark Summerfields Buch überzeugt mich wenig und das Go Phrasebook ist an sich zwar gar nicht schlecht, wirkt aber teils eher die ein Repo mit Codesnippets und jeweils einer Seite Erklärung, ohne Struktur.
- Die Fehlerbehandlung ist eigenwillig. Ich hätte gedacht wir hätten in den 34 Jahren seit C gemerkt dass unbehandelte Fehler schlecht sind. Die Tatsache dass Go-Funktionen mehrere Rückgabewerte via ner Slice haben können ist nett, aber ich finds letztendlich ähnlich schwach wie die (return_value, errorcode)-Callbacks in Node, die auch kaum einer sinnvoll behandelt.
- Der Compiler ist seltsam. Google Go kann nur statische Executables und gccgo macht Goroutines zu OS-Threads, womit ein Teil des Vorteiles von Goroutinen verfliegt. Davor hießen die Compiler nach nem seltamen 5, 6, 8-Schema und es wirkt alles so etwas Plan 9-Fremdkörperartig, wie von Leuten geschrieben die Syntax Highlighting für ne schlechte Idee halten (sam anyone?)
- Mutable Datenstrukturen. Gerade für ne Sprache die so auf Concurrency ausgelegt wird find ich die Handhabung von mutablen Datenstrukturen etwas lasch. Da hat man sich in D wie ich finde deutlich mehr Gedanken gemacht.
- Die Syntax: ist meiner Meinung nach weder C noch irgendwas elegantes. Sie existiert halt, aber sonderlich viel mehr positives fällt mir da nicht auf.
- Das Typsystem: ich weiß ehrlich nicht ob ich es gut finden soll. Es wirkt wie C mit dynamic typing irgendwo eingeworfen.
Vielleicht ist das was ich suche auch eher Rust, aber das hab ich mir bisher auch gar nicht angeschaut.