Swift 5.3 sera officiellement disponible sur Windows

Nicolas Furno |

Maintenant que Swift 5.2 est finalisé et disponible avec Xcode 11.4, le développement de Swift 5.3 se dévoile. Le blog officiel dédié au langage de développement d’Apple a publié un article qui présente les motivations et objectifs de cette mise à jour mineure. Un programme dans la lignée de ce qui a été annoncé pour Swift 6 avec notamment une nouveauté majeure sur les plateformes prises en charge.

Créé à l’origine pour l’écosystème d’Apple, Swift a toujours eu l’ambition d’être un langage générique, disponible sur n’importe quelle plateforme. Son développement s’est ainsi rapidement porté vers le monde des serveurs avec une version Linux, prise en charge officiellement par Apple depuis des années. L’étape suivante a été annoncée : Swift 5.3 sera aussi officiellement compatible avec Windows. Cette mise à jour sera aussi l’occasion de gérer davantage de distributions Linux, puisque seule Ubuntu était prise en charge jusque-là.

On n’en sait pas plus pour l’heure sur les nouveautés à attendre, ni sur la date de sortie. Si tout va bien, Apple devrait profiter de la WWDC de juin pour présenter une première bêta de Swift 5.3 et on peut s’attendre à une finalisation à l’automne. Ce calendrier sera peut-être perturbé à cause du confinement.

avatar MJohnson (non vérifié) | 

Je suis absolument pas expert en programmation donc la question sera sans doutes stupide mais est ce que théoriquement ça veut dire que je peux écrire une application et qu’elle sera directement compatible avec iOS, Mac OS (avec catalyst) et Windows ?

avatar byte_order | 

@MJohnson

Non, pas du tout.
Cela veut dire que l'on pourrait écrire différentes types d'applications pour différentes plateformes, iOS, macOS, Linux, Windows en utilisant le même langage de programmation, la même syntaxe, alphabet et grammaire d'écriture, mais pas les mêmes interfaces de programmation (les fameuses API, c.a.d. le vocabulaire spécificique) de ces plateformes.

Concernant Swift, seule Catalyst propose une API unifiée entre iOS et macOS, mais même là y'a quelques différences quand même.

avatar MJohnson (non vérifié) | 

@byte_order

Ok merci pour la réponse

avatar jerome74 | 

@byte_order "mais pas les mêmes interfaces de programmation": la question maintenant c'est: est-ce qu'Apple (ou quelqu'un d'autre) va effectivement proposer des API en Swift pour Windows, ou bien est-ce qu'on pourra juste compiler du code bas niveau, qui nécessitera d'être utilisé avec du code dans un autre langage pour accéder aux API Windows?

avatar BeePotato | 

@ jerome74 : « la question maintenant c'est: est-ce qu'Apple (ou quelqu'un d'autre) va effectivement proposer des API en Swift pour Windows »

Il y a un projet OpenSwiftUI qui s’est lancé il y a quelque temps, avec pour but d’avoir une implémentation ouverte des API de SwiftUI — ouvrant la possibilité ensuite de développer un module de rendu pour chaque plateforme où des gens voudraient l’utiliser.
Mais comme c’est déjà le cas pour SwiftUI sur iOS et MacOS, le but n’est pas de permettre du « write once, rune everywhere », l’interface utilisateur devant être adaptée d’une plateforme à l’autre.

« ou bien est-ce qu'on pourra juste compiler du code bas niveau, qui nécessitera d'être utilisé avec du code dans un autre langage pour accéder aux API Windows? »

De toute façon, un OS propose plus d’API que juste celles dédiées à l’interface graphique. Il faudra donc bien, à un moment, appeler directement des API Windows (sauf à développer une application très simple ou une de ces horreurs « multiplateformes » qui n’utilisent rien de spécifique des plateformes sur lesquelles elles tournent).
Le travail sur le lien Swift/C++ avance et il devrait probablement, à terme, être possible d’appeler directement en Swift les API Windows C++.

avatar robindumontchaponet | 

À priori swift-corelibs-foundation fait parti des codes impactés par la màj. Rien ne dit que c'est pour la compatibilité Windows mais ça serait un gros point d'entrée.

avatar dodomu | 

@byte_order

Ça dépend quelles API... Celle dédiées au interfaces graphiques sont à l’heure actuelle limitées au plateformes Apple, mais d’autres peuvent très bien être disponibles partout: les requêtes réseaux, les calculs mathématiques, la manipulation des fichiers...

avatar byte_order | 

@dodomu

Oui, mais ça c'est vrai aussi dans les autres ecosystèmes de langage de programmation.

avatar occam | 

@MJohnson

À noter que l’intégration de Linux à Windows 10 fait de jolis progrès grâce au Windows Subsystem for Linux (actuellement, WSL2).
https://arstechnica.com/information-technology/2020/03/the-windows-subsystem-for-linux-conference-was-a-virtual-success/

Aspect à prendre en compte le cas échéant.

CONNEXION UTILISATEUR