Go als weitere Programmiersprache

Irgendwann in deiner Karriere als Entwickler:in kommst du an den Punkt, an dem du eine weitere Programmiersprache lernen und anwenden willst. Das Angebot an unterschiedlichen Sprachen ist sehr umfangreich und vielfÀltig.

Meine Entscheidung fĂŒr die nĂ€chste Programmiersprache ist mir zuerst nicht einfach gefallen. Deshalb hatte ich mich mit anderen Entwickler:innen ausgetauscht, um deren Favoriten zu erfahren. Zudem wollte ich mehr ĂŒber die technischen HintergrĂŒnde wissen.

DarĂŒber hinaus wollte ich die Sprache auch beruflich anwenden können und nicht nur privat. So bin ich letztendlich bei Go beziehungsweise Golang gelandet und bin sehr zufrieden mit dieser Entscheidung. 

In dem heutigen Artikel erhĂ€ltst du einen Überblick ĂŒber Go, mit folgenden Schwerpunkten:

Was ist das Ziel von Go?

Vielleicht ist dir bereits bekannt, dass Go von drei Entwicklern bei Google entworfen wurde. Die Programmiersprache sollte effektiv fĂŒr die Erstellung von zuverlĂ€ssigen und robusten Programmen sein.

Die Syntax und Anordnung Ă€hnelt stark der Programmiersprache C. ZusĂ€tzlich werden aus anderen Sprachen gute Ideen ĂŒbernommen und Features vermieden, die dort zu KomplexitĂ€t und unzuverlĂ€ssigem Code gefĂŒhrt haben. 

Einer der Hauptgedanken fĂŒr Go war, mit minimalen Mitteln ein Maximum an Wirkung zu erzielen.

Mittlerweile hat Google Go der Öffentlichkeit zur VerfĂŒgung gestellt. Dadurch konnte die Weiterentwicklung der Sprache von einer Open Source Community ĂŒbernommen werden.

WofĂŒr wird Go genutzt?

Stell dir Go als eine echte Allzwecksprache vor, die in unterschiedlichen Bereichen Anwendung findet. Interessante und wichtige Beispiele sind hier Machine Learning, mobile Anwendungen, skalierbare Netzwerkdienste und Cloud Computing.

Wie du merkst, ist Go damit ideal fĂŒr die Webentwicklung geeignet.

Was zeichnet Go aus?

Es gibt viele Vorteile, die fĂŒr Go sprechen. Hier gebe ich dir einen Überblick ĂŒber vier dieser Vorteile:

Einfachheit

Wenn du dich mit Go beschĂ€ftigst, wirst du die Einfachheit in der Syntax feststellen. 

Go versucht sich auf das wesentliche zu konzentrieren und verzichtet auf ĂŒberflĂŒssige AusfĂŒhrungen in der Syntax. Dies ist einer der GrĂŒnde, weshalb der Einsteig in Go fĂŒr erfahrene Entwickler:innen relativ einfach ist.

Compilersprache

Damit dein geschriebener Code ausgefĂŒhrt werden kann, muss er in Maschinensprache umgewandelt werden. Dies geschieht entweder durch einen Compiler, einen Interpreter oder einen Just-in-time-Compiler.

Compiler und Interpreter

Der Compiler liest zuerst den kompletten Code ein und ĂŒbersetzt ihn danach. In Bereichen in denen der Maschinencode schnell gelesen werden muss, werden Compilersprachen eingesetzt. Das ist zum Beispiel im Bereich Spracherkennung, KI oder AR der Fall.

Der Interpreter verarbeiten den Code zur Laufzeit, in dem er ihn Zeile fĂŒr Zeile liest und sofort ausfĂŒhrt. Es findet keine wirkliche Übersetzung in Maschinensprache statt. Stattdessen wird jede Anweisung im Code live und einzeln verarbeitet. 

Der Just-in-time-Compiler ist ein Hybrid zwischen Compiler und Interpreter.

Go als Compilersprache

In der Regel sind Compilersprachen deutlich performanter als Sprachen, die einen Interpreter nutzen.

Bei Go handelt es sich um eine Compilersprache, was erhebliche Vorteile bei der Geschwindigkeit mit sich bringt. Der Quellcode wird einmal beim AusfĂŒhren in Maschinensprache kompiliert und liegt direkt in der Ganzheit vor.

