Menü

Neues Open-Source-Projekt: Swift Numerics

Ziel von Swift Numerics ist es, ein Paket für numerische Berechnungen mit der Programmiersprache Swift zusammenzustellen.

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen

(Bild: PublicDomainPictures, gemeinfrei)

Von

Die Entwickler-Community hinter der Programmiersprache Swift hat mit Swift Numerics ein neues Open-Source-Projekt vorgestellt. Es soll für die Numerik erforderliche Komponenten als Module gebündelt in einem Swift-Paket zusammenfassen. Damit wollen die Entwickler bestehende Lücken in der Standardbibliothek der Programmiersprache schließen und ihr neue Einsatzszenarien ermöglichen.

Den Anfang machen zwei Modulen, die sich sofort nutzen lassen: Real, was den SE-0246 (Generic Math(s) Functions) umsetzt, und Complex für komplexe Zahlen und Arithmetik. Beide stellt der Blogbeitrag zu Swift Numerics ausführlich vor.

Swift Numerics ist darüber hinaus ganz bewusst als Paket und nicht als Teil der Standardbibliothek angelegt Der wichtigste Grund für diese Entscheidung ist wohl, dass grundsätzlich nicht alles in der Standard Library landen sollte. Zwar würden wahrscheinlich einige Stücke von Swift Numerics im Laufe der Zeit ihren Weg in die Standard Library finden, aber einige Module müssten ein Zuhause haben, das nicht standardmäßig Teil jedes Projekts sei. Hier geht der Autor, Steve Canon, ganz bewusst den Weg, der schon bei SwiftNIO für die Netzwerkentwicklung gegangen wurde.

Außerdem lassen sich die Module des Pakets nach einem Zeitplan entwickeln und veröffentlichen, der nicht an Swift-Releases gebunden ist. Das erlaubt wiederum, Module so lange als experimentell zu kennzeichnen, bis die API irgendwann für stabil erklärt wird.

Nächste Schritte werden ein ShapedArray-Protokoll und unterstützende Typen sein, die in der Lage sind, mehrdimensionale homogene Daten darzustellen. Das mag manchem Entwickler bereits aus dem Projekt Swift for TensorFlow bekannt sein oder aus der Verwendung von NumPy-Arrays in Python-, Fortran-, Matlab- oder Julia-Anwendungen. Außerdem gibt es den Plan, eine näherungsweise Gleichheit für Gleitkomma-Typen, Ganzzahlentypen mit fester Breite, die größer als 64 Bit sind, und Float16-Unterstützung zu integrieren. (ane)