Fashion Sale Hier klicken Jetzt informieren b2s Cloud Drive Photos Learn More sommer2016 HI_PROJECT Hier klicken Fire Shop Kindle PrimeMusic Autorip Summer Sale 16

Kundenrezensionen

4,0 von 5 Sternen
3
4,0 von 5 Sternen
Format: Taschenbuch|Ändern
Preis:31,95 €+ Kostenfreie Lieferung mit Amazon Prime

Ihre Bewertung(Löschen)Ihre Bewertung
Sagen Sie Ihre Meinung zu diesem Artikel

Derzeit tritt ein Problem beim Filtern der Rezensionen auf. Bitte versuchen Sie es später noch einmal.

am 8. September 2012
Als ich Ken Thompson im Jahr 2000 besucht habe, machten die Heroen des UNIX-Zeitalters den Eindruck eines müden Veteranenklubs. Ken hat auch den von Präsident Clinton verliehenen science-award als over-the-hill Medaille bezeichnet. In den Bell-Labs ist die vormalige Geniefreiheit unter dem Diktat der Betriebswichtl zu Ende gegangen. Inferno, Plan 9 wurden sukessive abgewürgt.
Mit Go haben sie wie einst der Alte Mann und das Meer noch einen großen Fisch gefangen. Die Sprache bringt meine Mathematikerseele zum Schwingen. Mit einem Minimum an Konzepten und Tastaturanschlägen ist Go eine sehr mächte Sprache. Wobei es Ken Thompson wohl vor allem um die Einsparung von Tasturanschlägen gegangen ist. Er denkt viel schneller als er tippen kann. Z.B. enden Statements laut Sprachstandard mit einem ";". Allerdings setzt der Compiler diese am Zeilenende automatisch ein. Im Moment schreibe ich aus alter Gewohnheit noch das ";" und lösche es - damit es wie Go-Kode aussieht - beim Überarbeiten des Kodes weg. Aber ich tipp auch schneller und denk langsamer wie Ken.
Go hat eine Reihe von Features die ich in anderen Sprachen immer schon haben wollte. Vor allem vermeidet es Features, die ich immer schon abstossend gefunden habe.
Ein Beispiel für Ersteres ist das Statement zur Berechnung des aktuellen Datums (Jahr, Monat, Tag):
y,m,d := time.Now().Date()
In C hat es mich immer schon genervt, dass man zuerst y,m,d deklarieren und dann als Reference in der Parameterliste übergeben muss. In Java muss man überhaupt erst eine Klasse definieren.
Ein abstossendes Feature sind die Konstruktur und Destruktur Regeln in C++. Da blickt inklusive Compiler-Bauer wohl niemand mehr durch. Ich hasse auch Operator-Overloading. Manchmal ist das sinnvoll (z.B. für eine Matrix-Klasse), meistens ergibt es vollkommen unleserlichen Kode.
Java ist viel sauberer, dafür sind wieder eine Reihe von Sachen sehr umständlich (siehe Beispiel oben) und verschenkt man - Just-In-Time-Compiler hin oder her - auch Performance. Der Integer-Datentyp ist auch mehr als dürftig.
In Go gibt es überhaupt keine Klassen und auch kein Operator-Overloading. Die Sprache ist aber genauso mächtig. Es gibt auch explizit eingebaute uint8,...,uint64. Die Typen werden streng überprüft. Der Compiler klopft einem auf die Finger, wenn man eine uint8 mit 1000 multiplizieren will. Man muss explizit casten.

Das Buch ist eine ausgezeichnete und sehr detaillierte Einführung in Go. Es richtet sich an erfahrene Programmierer. Für Programmierneulinge ist es wahrscheinlich ungeeignet. Der Autor kennt sich offensichtlich aus. Es gibt als download eine Vielzahl von guten Beispielprogramme. Die alle laufen und soweit ich das bisher überprüfen konnte, auch tun was sie tun sollen. Das ist heute leider nicht mehr selbstverständlich. Die Erklärungen im Buch beschränken sich auf die wesentlichen Konzepte. Der Autor schindet keine Buchseiten mit dem Abdrucken von redunanten Kodelistings. Summerfield ist aber bisserl ein Evangelist. Er preist das Go-Licht, den Schatten umschifft er elegant.