Garbage Collection

Unter Garbage Collection kannst du dir die Bereinigung von belegtem und nicht mehr benötigtem Speicherplatz vorstellen.

Speicherplatz wird etwa reserviert, um vorĂŒbergehend Variablen oder Datenobjekte zu speichern. Sobald die ProgrammausfĂŒhrung abgeschlossen ist, sollte dieser Speicherplatz wieder freigegeben werden, damit er anderweitig genutzt werden kann.

Geschieht dies nicht, lÀsst sich der Speicherplatz nicht mehr verwenden. Es entstehen Speicherlecks und stark fragmentierte Speicherbereiche.

Um als Entwickler:in die Speicherbereinigung nicht manuell durchfĂŒhren zu mĂŒssen, dient dir die Garbage Collection.

Je nach Programmiersprache und Laufzeitumgebung ist die Garbage Collection bereits integriert. Ansonsten gibt es auch fertige Bibliotheken, die du nutzen kannst, um Speicherbereinigung durchfĂŒhren zu können.

Go Garbage Collector

Go besitzt einen integrierten Garbage Collector. Damit das Programm zur Bereinigung nicht wĂ€hrend der AusfĂŒhrung gestoppt werden muss, ist der Go Garbage Collector nebenlĂ€ufig, also concurrent. Mehr zu Concurrency erfĂ€hrst du im nĂ€chsten Punkt.

Concurrency

Concurrency beziehungsweise NebenlÀufigkeit kannst du dir so vorstellen, dass mehrere Prozesse gleichzeitig und unabhÀngig voneinander erledigt werden.

Prozesse und Threads

Ein Prozess liegt dann vor, wenn es sich um eine Sammlung von Code, Speicher, Daten oder anderen Ressourcen handelt. Im einfachsten Sinne ist ein Prozess ein ausfĂŒhrendes Programm. Laufen mehrere Prozesse gleichzeitig, teilen sie sich die Ressourcen des Computers.

Eine EntitĂ€t eines Prozess ist der sogenannte Thread. Ein Thread ist eine Codesequenz, die im Rahmen eines Prozesses ausgefĂŒhrt wird. Ein Thread kann nur eine Aufgabe auf einmal erledigen.

In einem Prozess können jedoch mehrere Threads gleichzeitig zur Anwendung kommen.

Go Routinen

Willst du Concurrency in Go erreichen, kannst du die Go-Routinen verwenden.

Go-Routinen sind ein effizientes Tool, um Speicher und CPU zu sparen. Hierbei werden unterschiedliche Threads gleichzeitig genutzt, um die Anweisungen des Programms auszufĂŒhren.

Channels und Scheduler

Zur Kommunikation zwischen mehreren Go-Routinen, werden Channels eingesetzt.

FĂŒr die Koordination der Go-Routinen, dient der Scheduler. Dieser gibt an, was wann auf welchem Thread ausgefĂŒhrt wird.

Zusammenfassend kannst du dir mitnehmen, dass die Go-Runtime die Anweisungen des Programms auf mehrere Threads und somit CPU-Kerne verteilt. Rechner mit mehreren Kernen sind demzufolge besser ausgelastet.

Concurrency ist damit einer der HauptgrĂŒnde, weshalb Go so schnell ist.

Go Tutorials: So kannst du die Programmiersprache lernen

Wenn du mit Go starten willst, gibt es mehrere Möglichkeiten.

Go Playground

Du kannst Go entweder direkt auf deinem Rechner installieren oder du nutzt erstmal den Go Playground. Hier kannst du die Sprache online auszuprobieren, ohne ein lokales Setup einrichten zu mĂŒssen.

Neben dem Hello World Beispiel findest du unterschiedliche Code Snippets, wie etwa fĂŒr einen HTTP Server. Klicke hierfĂŒr auf das Dropdown MenĂŒ in der rechten oberen Ecke und wĂ€hle aus, was dich interessiert.

Die Beispiele im Go Playground kannst du anpassen, ausspielen lassen und dort sogar komplett eigenen Code schreiben.

Go by example

