Objective C vs. Swift: quale è meglio? (Una guida definitiva)

Condividi questo articolo:


Obiettivo C vs. Swift: quale è meglio? (Una guida definitiva)
Sento questa domanda tutto il tempo in cui sto consultando gli sviluppatori.

Dovrei usare Objective-C o Swift?

È un dilemma comune per gli sviluppatori. Se inizi a chiedere in giro nel settore, sentirai diverse risposte a seconda di chi chiedi.

Una persona potrebbe aver avuto una brutta esperienza con uno di questi linguaggi di programmazione, quindi si tengono sempre alla larga dall’altro.

Il rovescio della medaglia, alcune persone usano semplicemente la lingua che hanno imparato prima o si sentono più a loro agio. Ognuno ha il suo preferito.

La realtà è che non c’è sempre una scelta chiara.

Ecco una rapida occhiata ad alcuni dei punti salienti chiave per ciascun linguaggio di programmazione.

different factors

La scelta della lingua per un progetto dipende da molti fattori diversi. Quindi non posso sedermi qui e raccomandare decisamente l’uno sull’altro.

Ma quello che posso fare è spiegare alcune diverse circostanze in cui si potrebbe essere più appropriati.

Questo non lo rende necessariamente migliore. Significa solo che funzionerà meglio per quel particolare scenario.

Ho fatto questa guida per darti alcune indicazioni in modo da poter prendere una decisione informata per te stesso.

Che cos’è Objective-C?

Objective-C è il principale linguaggio di programmazione per Apple OS X e iOS.

È di gran lunga il più antico di questi due linguaggi di programmazione ed è stato introdotto per la prima volta nel 1984.

Secondo Apple, questo linguaggio offre funzionalità orientate agli oggetti e un runtime dinamico.

L’uso di Objective-C significa che otterrai supporto a livello di lingua per i letterali e la gestione dei grafici degli oggetti.

Gli oggetti sono un componente enorme per la creazione di applicazioni iOS e OS X. Cocoa o Cocoa Touch ti forniranno alcuni di questi oggetti e classi.

Gli oggetti fanno parte delle classi Objective-C, specialmente quando rappresentano valori.

Conoscere Xcode è un prerequisito per l’utilizzo di Objective-C poiché è l’ambiente di sviluppo integrato (IDE) in cui ti troverai.

Se non hai mai usato Objective-C, ma hai familiarità con altri linguaggi di programmazione basati su C come C # (usato da Microsoft) o Java (usato da Android), allora non dovrebbe essere così difficile da imparare .

Per quelli di voi che hanno una vasta conoscenza di altri linguaggi di programmazione avanzati orientati agli oggetti come Ruby o Python, non avrete nemmeno problemi ad apprendere Objective-C.

Esistono molte regole di codifica stabilite che devi seguire quando scrivi il codice in Objective-C.

Ad esempio, le maiuscole sono importanti quando si scrivono comandi, in particolare per più parole, che viene indicato come caso di cammello.

Che cos’è Swift?

Swift è un nuovissimo linguaggio di programmazione sviluppato da Apple.

È stato rilasciato per la prima volta nel giugno 2014, quindi gli sviluppatori si stanno ancora abituando. Apple ha creato Swift per funzionare sia con Cocoa che con Cocoa Touch.

Questa lingua funziona per macOS, iOS, watchOS e tvOS.

I concetti di base di Swift sono simili a Objective-C nel suo nucleo, come la programmazione estensibile, l’invio dinamico e l’associazione tardiva.

Ma Swift si distingue per la sua capacità di rilevare i bug del software. Affronta anche cose come puntatori null, che sono errori di programmazione comuni.

Quindi, come si accumula quando si tratta di prestazioni rispetto a Objective-C?

Quando Apple ha presentato Swift 2.0 alla conferenza di Apple Worldwide Developer nel 2015, ha presentato queste informazioni.

program speed

Con una velocità del programma significativamente più elevata di Objective-C, Swift deve essere il chiaro favorito in termini di preferenze degli sviluppatori, giusto?

Non ci penso ancora. Ne parleremo un po ‘più tardi.

Il linguaggio di programmazione Swift è open source. Quindi è stato creato sia da sviluppatori Apple che da collaboratori esterni.

Anche in questi primi anni del rilascio di Swift, può già supportare Linux oltre a tutte le piattaforme Apple.

Ho citato brevemente le lezioni nella loro relazione con gli oggetti in precedenza durante la panoramica di Objective-C. Bene, Swift elimina molte classi che sono percepite come codice non sicuro.

Per impostazione predefinita, gli oggetti Swift non possono mai essere nulli. Di conseguenza, è un modo sicuro e pulito per scrivere codice. In definitiva, ciò impedirà un gran numero di arresti anomali.

Swift ha una funzione unica che si chiama optionals. Con gli optionals, ci sono alcuni casi in cui zero sarebbe valido, ma la sintassi ti consente di affrontarlo in un modo sicuro e facile da comprendere.

