Chris Lattner est celui qui a inventé Swift, le nouveau langage de développement d’Apple. En début d’année, il quittait l’entreprise de Cupertino pour aller travailler chez Tesla avant de démissionner à nouveau il y a une semaine. En attendant de savoir ce qui attend ce développeur brillant qui aime manifestement les défis, il était présent au début du mois de juin dans une table-ronde sur Swift en parallèle de la WWDC. À cette occasion, il s’est exprimé sur son départ d’Apple et sur le futur de son langage.
Le développeur Ole Begemann a transcrit les passages les plus intéressants de cette apparition en public. Puisqu’il s’agit d’une conférence dédiée aux développeurs, les propos sont très vite techniques et nous n’allons pas évoquer le point de vue de Chris Lattner sur les fonctions dynamiques ou la programmation concurrente. En revanche, point essentiel, il a donné son avis sur le débat entre tabulation et espace.
Le développeur est revenu sur son départ d’Apple, une décision qui a été très difficile à prendre, explique Chris Lattner. Tout en indiquant que c’était la bonne décision pour lui et qu’il n’était plus indispensable dans l’entreprise. Avant même son départ, il ne se chargeait plus vraiment du développement de Swift et son équipe tournait toute seule, et c’est toujours le cas aujourd'hui. Il félicite à nouveau Ted Kremenek qui lui a succédé chez Apple et qui l’avait fait bien avant son départ.
Néanmoins, il ne quitte pas totalement Swift, ce langage qu’il a créé et qu’il aime toujours, assure-t-il. Puisque c’est aussi un langage open-source et que son développement se poursuit en public, il garde un œil sur le projet et participe même quelques fois aux débats. Interrogé sur l’intérêt de la planification des fonctions en public, Chris Lattner reconnaît que ce n’est pas toujours une bonne idée, parce que les retours négatifs peuvent parfois frustrer les développeurs et bloquer les évolutions.
Cela étant, annoncer publiquement les évolutions est le meilleur compromis pour un langage de développement. Il y aura toujours des compromis à faire et il vaut mieux les expliquer en public, justifie Chris Lattner. On sait que le développeur était le principal moteur pour pousser Apple à ouvrir le langage, ce n’est donc pas vraiment une surprise. Au sujet des évolutions de Swift, il salue le changement d’objectif en cours de route pour la quatrième version, celle qui sera finalisée cette année.
Apple voulait à l’origine stabiliser complètement le langage, mais l’entreprise s’est ensuite concentrée sur la stabilité du code source (pour des explications plus complètes, lire : La stabilité, principal enjeu de Swift 4). Un choix logique, face à la quantité de lignes de Swift qui sont écrites chaque jour, la priorité est d’éviter à tous ces développeurs le coût élevé d’une transition. Le passage de Swift 2 à Swift 3 en particulier a été très douloureux et cela devrait aller mieux pour Swift 4, même s’il y aura encore un petit peu de travail.
Chris Lattner a aussi évoqué les origines de Swift, rappelant que c’était un projet personnel, intégré à Apple assez tard et seulement après avoir essayé d’améliorer Objective-C. Dans un premier temps, le développeur cherchait surtout à se changer les idées après avoir écrit un compilateur pour C++ utilisé en interne. Inventer un tout nouveau langage en partant de zéro était une idée plus fun pour lui, et c’est ainsi que tout a commencé.
Les deux objectifs de Swift
Dès le départ, il avait deux ambitions pour Swift : être facile à apprendre, et devenir potentiellement un langage universel. Le premier point explique la création des Playgrounds, ces bacs-à-sable où l’on peut écrire quelques lignes de Swift et voir immédiatement le résultat. Pensée d’abord pour l’iPad, cette fonction a en fait vu le jour côté Mac, mais Swift Playgrounds a permis de concrétiser ce rêve.
Lorsque Chris Lattner a commencé à réfléchir à la syntaxe utilisée par Swift, il a également cherché à simplifier au maximum le « Hello World! », ce bout de code qui est utilisé par tous les langages comme point de départ. En Swift, une seule ligne suffit à afficher un message, et elle est extrêmement simple :
print("Hello, world!")
Le deuxième objectif est l’ambition folle de Swift. Dès la présentation du langage, Apple a indiqué qu’il pouvait servir au développement d’apps, mais aussi à l’écriture du noyau d’un système d’exploitation jusqu’aux scripts bricolés par l’utilisateur final. On n’en est pas encore là, mais Chris Lattner maintient cette ambition, précisant que ce sera sûrement dans un futur lointain :
Mon ambition pour Swift a toujours été et est toujours une domination mondiale totale. C’est un objectif modeste. Mais on ne parle pas de Swift 5. C’est un objectif à 10, 15 ou 20 ans.
En attendant, Swift n’a plus besoin de faire ses preuves côté apps, des centaines de milliers de développeurs utilisent déjà le langage et les nouveaux-venus apprennent en général directement à travailler en Swift, sans passer par la case Objective-C. L’autre succès de Swift, c’est du côté des serveurs qu’il faut le chercher.
Apple a rapidement proposé une version compatible Linux de Swift et le succès est au rendez-vous, désormais soutenu par le constructeur. De multiples frameworks existent déjà pour permettre aux développeurs d’apps iOS et macOS de créer des modules nécessaires sur les serveurs en utilisant le même langage que pour leurs apps. Et au-delà de la simplicité, Chris Lattner rappelle que Swift a des arguments à faire valoir en soi, en particulier sa rapidité face à ses concurrents (lire : Sur le serveur, Swift est nettement plus rapide que Node.js).
Le prochain défi que Chris Lattner aimerait pour Swift ? Remplacer C++, un langage plutôt bas niveau qui date des années 1980 et qui reste largement utilisé pour les fondations des systèmes d’exploitation. Là encore, Swift n’est pas prêt à assumer ce rôle, mais c’est l’un de ses objectifs et son concepteur espère qu’Apple essaiera de l’atteindre.
Il y a encore beaucoup d’informations dans cette transcription de l’intervention de Chris Lattner. Si le sujet vous intéresse, n’hésitez pas à la lire, voire à regarder la conférence en vidéo à cette adresse.