golang

Buchbesprechung Die Programmiersprache Go

Buchbesprechung Die Programmiersprache Go
Die Programmiersprache Go von Alan A. EIN. Donovan und Brian Kernighan, wird in diesem Beitrag besprochen. Brian Kernighan ist als Co-Autor von The C Programming Language bekannt, und dieses Buch selbst hat sich für Generationen von Ingenieuren als Standardtext durchgesetzt. Go wurde oft als das C des 21. Jahrhunderts bezeichnet und die Programmiersprache Go könnte sehr wohl der Standard-Referenztext dafür sein.

Der Anfang

Das Buch beginnt stark mit a Lernprogramm Kapitel, das Ihnen ein einfaches „Hallo, Welt“-Programm gibt und einige der Vorteile der Verwendung von Go aufzeigt. Der Minimalismus wird Programmierer ansprechen, die es mit aufgeblähten Bibliotheken haben. Sie können keine Variable deklarieren und sie nicht im Rest Ihres Go-Programms verwenden. Sie können eine Bibliothek nicht importieren und nicht in Ihrem Code verwenden. Es wird einfach nicht kompiliert. Sie müssen nicht über das Format Ihres Codes streiten. Zum Beispiel der uralte Kampf zwischen:

func main()

//Und
func main()

Wird vom Compiler abgerechnet, der nur ersteres akzeptiert und nicht letzteres. Andere Nuancen werden durch Tools wie gofmt erledigt, die Ihre Go-Quelldatei auf standardisierte Weise formatieren. So folgen alle Go-Programme der gleichen Konvention, was wiederum die Lesbarkeit des Codes verbessert.

Das erste Kapitel hebt diese Verkaufsargumente hervor und gibt den Lesern wirklich einen Vorgeschmack auf das, worum es bei Go wirklich geht: Eine universelle Sprache, die entwickelt wurde, um statische Binärdateien mit so wenig Bloat wie möglich zu generieren.

Kürze

Erfahrene Programmierer sind es leid, immer wieder dieselben Konzepte wie for-Schleifen, if-else-Anweisungen usw. für verschiedene Sprachen zu lernen. Das erste Kapitel schleicht sich all diese langweiligen Informationen ein, indem es die Benutzer ermutigt, einfache Unix-y-Programme zu schreiben (wie es bei der Programmiersprache C der Fall war).

Ein Nachteil davon Schnelleinführung ist die Tatsache, dass neue Leser von der Syntax völlig verwirrt sein werden. Programme beginnen schnell mit der Verwendung der Punktoperatoren und verschiedener objektorientierter Programmierkonzepte nach zwei oder drei Beispielen im ersten Kapitel. Dies ist wichtig, um die Geschwindigkeit und Kürze des gesamten Leseerlebnisses aufrechtzuerhalten, und wird von den Autoren sehr bewusst gewählt.

Das Buch geht auch davon aus, dass der Leser mit mindestens einer Programmiersprache vertraut ist, bevor er dieses Buch in die Hand nimmt. Dies kann Python, JavaScript, Java, C oder eine andere Allzwecksprache sein.

Companion-Website

Das Buch kommt mit einer begleitenden Website. Sie können die im Buch angegebenen Programme direkt von dieser Website importieren und ausführen, ohne etwas eingeben zu müssen (oder von Ihrer Kindle-App kopieren und einfügen). Sie können sogar das erste Kapitel (das übrigens mein Lieblingskapitel ist) kostenlos auf dieser Website lesen und entscheiden, ob dieses Buch für Sie ist oder nicht.

Die Autoren haben auf die Mühen eines Programmierers geachtet, der versucht, eine neue Sprache zu lernen. Ablenkungen werden auf ein Minimum reduziert, indem der Weblink jedes Programms oben erwähnt wird. So können Sie den Code abrufen, ausführen, optimieren und darauf aufbauen, wenn Sie möchten.