Un altro vantaggio della sintassi di Swift è che puoi definire facilmente le tue intenzioni con parole chiave lunghe solo tre caratteri.

Ciò consentirà di risparmiare tempo nel programmare a lungo termine.

Esperienza e familiarità

Quando si tratta di decidere quale dovresti usare su un altro, ti consiglio sempre di iniziare con quello con cui hai più esperienza.

Se hai scritto il linguaggio Objective-C negli ultimi cinque o dieci anni e non hai mai usato Swift, non c’è motivo di iniziare subito se non sei costretto a farlo.

Certo, potrebbe venire il giorno in cui dovrai imparare o voler imparare un’altra lingua.

Ma se hai molti progetti in coda, è meglio andare con quello che sai meglio.

D’altra parte, se sei nuovo nel settore, potresti aver imparato Swift prima di aver imparato Objective-C.

Ancora una volta, se è quello che ti fa sentire a tuo agio, allora segui.

Detto questo, a seconda dei clienti, possono richiedere una lingua piuttosto che un’altra. In tal caso, ovviamente dovrai seguire queste istruzioni.

Ma non preoccuparti. Imparare un nuovo linguaggio di programmazione non è difficile, è solo diverso.

Ciò è particolarmente vero se hai utilizzato Objective-C e ora stai cercando di imparare Swift.

Potrebbe essere un po ‘più difficile per quelli di voi che scriveranno Objective-C per la prima volta dopo aver usato solo Swift.

Qualcos’altro da considerare è quanta esperienza e familiarità il tuo team ha con questi linguaggi di programmazione.

Dai un’occhiata a quali linguaggi di programmazione gli sviluppatori mobili preferiscono di più.

what do developers prefer

Come puoi vedere, Objective-C è più popolare di Swift, ma solo marginalmente. È incredibile per una lingua così nuova. Immagino che la popolarità di Swift continuerà ad aumentare nei prossimi anni.

Supponiamo, ad esempio, che lavori come parte di un team di sviluppo di quattro persone.

Sei stato uno sviluppatore solo per un paio d’anni, quindi hai più familiarità con Swift. Ma se a tutti gli altri membri del tuo team piace Objective-C, ha più senso usarlo per il tuo progetto.

È più facile per una persona imparare una nuova lingua che per tre persone imparare una nuova lingua, quindi dovrai essere un giocatore di squadra qui ed effettuare l’adeguamento.

Se vuoi davvero imparare un’altra lingua ma non hai motivo di farlo, prendi in considerazione l’utilizzo di quella con cui hai meno familiarità per un prototipo.

Questo ti aiuterà a bagnare i piedi senza ritardare o influenzare un progetto su vasta scala.

Dimensione dei tuoi progetti

Le dimensioni contano? In termini di linguaggio di programmazione, sì.

Per i piccoli progetti, puoi usare quello che vuoi. È facile apportare modifiche. Come ho appena detto, potresti anche considerare di provare a imparare una nuova lingua per un piccolo progetto prototipo.

Detto questo, anche se ho parlato di molte delle caratteristiche positive di Swift, è ancora molto nuovo.

Quindi non consiglierei l’uso di Swift per progetti molto grandi. Questo perché le modifiche alle nuove versioni sono noiose e richiedono tempo.

Potresti ritrovarti a passare ore e ore a convertirti in nuove sintassi anche dopo un aggiornamento minore. Ciò potrebbe anche causare build interrotte che potrebbero durare da alcuni giorni a persino una settimana, a seconda delle dimensioni del progetto.

Nessuno lo vuole.

Quindi non metterti in una posizione in cui sei in ritardo, solo perché volevi provare un nuovo linguaggio di programmazione.

Sequenza temporale

Quanto tempo ci vuole per creare un’app mobile?

A seconda del progetto, una delle prime cose che farai come sviluppatore è impostare una sequenza temporale.

timeline

Come sai, è molto importante assicurarsi che tu e i tuoi clienti siete tutti sulla stessa pagina quando si tratta di questa sequenza temporale stimata.

Non vuoi promettere una scadenza a cui non puoi rispettare, ma non dovresti nemmeno trascinare i piedi.

Se sei vincolato da scadenze rigorose, direi che non avrai molto tempo per imparare una nuova lingua. Questa è una scelta chiara per ciò che sai meglio.

Per quelli di voi che sono nuovi sviluppatori e non hanno familiarità con entrambe le lingue, direi che dovreste andare con Swift se avete una scadenza serrata.

Swift può aiutarti a muoverti più velocemente, ma come abbiamo appena detto, potrebbero esserci dei ritardi lungo la strada quando vengono rilasciate nuove versioni. Quindi dovrai valutarlo rispetto al tempo che pensi ci vorrebbe per imparare l’Obiettivo-C, che è più difficile.

Se hai una linea temporale libera senza una scadenza precisa, prova a provare la lingua con cui hai meno familiarità.

Questa è una grande opportunità per imparare una nuova abilità. Sarà qualcosa che puoi aggiungere al tuo curriculum per renderti più commerciabile.

