• IT-Karriere:
  • Services:

Programmiersprache: Go 1.14 erscheint mit stabilem Modulsystem

Die aktuelle Version 1.14 von Go löst Abhängigkeiten einfacher auf und erlaubt das störungsfreie Einbetten von Schnittstellen, deren Methoden sich überschneiden. Ebenso kann nun ein unsicheres Go definiert werden.

Artikel veröffentlicht am , Kristian Kißling/Linux Magazin
Die Taschenratte (engl. Gopher) ist das Maskottchen von Go.
Die Taschenratte (engl. Gopher) ist das Maskottchen von Go. (Bild: Don Owens, flickr.com/CC-BY 2.0)

Die Programmiersprache Go enthält in der nun verfügbaren Version 1.14 mit den Go Modules ein neues System zum Verwalten von Abhängigkeiten. Ein Modul besteht dabei aus mehreren Paketen, die in einem Verzeichnis liegen und die durch die Datei go.mod verwaltet werden. In dieser kann unter anderem der Pfad zum Modul und zu den darin enthaltenen Abhängigkeiten definiert werden. Diese Abhängigkeiten wiederum listet die Datei einzeln mit Pfadnamen und Versionsnummern (Semver) auf.

Stellenmarkt
  1. Stadtwerke München GmbH, München
  2. Fresenius Kabi Deutschland GmbH, Oberursel

Der Kommandozeilenbefehl go kommt bereits seit Go 1.11 mit dem neuen Modulsystem zum Auflösen von Abhängigkeiten klar. Davor liefen Importe über GOPATH. Doch erst ab der aktuellen Version deklarieren die Entwickler das Modulsystem als hinreichend stabil für den breiten Einsatz. Die Go-Entwickler betrachten es damit als produktionsreif und rufen die Nutzer auf, ab Version 1.14 auf das neue System zu wechseln.

Ebenfalls neu ist die Möglichkeit, Interfaces auch dann einzubetten, wenn ihre Methoden mit denen von übergeordneten Interfaces überlappen. Das heißt, die eingebetteten Interface-Methoden dürfen dieselben Namen und identische Signaturen tragen. Explizit deklarierte Methoden eines Interfaces müssen allerdings weiterhin Unikate bleiben.

Gewollt unsicher

Eine neu eingeführte Umgebungsvariable heißt GOINSECURE. Sie lässt sich dem go-Befehl übergeben und signalisiert, dass Go kein HTTPS benötigt und auch keine Zertifkate validieren muss, wenn es bestimmt Module lädt. Eine durch Kommata unterteilte Liste mit Glob-Patterns bildet den Wert für GOINSECURE. Potenziell öffnet GOINSECURE allerdings Sicherheitslücken. Entwickler sollten also genau wissen, wann und wie sie die Variable einsetzen.

Auch in der Laufzeitumgebung gibt es mit Version 1.14 Änderungen. Der Einsatz des Keywords defer erzeugt so gut wie keinen Overhead mehr im Vergleich zum bisherigen Ansatz. Der bestand darin, die verzögerte Funktion direkt aufzurufen. Damit lässt sich defer laut den Release Notes auch in Performance-kritischen Code einbetten.

Goroutines lassen sich nun zudem asynchron unterbrechen. Dadurch erzeugen Schleifen ohne Funktionsaufrufe keine Deadlocks mehr oder verzögern die Garbage Collection. Unter Linux führen die gewollten Unterbrechungen (Preemption) aber unter Umständen dazu, dass Programme, die mit Go 1.14 laufen, beim Ausführen mehr Signale erhalten.

Verwenden Entwickler Pakete wie syscall oder golang.org/x/sys/unix, könnte deshalb die Fehlermeldung EINTR bei langsamen Syscalls häufiger auftauchen. Die Go-Macher schlagen Schleifen vor, um die Systemaufrufe wiederholt aufzurufen. Über weitere Änderungen an Go 1.14 informiert die Ankündigung.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Anzeige
Spiele-Angebote
  1. (-62%) 18,99€
  2. 39,99€
  3. (-67%) 7,59€
  4. (u. a. FIFA 20 für 27,99€, Dragon Ball Z Kakarot für 46,89€, Rainbow Six: Siege Deluxe für 8...

sicn 27. Feb 2020 / Themenstart

Ich arbeite bei einer Firma die auch "Managed Hosting" (vornehmlich auf Basis von...

Kommentieren


Folgen Sie uns
       


Alienware Concept Ufo - Hands on (CES 2020)

Das Handheld-Konzept von Dell ähnelt dem der Switch, das Alienware Concept Ufo eignet sich aber eher für ernsthafte Gamer.

Alienware Concept Ufo - Hands on (CES 2020) Video aufrufen
Alternatives Android im Test: /e/ will Google ersetzen
Alternatives Android im Test
/e/ will Google ersetzen

Wie Google, nur mit Privatsphäre - /e/ verbindet ein alternatives Android mit Cloudfunktionen und einer Suchmaschine.
Ein Test von Moritz Tremmel


    Coronakrise: Hardware-Industrie auf dem Weg der Besserung
    Coronakrise
    Hardware-Industrie auf dem Weg der Besserung

    Fast alle Fabriken für Hardware laufen wieder - trotz verlängertem Chinese New Year. Bei Launches und Lieferengpässen sieht es anders aus.
    Ein Bericht von Marc Sauter

    1. Kaufberatung (2020) Die richtige CPU und Grafikkarte
    2. SSDs Intel arbeitet an 144-Schicht-Speicher und 5-Bit-Zellen

    Gesetzentwurf zum Leistungsschutzrecht: Acht Wörter sollen reichen
    Gesetzentwurf zum Leistungsschutzrecht
    Acht Wörter sollen reichen

    Auszüge von mehr als acht Wörtern sollen beim Leistungsschutzrecht lizenzpflichtig werden, von Vorschaubildern ist keine Rede mehr.
    Von Justus Staufburg

    1. Medienstaatsvertrag Droht wirklich das Ende des Urheberrechts?
    2. Leistungsschutzrecht Drei Wörter sollen ...
    3. Leistungsschutzrecht Memes sollen nur noch 128 mal 128 Pixel groß sein

      •  /