07/11/2016

Faire de Swift un langage serveur ?

Le langage Swift développé par Apple et rendu open source depuis juin 2015 montre de belles qualités. Il lui reste seulement un défaut principal, ce langage n’est pas encore développé pour des applications côté serveur. Cette lacune semble être prise en compte par la communauté Swift qui a ouvert il y a quelques jours un groupe de travail dans ce sens.

Swift semble posséder un potentiel très important pour les applications serveur. Seulement pour être parfaitement exploitable, il lui manque des interfaces de programmation de bas niveau lui permettant de rivaliser avec ces concurrents. Le projet d’API serveur récemment annoncé devrait fournir des capacités fondamentales dans les domaines des réseaux et de la sécurité pour ne plus se reposer sur des librairies spécifiques à chaque plateforme. Cette initiative ouvre une nouvelle voie aux développeurs pour la création de framework et d’applications serveur en pur code Swift.

Les buts du groupe de travail

Bien que dans une phase de développement très précoce, les APIs serveurs se donnent pour but les caractéristiques principales suivantes :

  • fournir un accès de bas niveau, des capacités définies par les standards comme les sockets, l’analyse HTTP et la sécurité.
  • Permettre un développement croisé sur des plateformes multiples, englobant tous les systèmes d’exploitation actuellement supportés par Swift

Les fonctionnalités réseaux devraient fournir une interface portable pour les accès de bas niveau fondés sur les entrées/sorties sockets, incluant les protocoles TCP/IP et UDP, le support IPv4 et IPv6 et la résolution de nom de domaines. Elles devraient par ailleurs soutenir les connexions non bloquantes synchrones et asynchrones.

Concernant la sécurité et les techniques de chiffrement, les interfaces devraient fournir les constantes et codes cryptographiques communs, la gestion des clés et des certificats, les protocoles SSL/TLS.

La portabilité reste un grand enjeu du langage Swift à ce jour. Particulièrement dans le cas des APIs serveur, l’équipe annonce qu’elle prendra en charge les plateformes soutenues à ce jour par le langage, mais tentera de rendre l’adoption d’une nouvelle plateforme plus simple. En clair, la création d’une API cohérente au travers les différentes plateformes permettra une meilleure portabilité du code. Cependant, pour éviter la restriction au plus petit dénominateur commun, le groupe de travail annonce déjà qu’il pourrait exister des extensions spécifiques de chaque plateforme.

Pas de framework officiel en vue

Ces interfaces de programmations ne visent pas la création de frameworks serveur de haut niveau comme les frameworks web. Elles se donnent plutôt pour objectif de fournir les fondations permettant la création de frameworks de tierce partie. Elles se donnent aussi pour objectif le maximum d’interopérabilité avec les autres APIs (côté client) actuellement disponibles, les types primitifs et la librairie standard. Les Apis devraient être livrées via le Swift Package Manager

Le groupe responsable de la conception des APIs inclura des représentants des développeurs côté serveur, autant que les développeurs d’applications. Ces représentants auront la charge de fournir des entrants pour la conception des APIs, leur implémentation et d’agir comme des adoptants précoces de la technologie.

Source : swift.org

Actualités