Von Java zu Google Golang - so einfach ist es!

Google hat eine eigene Programmiersprache entwickelt und wir beleuchten die Vorteile gegenüber Java.

Wir erklären was sich beim Umstieg von Java zu Golang für Entwickler ändert und verbessert

// navigation

Blog


// content

Keep it simple

Googles hauseigene Programmiersprache, Golang, ist noch recht jung und unbekannt. Wer sie kennt, liebt oder hasst sie. Wir stellen in diesem kurzen Artikel Google Golang vor.

Mein Curriculum Vitae

Die letzten Jahre hatte ich mich programmier-technisch komplett auf Java eingeschossen. In meinem dualen Bachelor-Studium wurde Java als einzige Sprache unterrichtet und in der Firma, in der ich zu der Zeit gearbeitet habe, war Java ebenso die vorherrschende Sprache. Zwei Jahre arbeitete ich vollzeit als Java-Entwicklerin und hatte nicht so schnell vor, mich diesbezüglich umzuorientieren. Den praktischen Teil meiner Masterarbeit, ein Question Answering System, entwickelte ich komplett in Java mit Spring als Framework. Nach meinem Studium suchte ich mir eine neue Stelle, ebenfalls als Java-Entwicklerin. Ursprünglich. Doch dann kam alles anders...

Was sind die Vorteile von Googles Golang?

Ich wurde einem Entwickler-Team zugeteilt, das vorwiegend Google Golang, oder kurz Go, verwendete. Ich hatte mir die Sprache kurz zuvor in den Grundzügen angesehen, da der Einstieg in diesem Team als Option im Raum stand. Und das Erste, was mir auffiel: Alles falschrum! Aus Java kannte ich, dass Variablen und Konstanten ihren Typ am Anfang stehen haben, gefolgt vom Namen und der Zuweisung. In Go steht der Typ hinter dem Namen. Public und private Variabeln und Methoden kann man gleich ganz vergessen, die Sichtbarkeit wird mit Groß- oder Kleinschreibung festgelegt. Klassen und Interfaces gibt es in der aus Java bekannten Form auch nicht, auch wenn ich gerne zu einem Go-File Klasse sage, aus Ermangelung eines besseren Begriffes.

Je einfacher, desto besser.

Bei Go funktioniert alles nach dem Grundsatz "Je einfacher, desto besser". Und das ist ein Prinzip, das ich gerne aufgenommen habe! Wer eine Weile mit Java Spring Boot gearbeitet hat kann danach sehr effizient googlen und kennt jede Nase auf Stackoverflow. Es gibt kaum ein Problem, das NICHT gesucht und auf Stackoverflow behandelt wird. Meistens scheint die Lösung für Probleme auch immer recht einfach: Mach doch noch die @AnotherAnnotation über Methode/Klasse/Konstante/Interface, und schon passiert irgendwo im Hintergrund ziemlich viel Magie. Das ist, als würde man eine Horde Hogwarts-Erstklässler in die Große Halle stellen und ihnen das Apparieren beibringen wollen. Irgendwas wird dabei schon passieren. Nur was, das sieht man nicht so genau.

In Go gibt es kein Schnick-Schnack. Alle Grundlagen, die der Programmierer braucht, hat man in ein paar einfach verständlichen Tutorials gelernt und dann steht einem die Welt offen. Wie eine Woche Schnell-Praktikum bei Dumbledore. Hat man einmal das Prinzip von Slices und Pointern verstanden, könnte man auch komplett ohne Google und Stackoverflow programmieren. Wer denkt, er gibt dadurch Funktionalität ab, liegt falsch. Was wollte man in Java heimlich schon immer können? Richtig, mehrere Werte zurückgeben. Und siehe da: Go macht's möglich! Nahezu jede Funktion (nein, nicht Methode!) gibt neben dem eigentlichen return-Wert noch einen Error zurück. Vorbei sind die Zeiten von meterlangen Exceptions, die man catchen, ignorieren oder bearbeiten und weiterwerfen kann.

Fazit zur Programmiersprache Go

Was ist die Folge von diesen Dingen? Einfach verständlicher Code, der dem Entwickler wieder die Macht über sein Werk gibt. Keine Black-Box mehr, in der ein Haufen unnötiger Magie passiert, kein Overhead von Klassen, die man im Grunde gar nicht braucht. Was man braucht, schreibt man selbst. Sicher gibt es Extensions, die eingebunden werden können. Aber die sind meistens keine Monster, sondern kleine Bibliotheken, die wirklich nur das machen, was sie auch müssen.

Alles in Allem bin ich sehr zufrieden, dass ich zurück zu den Basics gegangen bin. Man sagt ja gerne, was richtig gemacht werden soll, muss man selbst machen. Das war schon bei Gruppenarbeiten in der Schule so, und bei der Programmierung gilt der Grundsatz erst recht. Von daher: Fröhliches Coden!

Beispiel für Golang Code - all you need

golang


func Create(item database.Item) (*database.Item, error) {
dbAddress, err := database.GetDatabaseAddress()
if err != nil {
logrus.Error(err.Error())
}
db, err := gorm.Open("mysql", dbAddress)
if err != nil {
logrus.Error(err.Error())
return nil, err
}
defer db.Close()

err = db.Create(&item).Error

return &item, err
}

Der oben stehende Code ist recht einfach: er stellt eine Verbindung zu einer Datenbank her, schreibt ein Item und schließt die Datenbankverbindung im Anschluss wieder (defer verlagert die Ausführung ans Ende der Funktion). Man beachte die beiden return-Werte. Das Item ist ein Pointer, der Error ein normales Struct.

Rating: 4.5. 2 Bewertung(en).
2 anonyme Bewertungen
No rating done at all.
Dein Voting war (0 von 5) Du bist nicht eingeloggt.
Um persönliche Votings abzugeben, kannst du dich einloggen.
Click the rating bar to rate this item Please log on to do ratings

Kommentare

comments powered by Disqus