Swift, le nouveau langage de programmation d’Apple, a été présenté à l’occasion de la WWDC 2014. Pour autant, le constructeur n’a pas sorti une version finalisée de son langage et les mises à jour successives ont souvent cassé la compatibilité avec les versions précédentes. Résultat, l’adoption de Swift s’en est trouvée ralentie, car il fallait à chaque fois convertir, et souvent réécrire, son code.
Peut-être que cela changera maintenant que Swift est open-source. Mais en attendant, il y a encore assez peu d’applications codées en Swift, même si ce n’est que partiel. Et même Apple n’utilise pas vraiment son nouveau langage, comme l’a noté ce développeur qui a analysé toutes les applications iOS de l’entreprise. Et le bilan est sans appel : une seule application livrée avec iOS 9.2 utilise le langage et c’est… la Calculette.
Calculator.app
est la seule application qui intègre du Swift, et Apple en a manifestement profité pour la réécrire presque entièrement. Sur les 22 classes qui la composent, seules deux sont encore en Objective-C, tout le reste est en Swift. Plus étonnant encore, l’application intègre toutes les bibliothèques associées aux langages, comme toutes celles que l’on trouve sur l’App Store.
La raison est simple : iOS n’intègre toujours pas les composants de base pour exécuter du code Swift, c’est à chaque application de le faire. Ce n’est pas une raison pour ne pas adopter le langage et on sait que des applications ont été entièrement réécrites en Swift… mais pas chez Apple. Même si l’on regarde les applications facultatives conçues par l’entreprise, il n’y en a que deux qui ne sont pas exclusivement en Objective-C.
Celle de la WWDC ne contient que six classes en Swift, à comparer à l’écrasante majorité (275 classes) en Objective-C. Et il y a aussi une pincée de Swift dans l’application dédiée à l’Apple Store, mais uniquement pour le module installé sur l’Apple Watch. Pour être plus juste avec Apple, il faudrait néanmoins encore évoquer OS X.
On sait que le Dock d’OS X intègre du code en Swift et Craig Federighi lui-même avait indiqué que les nouveautés d’El Capitan dans Mission Control ont été développées en Swift. Le SVP avait par ailleurs laissé entendre que Swift était utilisé en interne, notamment pour mener des tests unitaires. Reste que Swift est encore loin d’avoir remplacé Objective-C, ce qui est logique quand on considère la jeunesse de ce langage.
Ce même développeur a aussi analysé les cent applications gratuites les plus populaires sur l’App Store pour vérifier si elles exploitaient du Swift. Le résultat est, là aussi, sans appel : selon ses analyses, 11 % des applications exploitent de nouveau le langage, les autres se contentent d’Objective-C. Et comme pour les applications d’Apple, ce n’est pas parce que Swift est présent qu’il est beaucoup utilisé.