Comprendere come utilizzare entrambe le lingue ti renderà anche una risorsa per lavorare con altri sviluppatori in futuro.

Strumenti di supporto, runtime e stabilità

Non è necessario trovare un nuovo IDE se si sta utilizzando Xcode per scrivere app iOS.

Il nuovo processo di generazione degli aggiornamenti Xcode supporta le versioni più recenti di Swift.

 

xcode

Ma di nuovo, è ancora nuovo. Quindi, se ti piace il supporto di tutti gli IDE moderni, considera di rimanere con Objective-C.

AppCode è un’altra opzione da considerare che è anche compatibile con Swift e ha strumenti per supportare questa nuova lingua.

Non è così popolare come Xcode.

Objective-C ha un tempo di esecuzione superiore rispetto a Swift. Probabilmente passeranno diversi anni prima che Swift riesca a recuperare.

Se stai utilizzando potenti SDK, Objective-C è anche la tua migliore opzione anche qui.

Consiglio comunque ai nuovi sviluppatori di iniziare a imparare Swift. È l’opzione più sicura in termini di stabilità e capacità di gestire gli errori.

API, a prova di futuro e C ++

Objective-C è un linguaggio migliore se hai intenzione di creare un’app

che utilizzerà API di base come:

CoreFoundation
AVFoundation
Core Animation
Detto questo, Swift ha una gestione della memoria e dei wrapper molto fluidi.

Tuttavia, le funzioni basate su c e le API C funzionano entrambe meglio con Objective-C. Quindi dovrai prendere in considerazione questi punti in base a ciò che richiede il tuo progetto.

Direi che Swift è il migliore per progetti a prova di futuro. Esistono moltissime risorse open source per i progetti Cocoa associati a Swift.

Non posso dirlo con certezza, ma nei prossimi 3-5 anni direi che Swift sarà allo stesso livello o potenzialmente supererà anche Objective-C.

Guarda quanto in alto Swift si trova nell’elenco dei linguaggi di programmazione che gli sviluppatori prevedono di imparare ad andare avanti.

intent to learn

È difficile guardare questo grafico e non fare riferimento a Swift come il linguaggio di programmazione di Apple del futuro.

Ci sono anche molti nuovi blog, articoli e tutorial online là fuori che rendono ancora più facile per i nuovi sviluppatori imparare a usare Swift.

Posso solo speculare, ma tra dieci anni, Swift potrebbe trovarsi in un posto in cui i nuovi sviluppatori non avranno nemmeno bisogno di capire Objective-C.

Qualcos’altro da tenere a mente è che C ++ non è compatibile con Swift. Non puoi importarli in file Swift.

Quindi, se hai già il codice scritto con le librerie C ++, ti conviene restare con Objective-C o avrai molti mal di testa che provano a creare classi wrapper o a colmare il sovraccarico aggiuntivo.

Non vale la pena.

Commutazione durante un progetto esistente

Quindi diciamo che sei nel mezzo di un progetto e dopo aver letto tutte queste informazioni stai pensando di cambiare. Dovresti farlo?

Puoi effettivamente usare entrambe le lingue.

Se stai lavorando a un progetto scritto in Objective-C, crei un file di intestazione ponte in Xcode per la tua lingua Swift.

Ma tentare questo dipenderà dalle dimensioni del tuo progetto.

Per quelli di voi che sono nel mezzo di un piccolo progetto e vogliono passare, è ragionevole.

Se vuoi cambiare la lingua per un grande progetto, ti consiglio di convertirlo un po ‘alla volta. Cercare di fare tutto in una volta può lasciare il tuo progetto suscettibile di errori e anomalie.

È più facile identificare e risolvere eventuali problemi se ti concentri solo su una piccola porzione alla volta.

Conclusione

Quindi, tornando alla domanda iniziale, qual è la migliore?

Objective-C? Swift?

Dovrai decidere tu stesso.

Objective-C è più vecchio e attualmente più popolare. È un po ‘più difficile da imparare, ma la maggior parte degli sviluppatori là fuori sa come usarlo.

Swift è ancora nuovo, ma sta facendo progressi rapidamente. È percepito come un’opzione più sicura rispetto all’Obiettivo-C ed è più facile da imparare. Detto questo, non è ancora la scelta migliore per grandi progetti.

Ci sono alcune circostanze in cui potresti inclinarti verso una lingua rispetto all’altra in base alla tua esperienza, alla familiarità del tuo team o alle dimensioni e alla sequenza temporale del tuo progetto.

Non dimenticare di valutare i vantaggi e gli svantaggi del supporto degli strumenti, della stabilità, del runtime e delle API.

Tutti questi elementi devono essere presi in considerazione quando si decide con quale lingua scegliere.

Indipendentemente da ciò che decidi, penso che Swift sia il linguaggio di programmazione del futuro. Quindi, se non l’hai ancora imparato, vedi se riesci a trovare il tempo per capirlo presto.


Per ulteriori informazioni visita il sito: immagi.net

Condividi questo articolo: