Swift 2 : « c'est le moment rêvé » pour se lancer

Nicolas Furno |

L’annonce faite durant le keynote de la WWDC a fait grand bruit auprès de la communauté des développeurs, au-delà même des plateformes traditionnelles d’Apple : en devenant open source, Swift 2 s’ouvre de nouveaux horizons prometteurs. Les sources du compilateur ainsi que les bibliothèques seront diffusées, d’ici la fin de l’année, pour iOS, OS X et Linux ; de son côté, Apple acceptera les contributions provenant de la communauté.

Nous avons voulu en savoir plus sur ce changement majeur dans les habitudes d’Apple et sur cette ouverture inédite avec Pascal Batty, développeur iOS chez SOAT.

Swift open-source : qu’est-ce que ça va changer concrètement ?

Swift est le premier langage sur lequel Apple a communiqué aussi ouvertement. Pour la première fois il y a un blog avec des explications sur le langage, les choix pris, des astuces et la documentation des nouveautés. Il y a même une communication via Twitter sur lequel Chris Lattner [un des créateurs de LLVM et directeur des outils développeurs chez Apple, NDLR] est très actif.

Le passage en open source est un pas de plus dans cette direction « d’ouverture », qui montre cet Apple nouveau, qui n'a pas peur de la transparence sur certains aspects, qui partage et qui accepte les suggestions.

Est-ce que Swift pourrait devenir un langage majeur en dehors de l’écosystème d’Apple ?

C'est tout à fait envisageable : cette ouverture pourrait permettre le développement d'un framework web en Swift par exemple, ce qu'Apple ne propose pas pour le moment. Le langage a gagné en attraction et en popularité très vite, il est unique sur certains aspects, donc les chances pour que des équipes talentueuses se l'approprient et l'utilisent dans d'autres contextes sont plutôt élevées.

De plus, l'ambition du langage est de pouvoir servir aussi bien à écrire des scripts et des applications qu'un système d'exploitation complet ! Le passage en open source lui permet cette omniprésence.

Est-ce que les autres langages existants pourraient évoluer grâce à cette ouverture ?

Swift propose une approche différente des langages actuels, ce qu’Apple a clairement explicité à la WWDC lors de la présentation « Protocol-Oriented Programming ». Cette approche n'est pas incompatible avec les langages orientés objet par exemple, qui pourraient s'inspirer du travail effectué sur Swift et l'intégrer.

Sur un plan plus technique, la compilation de Swift est assez spécifique et « redescend » pas à pas l'échelle de l'abstraction jusqu'à un niveau très bas. Le langage utilisé est très facile d'utilisation et éloigné du langage machine. Malgré ça, pour promettre une exécution performante le compilateur fait toutes les optimisations possibles. D'autres langages de haut niveau pourraient aussi s'en inspirer.

Est-ce que cela pourrait faciliter le passage d’iOS à Android, ou d’OS X à Windows/Linux ?

Je ne pense pas que ça puisse avoir de l'influence là-dessus. Le plus important dans une app iOS ou OS X, ce sont tous les appels aux « frameworks » qu'Apple a réalisés : de celui qui permet d'afficher une liste d'éléments à celui qui effectue les appels réseau, en passant par le système de navigation et la détection des gestes. Tout ceci n'est pas du tout « libéré » par Apple.

Je pense qu'avec Swift, Apple espère plutôt lever la principale barrière qui pouvait décourager les développeurs de se mettre aux applications iOS et OS X : Objective-C, dont la réputation est qu'il est vieillissant et pénible à utiliser.

Swift 2 avance-t-il dans la bonne direction ?

Oui ! Au-delà de l'évolution itérative au niveau des messages d'erreur, deux nouveautés marquent clairement une intention.

La gestion des erreurs arrive tardivement, cela laisse entendre qu'Apple a préféré attendre de trouver une solution satisfaisante plutôt que de sortir quelque chose qui marche mais qui manque d'élégance — comme avec ses autres produits. C'est rassurant.

Avec les « Protocol Extensions », une nouveauté très technique du langage, Apple ouvre la porte à de nouvelles façons de concevoir et d'organiser le code de son application. Elle l'a même explicité en réservant une présentation à la WWDC à ce sujet.

D'autres petites améliorations comme le mot-clé guard donnent aux développeurs de nouvelles conventions autour desquelles se rassembler, pour se poser moins de question et mieux se comprendre les uns les autres. Je reviens sur les principales nouveautés dans un article sur le blog de SOAT.

Tout cela montre une véritable réflexion en profondeur et que Swift est un sujet important pour Apple, sur le long terme.

Apple a fait évoluer Swift très rapidement. Est-ce que selon toi, c’est le bon moment pour se lancer à Swift ?

C'est le moment rêvé. L'évolution rapide n'est pas difficile à suivre, et les outils pour migrer le code sont de plus en plus efficaces.

Le langage a aujourd'hui démontré sa légitimité et sa pertinence, je conseille à tous ceux qui veulent développer des applications iOS ou OS X de s'y mettre. Nous avons commencé à l'utiliser en début d'année et nous ne le regrettons pas du tout.

Et puis en commençant par apprendre le langage tel qu'il est aujourd'hui, prendre en main les prochaines nouveautés sera plus facile. Je prépare en ce moment un programme de formation pour aider chacun à mettre le pied à l'étrier. En attendant, les cours sur iTunes U (en anglais) sont très bons et Exercism est une excellente plateforme pour tester ses connaissances avec des exercices d'algorithmique.

Qu’est-ce que tu attends des futures mises à jour de Swift ?

J'aimerais voir de quelle manière le langage peut évoluer vers le paradigme « Fonctionnel », vu que ça semblait être un point important au départ. Je pense que les Playgrounds, qui permettent de coder « en live » nous réservent encore beaucoup de surprises. Je suis aussi très curieux de voir comment seront intégrées les contributions de la communauté. C'est très inhabituel de voir Apple abandonner son contrôle vertical.

Accédez aux commentaires de l'article