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. Projekt Manager FUTR HUT (m/w/d)
    Tegel Projekt GmbH, Berlin
  2. Product Owner Produktionssteuerung (Biotech, SCRUM) (m/w/d)
    Thermo Fisher Scientific GENEART GmbH, Regensburg
Detailsuche

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.

Golem Akademie
  1. Blender Grundkurs: virtueller Drei-Tage-Workshop
    07.-09.06.2022, Virtuell
  2. Informationssicherheit in der Automobilindustrie nach VDA-ISA und TISAX® mit Zertifikat: Zwei-Tage-Workshop
    19./20.07.2022, Virtuell
Weitere IT-Trainings

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


Aktuell auf der Startseite von Golem.de
Cariad
Aufsichtsrat greift bei VWs Softwareentwicklung durch

Die Sorge um die Volkswagen-Softwarefirma Cariad hat den Aufsichtsrat veranlasst, ein überarbeitetes Konzept für die ehrgeizigen Pläne vorzulegen.

Cariad: Aufsichtsrat greift bei VWs Softwareentwicklung durch
Artikel
  1. Delfast Top 3.0: Ukrainische Armee setzt E-Motorräder zur Panzerjagd ein
    Delfast Top 3.0
    Ukrainische Armee setzt E-Motorräder zur Panzerjagd ein

    Ukrainische Infanteristen nutzen E-Motorräder, um leise und schnell zum Einsatz zu gelangen und die Panzerabwehrlenkwaffe NLAW zu transportieren.

  2. Überwachung: Polizei setzt Handy-Erkennungskamera gegen Autofahrer ein
    Überwachung
    Polizei setzt Handy-Erkennungskamera gegen Autofahrer ein

    In Rheinland-Pfalz werden Handynutzer am Steuer eines Autos automatisch erkannt. Dazu wird das System Monocam aus den Niederlanden genutzt.

  3. Love, Death + Robots 3: Mal spannend, mal tragisch, mal gelungen, mal nicht so
    Love, Death + Robots 3
    Mal spannend, mal tragisch, mal gelungen, mal nicht so

    Die abwechslungsreichste Science-Fiction-Serie unserer Zeit ist wieder da - mit acht neuen Folgen der von David Fincher produzierten Anthologie-Reihe.
    Von Peter Osteried

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Borderlands 3 gratis • CW: Top-Rabatte auf PC-Komponenten • Inno3D RTX 3070 günstig wie nie: 614€ • Ryzen 9 5900X 398€ • Top-Laptops zu Tiefpreisen • Edifier Lautsprecher 129€ • Kingston SSD 2TB günstig wie nie: 129,90€ • Samsung Soundbar + Subwoofer günstig wie nie: 228,52€ [Werbung]
    •  /