Qu'est-ce que Swift ?

Le Swift est un langage de programmation présenté en 2014 par Apple. Il a été créé pour simplifier le développement d'applications pour les environnements d'Apple (iOS, OS X, tvOS, watchOS), car les nouveaux développeurs, non habitués à Objective C, trouvent souvent celui-ci trop dur à appréhender. En 2015, Apple présente Swift 2.0, une version finalisée et stable du langage. Swift est open-source depuis novembre 2015.

Le playground

Avec Swift, Apple a introduit un nouveau moyen de s'amuser avec du code : le playground. C'est à mi-chemin entre le script python et le main de C. Vous pouvez y écrire des fonctions, y définir des classes, mais aussi y exécuter du code en direct. Tout ceci est vraiment pratique pour tester des algorithmes, des animations ou plus simplement apprendre à maitriser le langage. Les playgrounds servent à prototyper plus qu’à écrire de vrais outils.

son histoire

Avant de trouver son nom officiel, Swift se nommait Shiny. Pourquoi ce nom ? Chris Lattner explique qu’il construisait une « nouvelle chose brillante » (en version originale, « a new shiny thing »). On était encore bien loin d’un langage complet capable de concurrencer Objective-C et bien plus dans le projet personnel, créé pour le plaisir.

Chris Lattner a commencé à travailler sur Swift juste après la WWDC de 2010 où Apple a proposé aux développeurs une nouvelle version de Clang, le compilateur maison qui était capable de compiler le C++. D’après le développeur, cette mise à jour était un projet très ambitieux, complexe et assez pénible à mener à bien. Il avait besoin d’une pause après cela, quelque chose de plus simple et aussi de nouveau, plus stimulant sur le plan intellectuel.

Il a alors entamé un projet sur son temps libre et commencé à échanger avec Bertrand Serlet, qui était à l’époque en charge du logiciel chez Apple, autour de l’idée d’un nouveau langage, plus moderne et débarrassé des défauts des langages de l’époque. Pendant ces premières discussions qui établissaient le profil d’un meilleur langage, la question de la gestion de la mémoire est apparue très vite.

L’un des objectifs était d’automatiser cette gestion pour sécuriser l’accès à la mémoire (memory safety). Pour faire très simple, certains langages comme C ou C++ n’ont aucune protection de la mémoire. C’est alors au développeur de gérer cet aspect, à la fois pour écrire une information en mémoire et pour la lire. Une erreur dans le code peut provoquer des fuites de mémoire, voire une instabilité du programme en cas de mauvaise utilisation de la mémoire.

À cette époque, Objective-C ne disposait d’aucun mécanisme de protection pour la mémoire par défaut. Les échanges entre Chris Lattner et Bertrand Serlet sur cet aspect et les premiers pas du futur Swift ont entraîné la création d’ARC, une nouvelle fonction du compilateur qui se charge de valider le code pour vérifier qu’il fait un bon usage de la mémoire. Ainsi, avant même que Swift soit officiellement lancé au sein d’Apple, il a servi à améliorer les outils de développement qui existaient.

Cela dit, il n’était pas possible de faire évoluer Objective-C progressivement pour le transformer en Swift. Chris Lattner reprend l’exemple de la gestion de la mémoire : ARC est un outil bien utile, mais le langage reste fondamentalement basé sur C, et donc sur une gestion de la mémoire sans protection. Pour faire mieux, il fallait repartir d’une page blanche…