Avec Swift 3 lancé le 13 septembre dernier qui a apporté de nombreux changements rendant plus mature et plus efficace le langage créé par Chris Lattner, la prochaine mouture fait le pari de la stabilité.

Fin de la première étape

Swift 4.0, attendu pour cet automne 2017, garde son objectif de stabilisation des sources évoqué l’été dernier et son découpage en deux étapes.

La première étape s’est attachée à améliorer la résilience (possibilité de faire évoluer les API publiques dans le temps), stabiliser l’ABI (Application Binary Interface) pour en améliorer les performances, revoir la prise en charge des « Strings » (chaînes de caractères) et réfléchir à un nouveau modèle de propriété de la mémoire (tendant vers un système de type Cyclone/Rust).

L’objectif de stabilité vient d’être partiellement rempli : la stabilité du code source est assurée (le compilateur prend en charge les différentes syntaxes) mais la stabilité des ABI est décalée. Les efforts sur ce point ne sont pas relâchés, mais les équipes ne garantissent plus que le sceau de stabilité soit apposé pendant le développement de Swift 4.0.

La seconde étape du développement de Swift 4 débute avec l’ouverture aux propositions pour participer à l’évolution de Swift et embarquer de nouvelles choses dans le langage.

Libérer les chaînes

Du côté des développeurs, la stabilisation de Swift est une excellente nouvelle qui assure de ne plus avoir à revoir la syntaxe à chaque évolution comme ce fut le cas pour les dernières évolutions majeures du langage.
La stabilisation n’empêche pas pour autant des changements majeurs, notamment du côté de la gestion des chaînes de caractères (« Strings »).

Les « Strings » sont un des type de données fondamentaux et, pour être efficace, un langage se doit de fournir une librarie de fonctions (API) offrant ergonomie et performance du côté développeur pour une production de code efficace.

La syntaxe liée à ces fonctions à déjà été largement simplifiée avec Swift 3.0 mais c’est loin d’être suffisant, l’objectif étant que les API puissent être expliquées en une seule ligne. Pour comparaison, le type « Int » (nombre entiers) dispose de 80 APIs avec pas plus de 2 paramètres alors que « String » monte à 205 APIs et jusqu’à 6 paramètres !

Parmi les points importants qui devraient être traités d’ici l’automne, on trouve les fonctions de traduction « localized » (qui sont tout sauf pratiques !), les opérations sur les chaînes (casse, ordre, motifs) ou encore l’indispensable conformité avec Unicode 9.

Swift 4.0 : un langage enfin mature ?

Swift évolue vite et le récent départ de Chris Lattner n’a en rien entâché l’engouement pour le langage. Malgré un petit hic sur la stabilisation des ABI, Swift 4.0 est sur la bonne voie pour tenir le calendrier et offrir stabilité et performances en hausse d’ici à la fin de l’année.

Les propositions validées de l’étape 2 ainsi que les nouveautés implémentées dans Swift 4.0 ne manqueront pas d’être présentées à la WWDC 2017.

AUCUN COMMENTAIRE