Swift a été très bien accueilli par les développeurs, mais ce nouveau langage signe-t-il pour autant la mort de l'Objective-C ? Les débutants qui veulent créer leur première app pour iOS peuvent-ils apprendre exclusivement Swift ? Pour Aaron Hillegass, la réponse est claire, c'est non. « Les développeurs iOS ont besoin de connaître Objective-C », estime cette pointure qui a écrit plusieurs livres de référence sur la programmation iOS et OS X.
Son argumentation, partagée par notre développeur Nyx0uf, tient en trois points :
- si vous voulez devenir un développeur iOS, vous aurez toujours besoin de connaître Objective-C
- Objective-C est plus facile à apprendre que Swift
- une fois que vous connaissez Objective-C, il sera plus facile d'apprendre Swift
Aaron Hillegass considère Swift comme « un grand pas en avant » pour l'écosystème d'Apple (il dit notamment beaucoup apprécier sa syntaxe), mais à l'heure actuelle ce langage ne permet pas de tout faire. Il prend l'exemple de l'intégration d'une bibliothèque de Code C++ dans une application. Swift peut appeler des fonctions codées en C, mais il est plus naturel dans ce cas précis de le faire en Objective-C.
Autre exemple, celui des frameworks. Ces ensembles de bibliothèques sont toujours écrits en Objective-C. Mieux vaut donc comprendre ce langage pour ne pas se retrouver face à du chinois quand le débogueur souligne un problème.
De manière plus générale, c'est tout le patrimoine de l'Objective-C (blogs, documentation, extraits de code partagés...) accumulé au fil des ans qui fait que la compréhension de ce langage est encore importante aujourd'hui.
Le deuxième argument, peut-être plus discutable, c'est que l'Objective-C est plus facile à apprendre que Swift. Aaron Hillegass, qui enseigne le développement, estime que le temps d'apprentissage du nouveau langage sera plus long que celui de l'Objective-C, en raison notamment de règles supplémentaires.
Par ailleurs, pour une fonction équivalente, le code écrit en Swift est bien moins long que celui en Objective-C. D'un côté c'est bien car le développeur a moins de code à taper, de l'autre côté la compréhension d'une ligne de code demande plus de contexte.
Code Objective-C :
#import <stdio.h>
#import <Foundation/Foundation.h>
int main(void)
{
NSLog(@"Hello, world!\n");
return 0;
}
Code Swift équivalent :
println("Hello, world!")
Enfin, Aaron Hillegass explique que les deux langages partagent beaucoup de points communs. Autrement dit, si vous connaissez déjà Objective-C, l'apprentissage de Swift ne devrait pas trop poser de problème. La réciproque est également valable, mais au vu des deux autres arguments exposés par Aaron Hillegass, on a bien compris par lequel il fallait commencer encore aujourd'hui.
Source : Daring Fireball