Maintenant que Swift 5 avec son objectif de stabiliser les ABI est à peu près terminé, il est temps de penser à Swift 6. Ted Kremenek, responsable chez Apple du développement du langage, a évoqué sur les forums officiels du projet les pistes qui vont être suivies pour la prochaine mise à jour majeure de Swift. Trois axes principaux ont été définis pour les prochaines années :
- agrandir l’écosystème ;
- améliorer l’expérience des développeurs ;
- renforcer les capacités du langage.
Agrandir l’écosystème
Swift a été créé au sein d’Apple, le langage est surtout mis à jour par des employés Apple et il sert surtout dans l’écosystème d’Apple. Mais son ambition dépasse largement ce cadre pommé : Swift est censé pouvoir répondre à tous les besoins en matière de développement sur toutes les plateformes. C’est pourquoi il est open-source depuis le premier jour, et c’est pourquoi on le retrouve sur les serveurs Linux et en partie sur Android.
Avec cette sixième version, Apple souhaite que son langage de développement s’ouvre à de nouveaux horizons. Ted Kremenek ne s’engage pas sur la prise en charge de nouvelles plateformes, mais il suggère fortement qu’une prise en charge officielle de Swift Linux pour processeurs ARM soit envisagée.
Autre indice, la « Core Team » gagne deux membres, un employé d’Apple (Tom Doron, qui a surtout travaillé sur Swift pour les serveurs) et Saleem Abdulrasool. Ce dernier est un choix intéressant, puisqu’il travaille depuis plusieurs années sur une adaptation de Swift à Windows. Son arrivée dans cette équipe est-elle un indice en faveur d’une prise en charge officielle de la plateforme de Microsoft ?
Pour accompagner cette ouverture à d’autres systèmes d’exploitation, Swift 6 devrait améliorer ses outils multi-plateforme. En particulier, le gestionnaire de paquets Swift qui simplifie l’installation de modules supplémentaires ne devrait plus être limité à macOS. Apple s’engage aussi à améliorer les libraries qui enrichissent le langage avec des fonctionnalités supplémentaires, à l’image de Numerics qui est disponible depuis l’automne.
Améliorer l’expérience
Le deuxième point intéressera tout particulièrement les développeurs d’apps pour les produits Apple. Swift 6 devra offrir une « expérience de développement fantastique » et « les développeurs devraient être à la fois productifs et ressentir de la joie en programmant », explique Ted Kremenek. Un objectif ambitieux, d’autant que c’est l’une des critiques qui revient le plus souvent, surtout de la part de développeurs qui ont commencé avec Objective-C.
Les temps de compilation plus longs, l’autocomplétion du code moins bonne ou encore des erreurs souvent trop obscures : on retrouve souvent les mêmes critiques, et Apple va améliorer les choses sur tous ces points. Swift 6 permettra d’accélérer les compilations et notamment les compilations incrémentales (où une toute petite partie du code a changé depuis la précédente) qui sont les plus courantes au quotidien. L’autocomplétion devrait être plus rapide et précise et en cas d’erreurs, les messages devraient être plus clairs et utiles.
Ces changements seront probablement accompagnés de mises à jour du côté de Xcode, et Ted Kremenek indique que le travail est déjà en cours pour les compilations. Avec un peu de chance, les développeurs pourront en bénéficier dès cette année, avec le successeur de Xcode 11.
Renforcer les capacités
Pour finir, le troisième point concerne les capacités du langage au-delà des apps pour l’écosystème d’Apple et des utilisations sur le serveur. Swift est aussi censé répondre à tous les besoins, et un effort va être fait avec la sixième version pour répondre à des besoins nouveaux. L’intelligence artificielle et l’apprentissage automatisé sont des domaines de prédilection, mais le travail va aussi porter sur le développement bas niveau, celui qui est nécessaire pour écrire le noyau d’un système d’exploitation ou le firmware d’un matériel.
Apple ne donne aucune date pour la sortie de Swift 6, qui se fera d’ailleurs de manière progressive. On peut s’attendre à une version 6.0 qui ne contiendra qu’une partie des nouveautés, et la suite viendra avec les 6.1 et suivantes.