fbpx

Nieuwe Swift Cursus

Nieuwe Swift Cursus

Op de Apple Worldwide Developers Conference in 2014 kondigde Apple de nieuwe programmeertaal Swift aan. Deze nieuwe taal zal de toekomst van de iOS applicatie ontwikkeling veranderen en zal uiteindelijk Objective-C vervangen als taal voor de development van iOS en Mac-applicaties. Swift komt aan de orde in onze nieuwe cursus Swift Programmeren waar je in drie dagen de basis van deze nieuwe taal leert.

Swift heeft de beste eigenschappen van andere, bestaande talen. Zo kent Swift bijvoorbeeld vele concepten uit de wereld van het functioneel programmeren. Apple zal system libraries vrijgeven die gebruik maken van Swift en bepaalde API’s zullen alleen beschikbaar zijn als je gebruik maakt Swift. iOS en Mac-ontwikkelaars hebben Swift nodig om de concurrentie voor te blijven. De taal heeft belangrijke ontwikkelingen en veranderingen doorgemaakt sinds de eerste release, maar begint nu langzaam te stabiliseren.

Swift is een goede zet van Apple. Het maakt het ontwikkelen voor de iOS aantrekkelijker. En omdat Swift, net als Objective-C, alleen relevant is binnen het ecosysteem van Apple, moedigt het ontwikkelaars aan om zich uitsluitend te committeren aan Apple onder verwaarlozing van andere platformen. Dit mag goed zijn voor Apple, het is een slechte zaak voor developers die zo veel mogelijk mensen willen bereiken.

Swift is interoperable met Objective-C. De core system libraries zijn allemaal geschreven in Objective-C. Ze maken veel gebruik Objective-C design patterns en conventies en deze worden niet omgezet naar Swift. In een enkel project kunnen Objective-C en Swift gemakkelijk naast elkaar worden gebruikt. Je kunt Objective-C-code vanuit Swift en Swift code vanuit Objective-C aanroepen. Sommige language kenmerken van Swift zijn echter niet beschikbaar voor Objective-C code, zoals de Swift struct en enum types. De interoperability betekent dat een bestaande codebase stapsgewijs kan worden omgezet naar Swift. Je hoeft niet de hele app in een keer te herschrijven. In een later stadium kun je Swift functies toevoegen die geen deel uitmaken van de Objective-C interoperability.

En er zijn nog steeds zaken die niet kunnen worden gedaan in Swift maar wel in Objective-C zoals een diepgaande interactie met de runtime. Swift maakt het ook een stuk moeilijker om reflectie te gebruiken. Daarvoor zou je beter gebruik kunnen maken van Objective C. Vanwege de beperkingen van de Swift taal kan de compiler verder optimalisaties doorvoeren niet kan mogelijk zijn in Objective-C. Zo maakt Swift gebruik van v-table polymorfisme en inlining. In Objective-C is dit niet mogelijk, omdat je tijdens runtime methoden kunt verwijderen of veranderen. Ook interactie met C API’s is heel lastig in Swift. Het is ingewikkeld objecten aan C functies door te geven. Ook is het op dit moment onmogelijk een C-functie pointer naar een Swift-functie te maken. Waar het Swift ontbreekt aan flexibiliteit, wordt dit goedgemaakt door nieuwe functionaliteit die niet bestaat in Objective-C.

Apple zet Swift voorop voor iOS ontwikkeling. Apple benadrukt de eenvoud van de taal en stelt dat iedereen een iOS-app in Swift kan maken, zelfs degenen die nog nooit eerder hebben gecodeerd. Maar Swift is niet het enige wat je moet weten om iOS applicaties te ontwikkelen. Voor het grootste deel is het leren van Swift het leren van een nieuwe syntax.

Van Swift wordt gezegd dat het “safe by default” is. Een van de manieren waarop Swift veiliger is dan Objective-C is het veel strengere type system. In Objective-C kunnen arrays ieder object bevatten. In Swift declareer je welk type kan worden opgeslagen in de array. De array heeft de type informatie bij zich.

Swift heeft zeker nog een lange weg te gaan, maar zal in de toekomst de facto taal worden voor iOS en Mac ontwikkeling. Met steun van de open source community zal de toekomst van de taal in de komende jaren worden gevormd. Het wordt een spannende tijd voor alle iOS en Mac-ontwikkelaars.