Programmiersprache: Julia 1.1 ist fertiggestellt
Neben experimentellen neuen Funktionen bietet das neue Release der funktionalen Sprache vor allem eine Reihe von Verbesserungen.
![Programmiersprache: Julia 0.7 ist fertig und 1.0 soll bald folgen](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/2/5/9/1/5/6/8/webgl-314b4d940d219cc7.jpeg)
Nachdem die lang erwartete Version 1.0 der Programmiersprache Julia im Rahmen der JuliaCon im August 2018 offiziell vorgestellt wurde, legen die Macher nun das erste Update Julia 1.1 vor. Das neue Release bietet zahlreiche Verbesserungen – insbesondere der Standard-Library – sowie einige neue experimentelle Funktionen, ein paar Features gelten allerdings auch als überholt (deprecated).
Im Rahmen der generellen Fehlerbereinigungen und Verbesserungen haben die Macher verschiedene Inkonsistenzen früherer Julia-Versionen ausgeräumt. Parser-Eingaben, die mit einem Komma enden, werden nun konsequent als unvollständig behandelt. Bisher wurden sie in einigen Fällen als Tupel geparst. In Übereinstimmung mit der normalen Syntax für Funktionsaufrufe sind Leerzeichen in Broadcast Calls künftig nicht mehr erlaubt, während sie in der Vergangenheit fälschlicherweise akzeptiert wurden. Verwenden Entwickler für eine lokale Variable und einen statischen Parameter irrtümlich den gleichen Namen erzeugt das in Julia 1.1 nun eine Fehlermeldung, statt wie bisher nur eine Warnung.
Verbesserungen der Standard-Library
Unter den Änderungen an der Standard-Library finden sich verschiedene Funktionsanpassungen. Unter anderen unterstützt diff nun Arrays mit beliebiger Dimensionalität und arbeitet über alle Dimensionen hinweg. Beim Einsatz im Broadcasting verhält sich Regex jetzt wie ein Skalar. Der Befehl parse erlaubt nun Zeichenketten, die für den Typ Bool die ganzen Zahlen 0 und 1 darstellen. Neu in der Library ist darüber hinaus die Funktion splitpath(p::String)[7i]. Sie bewirkt genau das Gegenteil von [i]joinpath(parts....), sie teilt einen Dateipfad in seine Komponenten auf.
Noch experimentellen Charakter in Julia 1.1 hat das neue Makro Base.@locals. Es gibt ein Dictionary mit aktuellen lokalen Variablennamen und -werten zurück. Um die Handhabung von Ausnahmen solider zu gestalten und die Ursachenanalyse zu erleichtern, wird für jeden Task ein eigener Exception Stack angelegt. Für den Zugriff auf die Stacks lässt sich die ebenfalls noch experimentelle Funktion Base.catch_stack nutzen.
Einen vollständigen Überblick aller Verbesserungen und neuen Funktionen in Julia 1.1 bieten die Release Notes auf GitHub. Dort sowie auf der offiziellen Julia-Site steht das neue Release auch zum Download bereit.
Julia: dynamisch und funktional
Julia ist eine dynamische, funktionale Programmiersprache, die ursprünglich besonders auf wissenschaftliche Projekte ausgelegt war – Scientific Computing, Visualisierung, Data Science und Machine Learning. Inzwischen kommt sie aber auch immer häufiger für generelle Programmieraufgaben zum Einsatz. Da Julia dank der Ausrichtung auf Parallel Computing auch gut mit verteilten Berechnungen umgehen kann, spielt die Sprache beim High-Performance Computing eine wachsende Rolle. Julia liegt seit 2012 als Open Source vor.
Siehe dazu auf heise Developer:
(map)