Security ist ein stets aktuelles Thema in der IT. Deshalb widmet sich das ADMIN-Magazin 04/2012 speziell Sicherheitsaspekten und gibt Antworten auf die Fragen: ... (mehr)

Fortgeschritten

Trotz aller Reduktion gibt es in Go auch einige Features, die in anderen Sprachen als modern gelten und von Programmierern gewünscht werden. Ein Beispiel dafür sind die Closures, die in Go anonyme Funktionen sind, die ihre Umgebung speichern.

Das erklärte Ziel der einfachen Programmierung für Multicore-Systeme (Go entstand in der Prä-Cloud-Ära, als Multicore-Prozessoren der letzte Schrei waren) erreicht Go mit einer Abstraktion namens Goroutines, die nach dem Vorbild der Communicating Sequential Processes (CSP) eine Vereinfachung gegenüber der fehlerträchtigen Programmierung mit Threads darstellen [6].

Zum Weiterlesen bietet sich das Online-Dokument "Effective Go" an, das besonders ans Herz gelegt sei, weil es "idomatische", also Go-typische Problemlösungen zeigt [7]. Bücher über Go gibt es mittlerweile schon einige, darunter auch zwei deutschsprachige. Hilfe findet man auch auf der Mailingliste "golang-nuts" (die Liste "golang-dev" ist für Compiler-Entwickler gedacht). Schließlich noch ein Tipp für die Websuche nach Go-Ressourcen: statt "go" als Suchbegriff einfach immer "golang" verwenden. Lokal lässt sich die ganze Dokumentation im Browser lesen, wenn man mit »godoc -http=:8000« den Dokumentationsserver startet.

Go selbst bringt schon eine Vielzahl von Bibliotheken mit (Abbildung 2), weitere finden sich zum Beispiel unter [8] [9] und [10]. Größere in Go implementierte Projekte sind beispielsweise der Webserver Falcore [11] oder die Websoftware von Stathat [12].

Abbildung 2: Die Tour auf der Go-Homepage verschafft einen guten ersten Eindruck der Programmiersprache.

Fazit

Go ist ausgereift und dank der Vorwärtskompatibilität, die seine Entwickler garantieren, für professionelle Software-Projekte geeignet. Auch die kurzen Compile-Zeiten sind für größere Projekte nützlich. Die Reduzierung des Sprachumfangs macht die Sprache relativ leicht erlernbar und hilft vor allem dabei, auch fremden Code leicht zu lesen, was letztlich die Wartungsfreundlichkeit von Software fördert. Der Preis für die Reduktion auf das Wesentliche ist der Verzicht, etwa auf klassenbasierte Objektorientierung, die viele Programmierer von ihrer Ausbildung gewohnt sind. Go bietet eigene Features zur ansatzweise objektorientierten Entwicklung, die aber das Eindenken in neue Konzepte erfordern. Es ist zu erwarten, dass sich Go gerade im Bereich der Systemprogrammierung noch weiter verbreiten wird, aber durch den Support auf Googles App Engine könnte auch der Einsatz bei der Webprogrammierung noch interessant werden.

Ähnliche Artikel

comments powered by Disqus
Mehr zum Thema

Zwei Jahre Go-Programmierung

Am 10. November 2009 wurde die Programmiersprache Go veröffentlicht.

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019