Da Objective-C a Swift, verso un nuovo linguaggio

A day at Dot-Conference, la prima conferenza europea dedicata a Swift, Théâtre des Variétés, Parigi, 6-7 Febbraio 2015.
 

Mettete due romani in trasferta, una conferenza europea nel cuore di Montmartre, un weekend ad alto tasso informatico e avrete il viaggio dei nostri Andrea e Fabrizio.
 

Parigi si tinge di tech e diventa il palcoscenico per un evento unico. Un tema ben focalizzato, il cambiamento da Object-C a Swift; una conferenza tech reinventata e tanto codice.
La missione? Portare sullo stage del Théâtre des Variétés i migliori hacker del mondo in modo che possano condividere con i partecipanti le loro conoscenze uniche e preziose.
 

Un incontro fatto dagli sviluppatori per gli sviluppatori. Nessun discorso di marketing, nessuna copertina patinata e alla moda. Tante discussioni, profondamente tecniche di persone che conoscono il mondo del codice, e che vogliono regalare sorprendenti approcci per il futuro.
 

“Just between us” era il claim dell’evento. Un payoff chiaro e ben definito. Sottotitolo implicito “lascia il tuo portatile a casa, apri bene le orecchie e vivi appieno i nostri dibattiti tecnici da 20 minuti”.
 

Più di semplici speaker, una vera community

Ecco i professionisti che si sono alternati sul palco del Théâtre des Variétés lo scorso 6 febbraio.
 

  • Ash Furrow. Autore, iOS developer presso Artsy, il primo sviluppatore sul linguaggio Swift.
  • Daniel Steinberg. Autore, Host del podcast di CocoaConf, il primo editor di un libro su Swift.
  • Romain Huet. Esperto Swift presso Twitter e membro del team di Fabric, creatore di un tool per Twitter che semplifica numerose funzioni e controlli.
  • JP Simard. Sviluppatore iOS presso Realm ed esperto del mobile database, semplifica il DB a livello mobile. Creatore di Jazzy per la documentazione del codice. Ha tenuto il workshop insieme a Marius.
  • Marius Rackwitz. Core Team Member di CocoaPods.
  • Kyle Fuller. Sviluppatore Swift presso Apiary e Rubyist da CocoaPods.
  • Corinne Krych. Leader tecnico iOS per Red Hat.
  • Dimitri Dupuis-Latour. Ex ingegnere Xcode presso Apple. Un uomo che conosce i segreti dell’azienda di Cupertino, ma è estremamente bravo a non farne parola.

Ma che cosa è Swift?

Era giugno 2014 quando, davanti ad una platea di sviluppatori raccolta al Worldwide Developer Conference, Apple comunicava una svolta rivoluzionaria: un nuovo linguaggio di programmazione. Quattro anni di lavoro in totale segretezza hanno portato alla realizzazione di un nuovo linguaggio multi-paradigma per sviluppare applicazioni iOS e Mac OS X di alta complessità.
 

Concepito da Chris Lattner nel luglio 2010, Swift, come suggerisce il nome, è simbolo di velocità, forza e leggerezza. Non un Visual Basic per l’azienda di Cupertino né un’alternativa entry level, ma un vero e proprio linguaggio che si candida a diventare il sistema primario per gli sviluppatori.
 

Le ragioni che hanno spinto Apple verso questo nuovo linguaggio sono principalmente due. Prima di tutto gli sviluppatori stavano trovando sempre maggiori difficoltà a far evolvere Objective-C mantenendo, però, la compatibilità con il passato. Secondo, Objective-C veniva (e viene) considerato un linguaggio con una sintassi molto elevata e complessa, in totale opposizione con la semplicità del precedessore C.
 
dot-swift-code

La sintassi di Swift

Come abbiamo appena accennato, la sintassi è stata una delle principale ragioni che ha portato alla nascita di Swift.
 

Piccolo zoom sul termine sintassi in ambito informatico [non tutti siamo coder]. La sintassi di un linguaggio di programmazione è l'insieme delle regole che una parte di codice deve seguire per essere considerata congrua e conforme.
 

Swift ha una sintassi più semplice e moderna rispetto C e Objective-C. Questa caratteristica, sin dal primo approccio, riesce a renderlo molto più friendly. La tipizzazione è molto forte in quanto il compilatore di codice effettua molteplici controlli sulla coerenza dei tipi assegnati e inizializzati. In questa maniera la scrittura (di codice) assume un alto grado di sicurezza e si evitano spiacevoli sorprese in modalità run-time.
 

