2min

Tags in dit artikel

,

Apple heeft onlangs versie 5.5 van zijn open source programmeertaal Swift uitgebracht. In deze release heeft het bedrijf veel nieuwe functionaliteit gestopt, onder meer op het gebied van concurrency.

Swift is de eigen open-sourceprogrammeertaal van Apple voor het verder doorontwikkelen van het Apple-platform. De taal is niet alleen geschikt voor MacOS, maar is in de loop der jaren ook doorgetrokken naar Windows en zelfs Linux. Dit maakt de open-source programmeertaal hiermee ook geschikt voor andere toepassingen dan alleen voor Apple.

In versie 5.5 is nu veel nieuwe functionaliteit toegevoegd, aldus Apple. Vooral nieuwe functionaliteit die problemen met concurrency of het gelijktijdig toegang krijgen en kunnen aanpassen van gedeelde activiteiten moet oplossen, krijgt de meeste aandacht. Zo moet de functionaliteit ervoor zorgen dat door ontwikkelaars geschreven asynchrone werkzaamheden van de code niet resulteren in een ‘pyramid of doom’ waardoor flow control en het afhandelen van problemen worden bemoeilijkt.

Oplossing concurrency-problemen

Met versie 5.5 is voor het voorkomen van deze problemen nu geregeld door hetzelfde async/await-patroon te gebruiken dat in bijvoorbeeld de taal C# van Microsoft zit. Dit patroon is ook aanwezig in andere open-source talen, zoals JavaScript en Python. Daarnaast zijn anonieme sluitingen nu impliciet asynchroon als zij een ‘await’-expressie bevatten.

Deze nieuwe aanpak van concurrency in Swift v5.5 moet ook de interoperabiliteit met Apple’s oudere programmeertaal, Objective-C, verbeteren. Deze taal beschikt over zogenoemde ‘completion-handler’-methodes die in Swift in asynchrone (async) methodes worden vertaald. Deze Swift async methodes kunnen weer als completion-handler methodes worden geëxporteerd.

Een ander onderdeel van de concurrency-updates zijn actors. Een actor is volgens de ontwikkelaars van Apple een referentietype dat de toegang tot zijn ‘mutable state’ beschermt en wordt geintroduceerd met een keyword. Actors garanderen dat de data die zij beschermen alleen kan worden aangeraakt door code die op een specifieke (interne) ‘queue abstraction’ draait.

Package Collections

Verder krijgt de laatste versie van Swift onder meer in de laatste versie van Swift zijn onder meer ‘Package Collections. ’Dit is een groep van packages die ieder uit een set van Swift code bestanden en een manifest bestaan. Hiermee moet het gebruik van de programmeertaal worden vereenvoudigd en zoveel mogelijk worde verspreid.

De Package Collections worden ondersteund door de onafhankelijke Swift Package Index en zijn geïntegreerd in de laatste versie 13 van Xcode. Deze code moet samengaan met de release van iOS 15 en de onlangs gelanceerde iPhone 13.

De laatste versie 5.5 is nu dus voor Apple-ontwikkelaars een onderdeel van Xcode 13 en is ook via GitHub beschikbaar. Hier kunnen 5,5-versies worden gedownload voor de Linux-distributies Ubuntu, CentOS en Amazon Linux 2. Een versie voor Windows 10 komt binnenkort beschikbaar.