Das mit Spannung erwartete Update Go 1.19 wird voraussichtlich im August veröffentlicht und bringt ein überarbeitetes Speichermodell und neue Typen, die die Verwendung von atomaren Werten verbessern sollen. Die derzeitige Vorabversion Go 1.19 kann von go.dev heruntergeladen werden, obwohl sie derzeit noch instabil ist. Laut den Versionshinweisen gleicht das Go 1.19 Update das Speichermodell der Sprache an das von C, C++, Java, JavaScript, Rust und Swift verwendete an. Es führt auch mehrere neue Typen im sync/atomic-Paket ein, um die Verwendung von atomaren Werten zu vereinfachen, wie z. B. atomic.Int64 und atomic.Pointer(T). Das Go Speichermodell ist wichtig, um die Bedingungen zu spezifizieren, unter denen das Lesen einer Goroutine-Variable garantiert, dass die Werte beobachtet werden, die von Schreibvorgängen auf dieselbe Variable von einer anderen Goroutine erzeugt werden. Bemerkenswert ist, dass Go nur sequentiell konsistente Atomics zur Verfügung stellt, im Gegensatz zu den entspannteren Formen, die von anderen Sprachen angeboten werden. Zusätzlich zum überarbeiteten Speichermodell stellt Go 1.19 eine kleinere Änderung der Sprache vor, die den Geltungsbereich von Typparametern in Methodendeklarationen korrigiert. Diese Aktualisierung hat keine Auswirkungen auf bestehende Programme. Die Version Go 1.19 folgt auf den Meilenstein Go 1.18 im März, mit dem die begehrten Generics-Funktionen eingeführt wurden. Go 1.19 bringt auch verschiedene andere neue Funktionen und Verbesserungen, wie z.B.:
- Laufzeitunterstützung für ein Soft-Memory-Limit, das den Go Heap und den von der Laufzeit verwalteten Speicher umfasst und externe Quellen wie binäre Mappings und von anderen Sprachen verwalteten Speicher ausschließt.
- Reduzierte Scheduler-Zuweisung von GC-Arbeitsroutinen auf untätige OS-Threads während eines periodischen GC-Zyklus, wenn die Anwendung weitgehend untätig ist.
- Eine Sprungtabellen-Implementierung für große Integer- und String-Switch-Anweisungen durch den Compiler, was zu Leistungsverbesserungen von bis zu 20 % führt.
- Klarere Überschriften, Links und Listen in Dokumentenkommentaren.
- Erkennung des build constraints, unix, in go:build Zeilen.
- Linux-Unterstützung für die 64-Bit-Architektur Loongson LoongArch.
Für Entwickler, die Web-, Mobil- und Backend-Anwendungen auf einer no-code -Plattform erstellen möchten, bietet AppMaster.io eine umfassende, integrierte Entwicklungsumgebung, die skalierbare Softwarelösungen ohne Code generiert. Mit der Möglichkeit, umfassende Anwendungen innerhalb weniger Sekunden zu erstellen, ist AppMaster.io ideal für ein breites Spektrum von Kunden, von kleinen Unternehmen bis hin zu Konzernen.