Swift 5 is beschikbaar: grote stap voor Apple’s programmeertaal
Terwijl iedereen naar nieuwe diensten en celebrities keek tijdens het Apple-event van afgelopen maandag, zette Apple op de achtergrond een hele grote stap. Xcode 10.2 met ondersteuning voor Apple’s eigen programmeertaal Swift 5 is namelijk online gekomen en dat is zowel voor consumenten als ontwikkelaars goed nieuws.
Apple bereikt namelijk eindelijk ABI-stabiliteit, of in het Engels ABI Stability. Dit stond eigenlijk al voor Swift 3 gepland, maar zoals wel vaker met nieuwe projecten liep het behoorlijk wat vertraging op. Het bespaart ontwikkelaars veel gedoe en maakt apps kleiner en sneller. Geen idee waar dit over gaat? We leggen het graag uit.
Waarom ABI-stabiliteit in Swift 5 een big deal is
Om te beginnen, is het nuttig om uit te leggen wat een ABI (Application Binary Interface) is. Dit is een onzichtbare interface die tussen de app en het besturingssysteem van een iPhone, iPad of Mac zit. De ABI vormt de brug tussen de code die de ontwikkelaar heeft geschreven en de machinetaal die de hardware op het niveau van individuele bits aanstuurt. Een realtime vertaler.
Tot voor kort bevatten macOS en iOS alleen een ABI die werkte met de voorloper van Swift, genaamd Objective-C. De ABI die voor Swift noodzakelijk is, zat nog niet in Apple’s besturingssystemen. Iedere app die met Swift gemaakt werd, moest daarom de hele ABI bundelen. Concreet wil dit zeggen dat Swift-apps een reeks bestanden bevatten, zogenaamde dynamische bibliotheken (extensie .dylib) die dienen als ABI. Dit geldt zowel voor iOS als macOS en was tot nu toe noodzakelijk.
De reden dat de ABI tot vandaag nog los bij iedere app gebundeld moest worden was omdat deze nog aan veel verandering onderhevig was. Als Apple de ABI bij iOS of macOS zou leveren, zouden apps die met Swift gemaakt zijn bij iedere aanpassing stoppen met werken. Swift is in versie 5 echter een volwassen programmeertaal geworden en de veranderingen zijn niet meer zo groot.
Voordelen voor ontwikkelaars en gebruikers
Dat de ABI nu in iOS en macOS geïntegreerd is, heeft een aantal voordelen. Allereerst worden apps weer kleiner. Een Swift-applicatie was tot nu ongeveer 20MB groter dan een vergelijkbare app die in Objective-C gemaakt werd. Dat kwam omdat de hele ABI meegeleverd moest worden.
Een groter voordeel is dat Swift-apps ook automatisch gaan profiteren van optimalisaties in iOS en macOS. Als Apple de in iOS en macOS geïntegreerde ABI aanpakt en zorgt voor bijvoorbeeld minder geheugengebruik, profiteren nu niet alleen Objective-C apps hiervan, maar ook Swift-apps. Eerst moesten ze door de ontwikkelaar worden bijgewerkt zodat de nieuwste ABI gebundeld kan worden. Dat is met Swift 5 nu verleden tijd.
Ontwikkelaars kunnen aan de slag
Het is nu aan ontwikkelaars om hun apps bij te werken. Swift 5 is onderdeel van Xcode 10.2. De binaries zijn ook beschikbaar voor Ubuntu Linux. Zo kan de back-end voor een app die op Linux draait in dezelfde programmeertaal worden geschreven. De ontwikkeling van Swift 5.1 is al begonnen en zal naar verwachting in als bèta uitkomen op of rond de WWDC 2019. (Zie ook → Officieel: WWDC 2019 van 3 tot en met 7 juni in San Jose)