Le développement de Swift 5 est officiellement lancé

Nicolas Furno |

Maintenant que Swift 4 est finalisé et dans les mains de tous les développeurs, Apple a lancé les travaux pour Swift 5. Cette mise à jour majeure de son langage de développement sortira l’année prochaine, avec iOS 12 et macOS 10.14, mais puisque c’est un projet open-source, le contenu de cette version est connu. Toutes les nouveautés attendues pour Swift 5 sont disponibles à cette adresse.

La grosse nouveauté de Swift 5 sera la stabilité ABI (Application Binary Interface) qui permettra aux développeurs de proposer des apps un petit peu plus légères et surtout plus pérennes. Pour faire simple, ces ABI font le lien entre les applications et le système d’exploitation, entre le programme codé par le développeur et le langage machine exécuté par le processeur. C’est un composant essentiel et tant qu’il n’est pas stabilisé, chaque app devait intégrer ses propres ABI en interne.

Les ABI d’une app iOS. Cliquer pour agrandir
Les ABI d’une app iOS. Cliquer pour agrandir

Avec Swift 5, il ne sera plus nécessaire d’intégrer ces fichiers directement dans les apps, puisqu’ils seront présents dans le système d’exploitation. Ce sera autant de gagné sur le poids des apps, mais surtout cela veut dire qu’une app continuera de fonctionner au fil des mises à jour du système d’exploitation et du langage de programmation. Et si Apple améliore les ABI dans une future mise à jour d’iOS ou de macOS, toutes les apps en profiteront automatiquement.

Apple avait au départ prévu que Swift 4 offrirait la stabilité ABI (lire : La stabilité, principal enjeu de Swift 4), mais cette fonction a pris du retard et elle avait été finalement repoussée. La quatrième version du langage apporte toutefois un élément essentiel : la stabilité du code source. À partir de maintenant, les développeurs ne devraient plus avoir à mettre à jour leurs apps, avec des changements parfois importants, à chaque nouvelle version de Swift.

Pour le moment, les ingénieurs en charge de Swift ont prévu de prendre en charge totalement le code écrit en Swift 4, mais peut-être que le compilateur sera aussi compatible avec Swift 3, cela reste encore à déterminer. D’autres améliorations sont par ailleurs prévues, notamment sur la gestion du texte. N’importe qui peut proposer des idées et elles seront peut-être prises en compte dans le développement de cette mise à jour.

avatar totoguile | 

Gagner ~15MB par appli c'est pas négligeable !

avatar Nico S | 

La stabilisation des ABI aidera très certainement le langage à être pris un peu plus au sérieux.

avatar Domsware | 

@Nico S

Parce qu'il ne l'est pas ?

avatar Nico S | 

@Domsware

Hors du monde Apple ? Pas vraiment, non. Il y a bien quelques projets genre frameworks web (Vapor, Kitura, etc) mais je n'ai pas connaissance de leurs usages en production. Même de "grosses" app iOS aujourd'hui sont encore frileuses à quitter ObjC.

avatar Domsware | 

@Nico S

Ok. Donc cette remarque se limite à ce que tu connais. En ce qui me concerne c'est le contraire : tous les nouveaux développements se font en Swift.

avatar Nico S | 

@Domsware

Il y a une différence entre aimer un langage et un langage populaire. Mais adorant Swift et ayant participé à plusieurs projets open source (dont Vapor, justement), je veux bien des exemples de son utilisation en prod hors de l'écosystème Apple.

avatar LeGrosJeanLou | 

@Nico S

C'est vrai qu'en dehors de l'éco-système Apple on ne voit pas énormément de projets en Swift, ce qui paraît normal dans la mesure où le compileur n'est pas (encore?) disponible pour Windows. Il me semble par contre qu'il a été développé pour Android à partir du compileur Linux (mais je peux me tromper)

Qu'en est-il de la coopération entre Apple, IBM et Cisco ?

Sinon je suis assez d'accord, la stabilité du code est un élément essentiel à son adoption sérieuse en dehors de l'éco-système Apple. Les problématiques de pérenité sont essentielles en milieu professionnel, et la popularité indéniable de Swift ne change rien à cet état de fait.

Vivement Swift 5.

avatar Nico S | 

@LeGrosJeanLou

Exactement. Je pense aussi que les frileux actuels seront plus confiant pour écrire/convertir des librairies en Swift, un passage obligé pour une adoption à plus grande échelle. Peut-être même qu'Apple se mettra à utiliser Swift sérieusement dans leurs propres apps.

Pour aujourd'hui, l'utilisation de Swift par rapport aux stacks populaires reste anecdotique.

avatar oomu | 

ce n'est pas un jugement de valeur qu'il fait.

Il constate une situation et donne quelques exemples de pourquoi il voit cela.

avatar byte_order | 

@Domsware
> En ce qui me concerne c'est le contraire : tous les nouveaux développements
> se font en Swift.

Pour quelles plateformes stp ?

avatar emgb | 

LOL

avatar ovea | 

La seule question d'importance c'est : est-ce qu'il y a dors et déjà du fonctionnel (voir ocaml F#,…) dans Swift pour gagner en abstraction ou bien faudra-t-il utiliser un préprocesseur pour ça ?

avatar jrmy21 | 

J'ai l'impression qu'Apple a pris 10 ans d'avance sur le langage de Code

CONNEXION UTILISATEUR