Durante la WorldWide Developer Conference (WWDC) del 2 giugno 2014, Apple ha presentato un nuovo linguaggio di programmazione, Swift, che pian piano andrà a sostituire Objective-C, il linguaggio di sviluppo che per oltre 20 anni è stato utilizzato dalla community di sviluppatori per la creazione di applicazioni desktop su OS X e mobile su iOS.
Swift è un linguaggio di programmazione conciso, tipizzato, efficiente e facile da imparare, anche per chi è alle prime armi nel mondo della programmazione. Apple ha lavorato su questo linguaggio per circa 4 anni in grande segreto, ed esso incorpora le migliori caratteristiche e funzionalità appartenenti ai moderni linguaggi di programmazione, come C#, JavaScript, Python, Rust e Go.
Rispetto ad Objective-C, il codice risulta più conciso e leggibile (sono scomparse le parentesi quadre, e i punto e virgola a fine riga sono opzionali). È stato introdotto il concetto di type inference grazie al quale non è necessario specificare esplicitamente il tipo di variabili e costanti se questo può essere determinato dal contesto. Non è più necessario avere un header file ed un implementation file separato per ogni classe, ma la definizione di queste avviene in un unico file.
Come ribadito dalla stessa Apple, Swift vuole dare un taglio con il passato, non portandosi più d’appresso la pesante eredità del linguaggio C su cui Objective-C era basato. Questo implica una più snella gestione della memoria, con un garbage collector che fa tutto in autonomia senza più avere chiamate esplicite ad allocazione e deallocazione della memoria o retain counting.
Swift eredita tante moderne features da altri linguaggi, come gli Optionals, le collezioni, gli array che assomigliano alle List
di C# e una sintassi molto concisa per la creazione dei dizionari. Altre novità sono le Closure, che prendono il posto dei blocchi in Objective-C, e i Generics, classi che consentono di definire comportamenti e azioni senza decidere a priori su che tipo di dati devono operare.
Apple afferma che Swift risulta essere due volte più veloce rispetto ad Objective-C e che c’è ancora margine per il miglioramento. Il linguaggio è ancora abbastanza giovane e Apple ad ogni release aggiungerà nuove caratteristiche.
Anche se Apple spinge chiaramente nella direzione di Swift, Objective-C non è stato immediatamente abbandonato. Tutti i framework di Apple, a partire da AppKit e UIKit, che sono alla base delle librerie per la creazione di interfacce grafiche su OSX e iOS rispettivamente, sono scritti in Objective-C, e pertanto Swift deve poterne far uso. È infatti possibile sviluppare progetti “misti” con codice in Swift e Objective-C, richiamando funzioni e classi da entrambi i lati. Ancora molte aziende hanno tanto codice scritto in Objective-C e non è certamente conveniente farne il porting. Ma se uno sviluppatore inizia adesso con un nuovo progetto, ci sono poche ragioni per non utilizzare il nuovo linguaggio di Apple.