Ultime Notizie

Swift vs ObjectiveC

Swift è stato annunciato nel WWDC del 2014 : un progetto segreto, sviluppato fin dal 2011 (inizialmente da una sola persona , poi da un team ); l'anno successivo , nel 2015, diventava opensource , con la versione 5 recentemente uscita si e' finalmente raggiunta la stabilità ABI con le conseguenze che il codice scritto rimarrà compilabile anche con le successive versioni. 

Apple, fin dalla prima presentazione, aveva sempre raccomandato di usarlo passando alla nuova tecnologia: ma è stata veramente una buona scelta ?

I miei primi programmi scritti in swift, oggi sono praticamente da buttare : pensare di convertirli alla nuova versione (come avevo già piu' volte fatto in precedenza) richiederebbe piu' tempo che riscriverli da capo, e l'ultima versione di XCode non li compila ; quello che nel frattempo ho scritto in ObjectiveC rimane invece perfettamente compilabile ed utilizzabile.

Intendiamoci, Swift è un ottimo linguaggio, prende il meglio dei linguaggi oggi più diffusi, adotta accorgimenti vari per semplificare la scrittura del codice ed evitare errori : direi che sicuramente oggi e' il momento di scegliere incondizionatamente swift, ed anche pensare alla migrazione dei vecchi progetti in ObjectiveC (anche se apple continuerà a mantenerlo)

Francamente, anche oggi, dovendo creare un nuovo progetto, penso sempre se valga la pena usare ancora ObjectiveC o Swift ; se, per esempio, devo integrare codice e librerie C++, ObjectiveC rimane la scelta migliore ; altri svantaggi di swift rimangono la lentezza di compilazione, gli eseguibili più pesanti (per le librerie), su cui Apple sta comunque migliorando qualcosa.

Un nuovo problema è rappresentato dalla difficoltà a trovare risorse online aggiornate, spesso si trovano esempi per vecchie versioni di swift non piu' utilizzabili, ma anche in ObjectiveC francamente e' sempre piu' difficile trovare materiale aggiornato (sempre piu' spesso trovo quello che mi servirebeb in swift, poco male perche' e' comunque possibile scrivere programmi con swift ed objectiveC insieme)

Quindi la conclusione e' :

- Swift 5 , con la ABI stability, e' sicuramente una versione finalmente matura di swift, da utilizzare sicuramente salvo evidenti controindicazioni 

Vale la pena ricordare che chi ha iniziato ad utilizzare swift in precedenza ha investito molto ottenendo poco: progetti difficili da mantenere, necessità di ricorrere a tool esterni ad esempio per le build , evitando lunghe attese agli sviluppatori ; magari hanno risparmiato qualcosa sugli sviluppatori visto che e' appunto piu' facile imparare swift che ObjectiveC , ma avere sviluppatori che non sanno minimamente muoversi con ObjectiveC puo' rappresentare un problema (ad esempio, per progetti di migrazione, o per quei casi dove diventa necessario integrare codice legacy) ; 

E' buona norma aspettare qualche anno prima di adottare una nuova tecnologia, e swift non fa eccezione, tutti i problemi e costi causati da una prematura adozione di swift confermano questa buona norma generale ; l'ABI stability e la compilazione delle versioni precedenti era quello che mancava a swift fino alla 4.2 , e quindi solo con swift5 e' stata raggiunta la maturità.

Altra buona norma e' quella di evitare le sollecitazioni del marketing o dei clienti, che dopo l'annuncio di Apple nel 2014 gia' dal giorno dopo richiedevano applicativi in swift (la tecnologia non la dovrebbe scegliere ne' il marketing ne' il cliente ; purtroppo anche in questo caso molti sono comunque riusciti ad imporsi, rendendosi corresponsabili dei danni causati alla propria azienda )

Chiudo rimanrcando l'assurdità di certe offerte di lavoro su cui mi capita di incontrare lo sguardo: "competenze: swift4" ; a parte che e' una versione piuttosto vecchia (tra la 4 e la 5, c'e' la 4.2, con notevoli differenze), adottare oggi una tecnologia praticamente obsoleta che non da' alcun vantaggio non ha nessuna ragione di essere