Ens enfrontem al nou llenguatge de programació Swift amb Objective-C

Swift és un nou llenguatge de programació que Apple va presentar en la recent WWDC14, la conferència que realitza per a desenvolupadors cada any. Aquest nou llenguatge de programació coexistirà pel moment amb Objective-C, que és el llenguatge utilitzat actualment per a tots els dispositius iOS, OS X i GNUstep.

Quan Apple va presentar Swift va assegurar que era un codi interactiu i divertit, amb una sintaxi concisa alhora que expressiva i que les aplicacions corren molt més ràpid gràcies a aquest nou llenguatge de programació, que està cridat a ser el futur en el món de la programació.

Objective-C, per la seva banda, és el llenguatge insígnia, o almenys fins al moment, d'Apple. Compta amb una senzill sentència de control de flux, diferents tipus de dades fonamentals, estructures i punters, conversions implícites i explícites entre tipus, i és capaç de fer tot el que imagines de manera fàcil i ràpida.

Des de l'arribada de Swift, s'ha parlat molt sobre els pros i els contres que pugui tenir aquest llenguatge i, pel que sembla, els pros guanyen clarament. No obstant això, molts desenvolupadors s'han queixat d'aquest nou llenguatge, considerant-lo fins i tot pitjor que Objective-C. És per això que hem volgut comparar aquest nou llenguatge i Objective-C per valorar quin dels dos és millor d'una manera totalment objectiva.

Quin dels dos llenguatges té més potència?

El primer aspecte que volem analitzar és la potència del llenguatge de cadascun i, encara que a molts els faci mal, sembla bastant clar que Swift s'emportaria un punt a favor en aquest sentit.

Ningú no pot dubtar que el nou llenguatge Swift se situa molt per davant d'Objective-C pel que fa a potència i rendiment, ja que el llenguatge s'acosta molt més al maquinari.

Com bé sabreu, Objective-C converteix a binari el nostre codi i és en aquest procés de conversió on rau la major o menor potència d'un llenguatge. Swift, per la seva banda, és més proper a la CPU, està més optimitzat i compta amb un menor nombre de capes cosa que, malgrat el que diguin alguns, el converteixen en un llenguatge molt més potent que Objective-C, no hi ha dubte.

Facilitat i major comprensió sintàctica

En aquest aspecte no hi ha cap dubte que el clar guanyador és Objective-C, per què?, simplement perquè és més fàcil d'aprendre ja que compta amb una estructura més senzilla. Tot i així, com vam poder veure recentment, un programador novell va ser capaç de crear en 4 hores un clon de Flappy Bird amb Swift, cosa que demostra la seva gran velocitat, encara que és ben cert que es tracta d'un llenguatge més estricte, al més pur estil script.

Així doncs, i malgrat que el llenguatge Objective-C és més extens i requereix més línies de codi, és més fàcil d'entendre i comprendre, per la qual cosa en aquest aspecte ens quedaríem amb el popular llenguatge tradicional.

Quin llenguatge compta amb un codi més segur?

Com bé recordaràreu, Apple va patir un greu problema de seguretat amb una implementació de la certificació SSL. El problema real es va centrar en un else no controlat que es va colar en una sèrie d’if consecutius.

El fet és que Objective-C no requereix que una instrucció if sigui delimitada amb claus d'inici i fi, ja que entén que la primera instrucció assignada a l'if és la que ha d'executar. Així doncs, la instrucció else es va colar enmig de la sèrie d'if i això va provocar que es sortís d'una condició que no havia de ser-ho.

Això amb Swift mai no hagués passat, ja que el nou llenguatge compta amb una estructura prou robusta que obliga a complir una sèrie de requisits a l'hora de treballar que garanteixen una major seguretat. A més, en cas que hi hagi algun error greu d'aquest tipus, el llenguatge és capaç d'alertar-te en temps de compilació, en lloc d'aparèixer en temps d'execució, cosa que és d'agrair.

Així doncs, en aquest aspecte ens quedaríem amb la gran seguretat de Swift, ja que és molt estricte i complex, i és per això que, com ja hem dit en el punt anterior, és més difícil d'aprendre i manejar, encara que valgui la pena fer l'esforç.

Bé… tot això està molt bé… però, quin és millor?

Bé, arribats a aquest punt, crec que ha quedat força clar que el nou llenguatge de programació Swift es porta la palma en el seu gran duel amb el popular i tradicional Objective-C. Swift és modern, potent i molt segur, cosa que converteix el nou llenguatge en una gran alternativa molt més potent que Objective-C, amb un únic inconvenient: la seva dificultat.

Swift és molt més difícil d'aprendre i manejar ja que compta amb una sintaxi molt més complexa i un llenguatge menys sintàctic que Objective-C, encara que reiterem que, lluny de ser un desavantatge, val la pena fer l'esforç d'adaptar-se a aquest nou llenguatge ja que ens ofereix moltes més possibilitats.

Encara així, com hem pogut llegir a Apple Coding, cal destacar que Swift és un llenguatge molt recent per la qual cosa encara necessita molt de camí per davant i necessita arribar encara a una versió final. Encara així, si estàs pensant a aprendre un llenguatge de programació i no saps quin, nosaltres t'aconsellaríem el nou llenguatge si tens pensat llançar una aplicació d'aquí a uns mesos, o Objective-C si t'urgeix el llançament.

Sabent això… amb quina et quedes? ¿Objective-C o Swift?