13.10.2018

How we build Software -
Golang

Gopher

Dies ist der erste Blogeintrag der Reihe „how we build software“(HWBS), mit der wir unseren Techstack vorstellen wollen. Wir zeigen euch, warum wir welche Technologien und Lösungen einsetzen, um euch einen Einblick in die DevOps-Prozesse und Technologieaspekte von uns zu geben. In diesem Eintrag stellen wir unsere Hauptentwicklungssprache Go oder Golang vor.

Was ist Go?

Go ist eine Programmiersprache, welche sich der Herausforderungen von immer komplexeren Anforderungen stellt, indem sie einen einfachen Entwicklungsprozess einer interpretierten, dynamisch typisierten Sprache mit der Effizienz und Sicherheit/Stabilität einer statisch typisierten, kompilierten Sprache kombiniert. Kurzum: Es ist eine Sprache, welche Entwicklern einfach und schnell komplexe Programme schreiben lässt, die entweder interpretiert oder kompiliert ausgeführt werden können -> Meinung der Community: Sie ist so „einfach“ wie Python und so „mächtig“ wie C/C++

Warum haben wir uns für Go entschieden?
Speziell in einem Bereich (IT Sicherheit) in der der Großteil der Software in Python entwickelt wird?

Besonders hat uns der Minimalismus von Go überzeugt, der den Entwicklungsprozess gegenüber C++-Projekten enorm erleichtert. In einem modernen Umfeld ist eine Parallelisierung essentiell. In Go bieten native Goroutinen und Channels eine native Möglichkeit dies sehr einfach, stabil und sicher umzusetzen. Zusätzlich gibt es integriertes Testing und einen Paketmanager für Bibliotheken oder Github Repositories.

Am Beginn von Vulidity wussten wir, dass wir eine stabile, sichere und solide Codebasis benötigen. Wir haben bei anderen Startups bzw. Unternehmen beobachten können, dass der Code oft unkontrolliert wächst und dieser im späteren Verlauf ganze Projekte lahmgelegt hat. Aus diesem Grund haben wir von Anfang mit Hilfe von Go Packages und der sauberen Projektverwaltung der Sprache eine Umgebung geschaffen, welche uns nicht im Stich gelassen hat, sobald das Projekt Fahrt aufgenommen hatte.


Der Grund für die Bevorzugung gegenüber Python war, dass Go Projekte direkt kompilierbar sind und wir dadurch einen stabilen und effizienten Deployment Prozess entwickeln konnten. Gleichzeitig war die Go-Community außerordentlich hilfsbereit und aufgeschlossen bei neuen Ideen zur Weiterentwicklung der Sprache.

Für wen empfehlen wir Go?

Grundsätzlich empfehlen wir jedem Entwickler sich die Sprachkonzepte und die Syntax einmal anzuschauen. Auf den ersten Blick wird in der Regel festgestellt, dass es eine moderne und angenehme Syntax gibt (Angelehnt an die C Familie), welche auf soliden Konzepten aufgebaut ist. Speziell in den Bereichen Webentwicklung wächst die Beliebtheit rasend schnell.
Die Sprache selbst ist noch „relativ“ jung, aber Unternehmen wie Google treiben seine Entwicklung rapide voran. Auch Netflix, Uber, Medium und Google selbst haben die Sprache für sich entdeckt.
Nach unserer Einschätzung wird die Verbreitung der Sprache in Projekten, Startups und Unternehmen die nächsten Jahre deutlich erhöhen und ggf. sogar den Platzhirschen den Rang ablaufen.

Menü schließen