Le caratteristiche di Swift

Swift è un linguaggio potente, vi spieghiamo il perché. [Spoiler: il linguaggio è abbastanza da smanettoni, se non fa proprio per voi passate direttamente a “ricapitolando”]
 

Sintassi. Con questo linguaggio viene eliminata la sintassi arcaica.
 

Variabili. Con Swift è possibile definire variabili il cui valore può essere opzionale. Come compilazione offre l’opportunità di definire una variabile che non appartiene ad alcun tipo e introduce le variabili opzionali. Tendenzialmente le variabili sono piene o vuote. Laddove vuote possono comportare ingenti problemi, errori e crash del sistema. Se abbiamo la chance di creare variabili opzionale, esse saranno inevitabilmente piene, oppure saranno inizializzate e controllate a monte per annullare l’eventuale comparsa di bug.
 

Funzioni. Le funzioni possono restituire più valori e possono avere come argomenti anche altre funzioni.
 

Introduzione agli Enum funzionali. Enumerazioni e strutture possono avere proprietà e metodi come le classi, ma non l’ereditarietà che rimane prerogativa di quest’ultime.
 

Introduzione della Structure. I tipi, nella loro definizione, possono essere annidati, anche senza limite di annidamento. è possibile definire tipi generici, il cui comportamento è indipendente dal tipo di dati su cui opera. E’ anche possibile definire dei subscripts su strutture,enumerazioni e classi.
 

Dynamic Linking. Questa caratteristica vede la possibilità di creare framework che traducono metodi realizzati con Objective-C (oppure direttamente con Swift) in classi Swift. Questo sistema fa integrare, in progetti esistenti, nuovi file sorgenti Swift e consente di usare i tipi e le funzionalità definite in Swift da sorgenti Objective-C.
 

Ricapitolando

Torniamo ad un linguaggio più comune e vicino a tutti, non solo sviluppatori incalliti. Grazie anche all’esperienza fatta al convegno, possiamo riassumere lo status di Swift in maniera concisa ed efficace. Per noi Swift è…
 
Moderno. Swift è il risultato delle ultime ricerche nel campo dei linguaggi di programmazione, unite a decadi di sperimentazioni nella costruzione di piattaforme Apple.
 

Progettato per la sicurezza. Swift elimina le intere classi di codice non sicuro. Le variabili vengono inizializzate prima dell’uso, i vettori e gli interi sono controllati per overflow e la memoria è gestita automaticamente. La sintassi è concepita per facilitare la definizione del tuo intento.
 

Veloce e potente. Sin dall’inizio, Swift è stato costruito per essere veloce. Utilizzando il compilatore LLVM ad alta performance, il codice Swift è trasformato in un codice nativo ottimizzato, adattato per tirare fuori il meglio dai moderni hardware Apple (Mac, iPhone e iPad). La sintassi e la library sono state aggiustate in modo da rendere più semplice la scrittura del codice e migliorare la performance.
 

Tra passato e futuro. Swift è il successore dei linguaggi C e Objective-C. Include bassi livelli basilari come type, flow control e operator, ma fornisce anche feature object-oriented come le classi, i protocolli e le generiche, che danno ai coder la performance e il potere da sempre richiesto.
 

andrea-fabrizio-iperdesign

Switch to Swift? La nostra opinione

Swift è ancora immaturo, ha tantissimo potenziale ma non è completamente stabile. Creare nuovi progetti in Swift è una bella sfida, ma i tempi di sviluppo sono ancora troppo incerti rispetto a quelli conosciuti e quantificabili con Objective-C. Pensiamo che nel giro di un anno questo linguaggio potrà fare un grande passo in avanti e inizierà ad affermarsi maggiormente nel settore.
 

L’evento è stato estremamente interessante. Bella la location, utili i contenuti, enormi le prospettive che apre. Azzeccatissimi gli interventi tecnici dalla durata di 20 minuti ciascuno e ottima la mossa di non fornire il wifi all’interno della struttura. L’attenzione era tutta per gli speaker e per Swift.
 

Unica piccola pecca riguarda la durata (troppo breve) del workshop di sabato, quattro ore sono state poche rispetto a quanto poteva essere affrontato con almeno il doppio tempo.
 

Per adesso vi suggeriamo di non prepensionare i vecchi linguaggi, aggiornarvi e rimanere sempre sul pezzo. Per tutto il resto c’è Iperdesign che non arresta mai il processo di apprendimento in un mondo in continuo divenire come il nostro.