Auf der Seite go by example findest du eine praxisnahe EinfĂŒhrung in Go mit kommentierten Beispielen. Diese kannst du dir im Detail anzeigen lassen, indem du auf die entsprechenden Links klickst. Du wirst dadurch zum Source Code weitergeleitet und kannst das Programm ausfĂŒhren lassen.

Auf jeder Detailseite siehst du auf der linken Seite die ErklĂ€rung, wĂ€hrend  du rechts in den grauen Feldern den Code findest. 

Innerhalb der grauen Felder gibt es in der rechten oberen Ecke zwei Icons. Mit dem linken Icon kannst du den Code kopieren, falls du ihn lokal auf deinem Rechner ausfĂŒhren möchtest. Das rechte Icon leitet dich zum Go Playground weiter, wo nun das entsprechende Code Beispiel angezeigt wird. 

Go Dokumentation

Befindest du dich im Go Playground, siehst du im MenĂŒreiter auch den Link fĂŒr die Dokumentation. Daneben befinden sich zudem das Installationspaket, GrĂŒnde fĂŒr Go, den Blog und weitere interessante Links. Klicke dich einfach durch und probiere es aus.

Die Go Dokumentation unterstĂŒtzt dich beim Lernen der Sprache durch gut beschriebene Tutorials.

Go BĂŒcher

FĂŒr mich persönlich sind BĂŒcher eine weitere Möglichkeit, um mit einer Sprache in Kontakt zu kommen und deren zugrundeliegende FunktionalitĂ€ten zu verstehen. Deshalb habe ich mir das Buch* The Go Programming Language gekauft. Es wurde mir von einem anderen Entwickler empfohlen.

Was mir besonders gut an dem Buch gefÀllt, ist die Mischung aus Tutorial und ErlÀuterungen, um die Sprache in ihrer Tiefe zu begreifen.

*Achtung, bei dem Link zum Buch handelt es sich um einen Affiliate Link von Amazon. Wenn du das Buch darĂŒber bestellst, erhalte ich eine kleine Vermittlerprovision. Diese ermöglicht es mir, den Blog weiterhin zu betreiben. Danke!

Codewars

Ein weiteres Tool das du nutzen kannst, ist die Seite codewars. Hier kannst du Übungen, also Katas, in sĂ€mtlichen Programmiersprachen absolvieren. Dadurch schulst du deine Problemlösungskompetenz, trainierst deine Skills als Entwickler:in und kannst die Lösungen von anderen sehen.

Meine Empfehlung

Welche der oben genannten Tools das richtige fĂŒr dich ist, kannst nur du wissen.

Mir persönlich hilft es tatsĂ€chlich alle der genannten zu nutzen. Dadurch erhalte ich einen umfangreichen Überblick und kann dort in die Tiefe eintauchen, wo ich es fĂŒr die jeweilige Situation benötige.

Fazit

Du hast nun einen Überblick ĂŒber Go erhalten und kennst Möglichkeiten um zu starten.

Wenn du jetzt dein erstes Go Programm erstellen und ausfĂŒhren willst, schau dir den Artikel Erste Schritte mit Go an.

Als weitere Programmiersprache kann ich Go nur wĂ€rmstens empfehlen; natĂŒrlich immer abhĂ€ngig davon, was du damit erreichen willst.

Ob und wie ich mit Go als Neueinsteigerin zurecht gekommen wÀre, kann ich ehrlich gesagt nicht sagen. Meine erste Programmiersprache war JavaScript und kurze Zeit spÀter TypeScript. Die Einarbeitung in Go als weitere Programmiersprache fÀllt mir persönlich relativ einfach.

Wie ist das bei dir? Beherrscht du bereits andere Sprachen und möchtest Go als weitere Sprache lernen? Oder denkst du darĂŒber nach, Go als Einsteigersprache zu nutzen?

Falls du Go als Einsteigersprache lernst, wĂŒrde ich mich ĂŒber einen Erfahrungsbericht von dir sehr freuen.

Quelle Hintergrund des Titelbilds: kostenlose Hintergrundfotos von .pngtree.com

Quelle Go Logo: https://go.dev/blog/go-brand

Was dir auch gefallen könnte...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

WordPress Cookie Hinweis von Real Cookie Banner