Apple ist mit seinem Passwort-Monitoring-Dienst von Java zu Swift und Vapor gewechselt und verkündet nun einen Performancegewinn von vierzig Prozent. Zusätzlich hat sich laut Apple die Skalierbarkeit, Sicherheit und Verfügbarkeit erhöht, die Zahl der Codezeilen hingegen um 85 Prozent verringert. Das unter Apache-Lizenz stehende Swift wurde 2014 von Apple selbst erfunden und seitdem weiterentwickelt.
Der Monitoring-Dienst gehört zu Apples Passwortmanager-App und prüft, ob Passwörter geleakt wurden, also zum Beispiel irgendwo im Darknet auftauchen (ähnlich wie Have I been Pwnd). Um die Sicherheit der anvertrauten Passwörter zu schützen, betreibt das Monitoring einen hohen Aufwand an Verschlüsselung, soll aber gleichzeitig schnell reagieren.
Swift verbraucht weniger Hardware-Ressourcen und verbessert die Performance.
Diesen Anforderungen wurde Java dem Apple-Team nicht mehr gerecht: "Der Ansatz zur Speicherverwaltung bei Java entspricht nicht mehr unseren wachsenden Anforderungen und Zielen für die Effizienz." Auch der verbesserte G1 Garbage Collector der JVM brachte dem Team nicht die gewünschte Performance. Probleme bereiteten insbesondere lange Pausen der Collectors unter hoher Last und die Schwierigkeiten des Finetunings für verschiedene Workloads. Garbage Collectors stehen wegen Engpässen immer wieder in der Kritik.
Auch beim schnellen Skalieren des Diensts unter wechselnder, regional bedingter Last sah das Apple-Team Mängel bei Java.
Viel Lob und wenig Kritik
Die neue Architektur verwendet als Webframework Vapor, das Router-, Controller- und Inhaltsmodule bietet. Das Apple-Team lobt an Swift insbesondere das Konzept der Protocols, die die strengen Vererbungshierarchien von Java vermeiden und eine bessere Modularität erzeugen. Die Sicherheitsmechanismen von Swift machen zudem die bei Java erforderlichen Null-Checks überflüssig. Swift erlaubt keine Null-Pointer. Das Async-Await-Konzept erleichtert ferner das asynchrone Coden. Der Blogbeitrag verweist zudem auf das Swift-Ökosystem mit Logging, Cassandra-Client und Crypto-Bibliotheken.
Dass der Beitrag keine Kritik an der Apple-Sprache Swift enthält, verwundert ebenso wenig, wie dass das Team nicht andere Sprachen ohne den Overhead einer virtuellen Maschine wie Rust oder Go in Erwägung gezogen hat.
(who)