Swift è un linguaggio di programmazione potente e immediato, creato da Apple per facilitare lo sviluppo di App per iOS e Mac. Il linguaggio è progettato per dare agli sviluppatori più esperti tutta la libertà e le funzioni necessarie a creare App di nuova generazione, ma apre un nuovo mondo di possibilità anche ai principianti, perché è facile da imparare e intuitivo da usare. Secondo la casa di Cupertino, basta avere un’idea per trasformarla subito in qualcosa di straordinario.
Lo sviluppo di Swift inizia nel 2010 come “Shiny” (ad indicare “brillante”), progetto di Chris Lattner che ha l’ambizione di creare un nuovo sistema per semplificare la vita agli sviluppatori e fornire strumenti che consentano di spingersi oltre nel creare nuove applicazioni per gli utenti.
Chris Lattner
Lattner parla del suo progetto con Bertrand Serlet, nel periodo responsabile del software in Apple, e matura da subito la convinzione di dover creare un toolkit che abbia nel suo DNA una migliore protezione della memoria, in modo da aumentare la stabilità generale del sistema, e superare i limiti in merito di Objective-C (ma anche del C e C++), il linguaggio standard per lo sviluppo di soluzione software per la Mela.
Inizialmente, le prime fasi di lavoro portano allo sviluppo della funzionalità ARC del compilatore Objective -C, responsabile della convalida del codice in relazione al corretto uso della memoria. Ma le ambizioni sono ben altre, e, consci che non è possibile intervenire drasticamente su Objective-C, nel 2011 Apple decide di creare un team dedicato ad un nuovo linguaggio di sviluppo, affidandolo proprio a Lattner ed invogliando i propri dipendenti a lavorare a tempo pieno sul progetto. Tra le persone della prima ora si annovera Ted Kremenek che poi sostituirà Chris Lattner nel 2017 quando lascierà Cupertino per andare in Tesla Motors.
Il lavoro di sviluppo, pur raccogliendo le basi definite inizialmente da Lattner, apporta notevoli cambiamenti e migliorie, grazie al coinvolgimento non solo di specialisti di linguaggi di programmazione e compilatori, ma anche di tecnici ed esperti di varie aree che portano un diverso punto di vista. In particolare, l’integrazione con persone esperte di documentazione fa si che Swift sia stato progettato documentando le funzioni man mano che nascevano, con ogni decisione spiegata e documentata in modo logico e coerente.
Apple presenta ufficialmente Swift al WWDC del 2014, con Craig Federighi che lo descrive come un
“…nuovo, potente linguaggio di programmazione per iOS e OS X che rende più facile che mai per gli sviluppatori la creazione di App…”
spiegando che lo stesso unisce le prestazioni e l’efficienza dei linguaggi compilati con la semplicità e l’interattività dei linguaggi di scripting più popolari ed evidenziando che gli sviluppatori hanno ora la possibilità di scrivere codice più sicuro e affidabile, eliminando intere categorie di errori comuni di programmazione.
Federighi usa lo slogan “Objective-C, senza il C”, accattivante anche se un po’ riduttivo secondo Lattner, il quale ha sempre concepito Swift come un linguaggio di programmazione utilizzabile per tutto: dalla creazione del nucleo di un sistema operativo, a script che l’utente stesso può creare, per passare alla creazione di App, o di un firmware per interagire con l’hardware.
XCode con Swift
La prima versione del linguaggio ha dei limiti oggettivi ma tollerati, visto che lo scopo dichiarato è quello di ottenere feedback da parte degli sviluppatori. Da allora sono stati fatti grandi passi in avanti anche grazie alla scelta di rilasciare il linguaggio come open source (Apache 2.0), cosa che ha permesso di sviluppare una vasta community di sviluppatori di talento (dai creatori di App agli istituti scolastici e alle imprese) che apporta il proprio contributo, arricchendolo continuamente di nuove funzionalità ed ottimazioni, nonché contribuendo a renderlo disponibile su nuove piattaforme.
Il codice è disponibile via GitHub e include supporto per tutte le piattaforme software Apple e per Linux, mettendo a disposizione una serie specifica di componenti: Swift Compiler, Debugger, Standard Library, Foundation Libraries, Package Manager e REPL.