Programmiersprache: Julia 0.7 ist fertig und 1.0 soll bald folgen

Julia 1.0 soll keine zusätzlichen Funktionen gegenüber Julia 0.7 bringen, sodass die lang erwartete erste Hauptversion bald erscheinen sollte.

In Pocket speichern vorlesen Druckansicht 40 Kommentare lesen
Programmiersprache: Julia 0.7 ist fertig und 1.0 soll bald folgen
Lesezeit: 4 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Die Macher der Programmiersprache Julia haben Version 0.7 freigegeben. Das Release bringt gegenüber dem vor einem guten Jahr veröffentlichten Julia 0.6 zahlreiche Änderungen. Neben neuen Features gelten nun auch einige Funktionen und syntaktische Ausdrücke als überholt (deprecated).

Hinzu kommen zahlreiche Änderungen, die zu Inkompatibilitäten führen (Breaking Changes). Die wichtigste Nachricht jenseits der Anpassungen ist, dass das aktuelle Release nun tatsächlich das letzte vor dem lang erwarteten Julia 1.0 sein soll.

Zu den Neuerungen gehört die Einführung des Objekts missing, das analog zu NA in der Programmiersprache R oder NULL in SQL fehlende Werte repräsentiert. Bisher mussten Entwickler auf den NA-Wert im DataArrays-Paket zurückgreifen. Im Gegensatz dazu lässt sich missing auch mit einem herkömmlichen Array verwenden.

Auch Named Tuples wie (a=1, b=2) sind nun in Julia direkt enthalten. Statt in der Kernsprache waren sie bis Julia 0.6 im externen Paket NamedTuples definiert. Named Tuples verhalten sich wie reguläre, erlauben aber den direkten Zugriff über den .-Operator.

Neuerdings lässt sich mit @isdefined testen, ob eine lokale Variable definiert ist. Neu ist zudem die Makrosyntax if @generated ...; else ...; um sowohl @generated als auch normale Implementierungen einer Funktion zu erzeugen.

Die Macher haben zudem die Syntax an einigen Stellen leicht geändert. Unter anderem f(x::T) where {T} das bisherige function f{T}(x::T). Einige Deprecations sollen Unklarheiten vermeiden. So ist ab sofort das Nebeneinanderstellen von Hexadezimal-, Oktal- und Binärwerten nicht mehr erlaubt, um verwirrende Code wie 0xapi == 0xa * pi zu vermeiden. Aus ähnlichen Gründen gilt die Schreibweise 1.+2 als überholt, da sie sich neben der Art, wie der Compiler sie interpretiert, nämlich als 1 .+ 2, auch als 1. + 2 lesen lässt.

Neben den als überholt definierten Elementen gibt es noch eine Reihe von Änderungen, die keine Deprecation-Warnung erzeugen. Unter anderem haben die Macher den Paketmanager Pkg durch einen neuen ersetzt. Einige Funktionen haben andere Rückgabewerte oder führen bei bestimmten, bisher erlaubten Fällen zu Syntaxfehlern.

Die Liste der Deprecations und Änderungen ist nicht zufällig äußerst lang. Bereits im März kündigten die Macher der Sprache an, dass Julia 0.7 den Übergang zu 1.0 markiert. Die erste Hauptversion soll im Vergleich zum aktuellen Release wohl nur neuen Funktionen bekommen, die sich aufgrund der noch enthaltenen Deprecations, die in 1.0 wegfallen, derzeit nicht umsetzen lassen.

Julia ist eine dynamische, funktionale Programmiersprache, die vor allem auf wissenschaftliche Projekte zielt, gleichzeitig aber auch als General Purpose Language geeignet sein soll. Sie ist besonders gut für verteilte Berechnungen geeignet und kommt seit geraumer Zeit auch beim High-Performance Computing zum Einsatz. Die Programmiersprache ist seit 2012 Open Source.

Weitere sprachliche Ergänzungen oder gar Breaking Changes sind nicht geplant. Alle in 0.7 als überholt markierten Elemente werden in Julia 1.0 nicht mehr zu Warnungen, sondern zu Fehlern führen. Ansonsten soll jedes Programm, das mit dem aktuellen Release ohne Warnungen arbeitet, reibungslos mit Julia 1.0 funktionieren.

Die umfangreiche Liste der Neuerungen, Deprecations und überarbeiteten Werkzeuge lässt sich den Release Notes entnehmen. Auf der Download-Seite findet sich derzeit neben Julia 0.7 auch der erste Release Candidate von Julia 1.0.0.

[Update 9.8.2018 ,11 Uhr]:
Auf GitHub ist bereits Julia 1.0 verfügbar. Offensichtlich wurde es auf der JuliaCon, die vom 7. bis 11. August in London stattfindet, am Abend des 8. August feierlich veröffentlicht. Die offizielle Julia-Seite listet zum aktuellen Zeitpunkt jedoch nach wie vor 0.7 als aktuelles Release.

[Update 9.8.2018 ,15:30 Uhr]:

Jetzt ist Julia 1.0 auch auf der offiziellen Julia-Site verfügbar.

Siehe dazu auf heise Developer:

(rme)