"Go programs are written in plain text Unicode using UTF-8 encoding. Most modern text editors can handle this automatically, and some of the most popular may even support for Go color syntax highlighting and automatic identation".

Man könnte es auch so ausdrücken. Es gibt im Moment keine brauchbare IDE. Weder Vim noch Notepad++ unterstützen standardmässig diese sehr bescheidenen Features. Der Go-way ist sowieso: Man schreibt alles in einer Wurscht und lässt dann go fmt drüber laufen. Laut den Erfindern beendet das ein für allemal die unnötigen Glaubenskriege wie man Kode richtig formatiert (m.E. wird über die Formatierungsregeln von fmt gestritten werden bzw. wird es verschiedene fmt Abspaltungen geben). Wobei allerdings Vim unter Windows mit den von fmt erzeugten Zeilenumbrüchen nicht zurecht kam.
Ich verwende nun Notepad++. Damit kann man leben. Aber es ist doch ein ziemliches Retro-Programmiererlebnis. Aber zumindest muss man keine Lochkarten mehr stanzen.
Eine Sprache kann noch so schön und mächtig sein. Wenn es keine brauchbare Entwicklungsumgebung gibt, wird sie auf Freaks beschränkt bleiben. Mir ist unverständlich, warum Google in dieser Richtung keine Anstrengungen unternimmt. Möglicher Weise wird Go mehr als Konzept-Studie betrachtet.

Ich habe einst C mit Kernighan&Ritchie gelernt. Es gab nichts Anderes und es ist auch nix Besseres nachgekommen. Dieses Buch ist wahrscheinlich das K&R für Go.

Anmerkung 2012.09.27: Ich habe inzwischen ein Portfolio-Optimierungs-Problem auf Go portiert. Es wird ein Committee von verschiedenen Optimierungskriterien verwendet (siehe sibylfinance homepage). Jeder Experte agiert unabhängig. Diese Berechnungen lassen sich daher parallelisieren. Die Parallelisierung ist mit GoRoutinen trivial. Allerdings habe ich auf einem 8-core Rechner unter Ubuntu so gut wie keinen Speedup erhalten. Wenn man die Experten als jeweils eigenen Prozess startet, ist der speedup wie erwartet fast linear.
Die Implementierung der GoRoutinen hat offensichtlich noch Verbesserungspotential.
Das dürfte allgemein gelten. Die Konzepte sind sehr gut, aber es hapert noch bei den feinen Details.
55 Kommentare| 14 Personen fanden diese Informationen hilfreich. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 31. Juli 2014
Das Buch ist ohne Frage DAS Referenzwerk für die faszinierende Sprache Go.
Leider sind die meisten Quellcode-Beispiele fehlerhaft, weil meist Zeichen wie der Inversionsoperator "!" oder das "!" oder erste "=" bei Operatoren wie "!=" oder "==" oder auch Klammern fehlen. Ähnliche Probleme treten auch beim Buch "The Go Programming Language Phrasebook" vom gleichen Verlag auf. Dort gibt es aber wenigstens anklickbare "Code Images", die dann korrekt sind- bei "Progamming in Go" muss man versuchen, sich diese Fehler "wegzudenken", um den Code überhaupt verstehen zu können.

Das ist für erfahrene Programmierer nur anstrengend, aber für Einsteiger unmöglich.
11 Kommentar| 3 Personen fanden diese Informationen hilfreich. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 9. Juni 2014
I wanted to learn more about Go language and I think this book is a decent introduction to the language.
0Kommentar|War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden