Swift 2: caratteristiche e open source.
Lunedì Apple ha presentato molte cose interessanti per gli sviluppatori delle sue piattaforme. Il giorno successivo abbiamo scoperto che anche i programmi di sviluppo erano stati unificati in uno solo, così ora possiamo sviluppare tutti per iOS e Mac in modo intercambiabile. È un’ottima notizia. Ma tra le novità interessanti c’era anche una nuova versione di Swift, che speriamo definitiva (quest’ultimo anno la piattaforma ha subito molti cambiamenti che hanno infastidito molti programmatori) e qualcosa che ha riscosso il plauso più grande dell’intero galà: il Come indietro “fonte aperta”, o open source.
Swift era già un linguaggio interessante da quando è stato presentato al keynote di giugno dello scorso anno e la sua adozione è stata, a detta di molti esperti, la più rapida e intensa nella storia recente della programmazione informatica e dei gadget in generale. Con un linguaggio completamente modernizzato e con le ultime funzionalità assunte in un linguaggio attuale (con molti prestiti da linguaggi come C# o Ruby, solo per citarne alcuni), Apple intende andare Lasciando Obiettivo-C alle spalle come principale linguaggio di sviluppo delle app sia per iOS che per Mac. Oltre a quanto già sappiamo sulla lingua e sulla piattaforma, sono stati presentati i seguenti miglioramenti rilevanti:
- build incrementaliche consentono al compilatore di non dover ricompilare ogni volta l’intero progetto e un notevole guadagno nella velocità di avvio dell’esecuzione.
- Eseguibili ancora più veloce: Se una delle caratteristiche di Swift era la velocità di esecuzione, in questa ultima beta sembra che la velocità sia stata ulteriormente accelerata.
- Diagnostica del compilatore migliorata. Questo aiuta il compilatore stesso (che ricordiamo viene eseguito al momento della modifica) a rilevare più bug quando il programmatore li sta causando nel codice.
- stabilità migliorata.
- migliorie interne del linguaggio: questo è stato uno dei cavalli di battaglia in quello che si riferisce al primo anno del linguaggio, dal momento che i continui cambiamenti in alcune strutture come array e hash stavano causando seri problemi agli sviluppatori ogni volta che ne usciva una nuova versione. Aggiunti nuovi miglioramenti al bridge Obj-C/Swift e strutture come Set native.
A parte questi miglioramenti, che sono normali nello sviluppo del linguaggio, la grande novità di quest’anno è stata che la piattaforma e il linguaggio sono stati resi “aperti”, il che ha entusiasmato molti programmatori. Ciò ha scatenato le prime discussioni su cosa stia facendo esattamente Apple con questa mossa. L’idea doveva essere che Swift sarebbe stato probabilmente proprietario come lo è stato Objective-C in tutti questi anni, quindi in linea di principio poteva essere utilizzato solo sui sistemi operativi Apple. Ma questa svolta ha confuso molte persone. Dal momento in cui si rende aperta una lingua (i dettagli di “apertura” non sono ancora ben noti, dal momento che non è chiaro quali elementi alla fine saranno dichiarati aperti, anche se nel keynote è stato lasciato intendere che sia la lingua che il framework sarebbero stati “open-source”) si lascia la porta aperta perché possa essere implementato su altre piattaforme in modo gratuito come nel caso di .NET e Mono. Inoltre, dato che Microsoft ha dichiarato che avrebbe aperto “completamente” .NET in modo che sia il compilatore che il framework potessero essere utilizzati su altre piattaforme come Linux (ricordiamo che OS X è ancora un Unix e quindi è POSIX compatibile con Linux e altri Unix). ), Apple potrebbe essere stata costretta a fare le stesse mosse. Ma può anche essere una risposta a Java di Oracle, che con modifiche è quello utilizzato in Android. Java non è gratuito o completamente open-source. A GNU è stato consentito solo di creare una versione specifica per il proprio sistema e, dopo molte battaglie, legale in alcuni casi. Google è ancora in seria contesa con Oracle su questo argomento, poiché il gigante del database non è disposto a rinunciare. È possibile che il movimento di Apple possa mirare a iniziare a diffondere il suo “seme” attraverso il resto dei sistemi concorrenti e che sia facile per gli sviluppatori Android creare app per iOS e Mac senza bisogno di un Mac da sviluppare. In tal caso, nei prossimi mesi assisteremo alla nascita di progetti simili a Mono con il nuovo linguaggio.

Ho vissuto il movimento del software libero e sebbene mi sia dissociato da esso molto tempo fa, una delle poche certezze che ho è che nessuna grande azienda è in questo ambiente “per amore dell’arte”. Inoltre, purtroppo sono stati gli unici ad aver davvero approfittato del software libero: IBM, Google, Apple, Microsoft… E molte altre grandi aziende hanno approfittato brutalmente di questo modo di sviluppare software, contribuendo ben poco nella direzione opposta. (Apple in questo senso non è prodiga ma riconosce di essere stata molto liberale con il codice, come visto con WebKit). In particolare, penso che i vantaggi per gli sviluppatori andranno, non tanto per la libertà del codice ma per la possibilità di sviluppare per prodotti Apple senza dover avere un Mac. E questo è molto. Vedremo nei prossimi mesi quali movimenti vengono fatti e come finiscono per materializzarsi nell’ecosistema Apple.