Auf dieser Website wird auch eine umfassende Liste von Errata geführt, auf die Sie verweisen können, wenn Sie der Meinung sind, dass etwas nicht stimmt.

Ernste Angelegenheit

Wenn Sie eine einfache Anleitung zum kausalen Scripting erwarten, ist dies nicht das richtige Buch für Sie. Der Grund dafür ist, dass zuerst viel Thema behandelt wird und dann die Details ausgefüllt werden, während wir zu späteren Kapiteln voranschreiten.

Dieses Buch ist für Leute, die die Konstrukte, die Details der Funktionsweise von Go verstehen wollen. Sie werden GIFs erstellen, Webserver schreiben und Mandelbrot-Mengen zeichnen und vieles mehr, aber nichts davon würde Sinn machen, es sei denn, Sie haben die Feinheiten der vorangegangenen Kapitel beachtet (wobei Kapitel 1 eine Ausnahme bildet, da es ist als Überblick über die Sprache gedacht).

Der Großteil des Rests des Buches konzentriert sich auf verschiedene Syntax-bezogene Details über Go, einschließlich Steuerschleifen, Variablen, Funktionen, Methoden, Go-Routinen und vieles mehr. All dies wird veranschaulicht, indem der Leser nützliche Programme und keine erfundenen idealistischen Szenarien durchgeht.

Selbst wenn Sie die meisten Kapitel ab der Mitte des Buches überspringen möchten, würde ich dringend empfehlen, Kapitel 5 zu durchsuchen, um ein Verständnis von Panik, Fehlerbehandlung und anonymen Funktionen zu erhalten. Ich würde jedoch dringend empfehlen, alle Kapitel nacheinander durchzugehen, bevor wir zum Kronjuwel von Go kommen - Concurrency.

Betonung der Parallelität

Die Go-Sprache wurde von Grund auf im Hinblick auf Parallelität entwickelt. Die meisten modernen Prozessoren sind Multicore- und Multithread-Prozessoren, aber Programmierer verachten die Komplikationen, denen sie beim Schreiben von Programmen begegnen, die auf einer solchen Architektur laufen. Da Cloud Computing in Richtung verteilter Systeme geht, wird Concurrent Code bald der einzige leistungsfähige Code auf dem Markt sein.

Das Kapitel über Parallelität wurde geschrieben, um die Angst vor gleichzeitigem Design aus unseren Köpfen zu verbannen. Es ist kompliziert, ja, aber nicht hoffnungslos. Das Buch vermittelt sehr gut, wie Go Ihnen dabei helfen kann, daraus die richtige Denkweise zu entwickeln.

Fazit

Die Erfahrung von Kernighan aus den frühen UNIX-Tagen ist im modernen Zeitalter von Cloud-Desktops, GPUs, IOT, Cloud und was auch immer noch folgen wird, immer noch sehr praktikabel. Er und Donovan haben großartige Arbeit geleistet, diese Weisheit des Anwendungsdesigns und der UNIX-Philosophie unter Verwendung einer einfachen, modernen Sprache mit Blick auf Leistung zu vermitteln, und ich kann dieses Buch ohne Zögern jedem empfehlen, vom Oberschüler bis zum leitenden Softwareingenieur mit jahrzehntelange erfahrung.

Beste Befehlszeilenspiele für Linux
Die Befehlszeile ist nicht nur Ihr größter Verbündeter bei der Verwendung von Linux – sie kann auch eine Quelle der Unterhaltung sein, da Sie damit vi...
Beste Gamepad-Mapping-Apps für Linux
Wenn du Spiele unter Linux gerne mit einem Gamepad statt mit einem typischen Tastatur- und Maus-Eingabesystem spielst, gibt es einige nützliche Apps f...
Nützliche Tools für Linux-Spieler
Wenn Sie gerne unter Linux spielen, haben Sie wahrscheinlich Apps und Dienstprogramme wie Wine, Lutris und OBS Studio verwendet, um das Spielerlebnis ...