Fotolia
Langages de programmation open source : le match entre Kotlin et Swift
Comparez les avantages de Kotlin et de Swift selon trois axes – fonctionnalités multiplateformes, prise en charge des bibliothèques et facilité d’utilisation – et passez en revue leurs grands atouts et leurs limites.
Appréciés et répandus, les deux langages de programmation open source Kotlin et Swift s’appuient sur les mêmes principes : vitesse, sécurité et concision du développement applicatif. S’ils sont traditionnellement associés à l’élaboration d’applications mobiles, ils servent aussi au développement côté Web et serveur.
Kotlin, qui présente plusieurs points communs avec Java, visait à simplifier le développement d’applications Android. En revanche, la démarche d’Apple consistait à concevoir Swift pour s’interfacer avec des bibliothèques et du code C, et à donner au développement d’applications iOS et OS X une approche open source. Quoi qu’il en soit, les deux langages se targuent de répondre aux exigences des deux environnements – Android et iOS – laissant les développeurs devant un choix difficile.
Dans cet article, nous allons comparer Kotlin et Swift ; examiner leurs atouts et leurs limites. Nous nous intéressons à la prise en charge des bibliothèques, ainsi qu’à la facilité d’utilisation et aux fonctionnalités multiplateformes qu’ils offrent.
Avantages de Kotlin
Kotlin est un langage polyvalent avec un typage statique. Il s’exécute sur la machine virtuelle Java (JVM) et s’intègre facilement avec les classes Java. Les programmeurs peuvent compiler le code Kotlin pour plusieurs plateformes, notamment Web, Android, iOS et celles des divers postes de travail.
Pour optimiser l’exécution, Kotlin utilise le framework de compilation LLVM (Low-Level Virtual Machine). La bibliothèque LLVM sert à compiler le code à la volée (en mode JIT). Elle garantit l’exécution fluide de tout le code au sein d’un autre programme, qu’il s’agisse d’un interpréteur ou d’un environnement d’exécution (runtime) d’un langage spécifique. Les utilisateurs peuvent développer des structures et des gabarits communs en accédant via des API LLVM à des variables globales et des fonctions.
Quant aux ressources, les développeurs Kotlin ont accès à la bibliothèque Arrow et à ses gabarits, classes de types, types de données et spécifications d’intégration.
Parmi ses autres atouts, Kotlin empêche le renvoi vers une référence null, et permet de travailler avec des classes de données et de créer un langage dédié (Domain Specific Language, DSL). Sa syntaxe claire et sa prise en charge efficace de l’environnement de développement intégré IntelliJ IDEA Java facilitent sa prise en main.
Inconvénients de Kotlin
Kotlin reste un jeune langage open source principalement utilisé pour propulser des applications mobiles. Sa communauté est moindre que celles des autres langages. Dès lors, les ressources où puiser des solutions en cas de problème sont réduites.
Plus problématique, la combinaison de Kotlin avec une JVM peut produire un surplus de code à gérer et à traiter, avec à la clé des temps d’exécution allongés.
Avantages de Swift
Tout comme Kotlin, Swift est un langage de programmation compilé polyvalent. Il fonctionne aussi avec le code Objective-C. On pourrait même dire qu’il améliore Objective-C : il lui apporte davantage de flexibilité, de concision syntaxique et de facilité d’utilisation.
Grâce à Swift, les programmeurs ont accès à Cocoa, l’API orientée objet native d’Apple, et à Cocoa Touch, un environnement servant à développer des applications iOS. Ils peuvent aussi utiliser Vapor et Kitura, deux frameworks Web qui offrent des environnements de développement stables pour les projets côté serveur.
SwiftUI est le framework d’Apple dédié à la conception des interfaces utilisateur en mode déclaratif pour tous les appareils. Et Swift TensorFlow constitue un puissant outil de calcul numérique et de conception en machine learning. Apple fournit et prend en charge Swift Package Manager dont la fonctionnalité de comptage des références ARC (Automatic Reference Counting) suit et gère automatiquement la consommation de mémoire à mesure que l’application monte en charge.
Grâce à une cohérence des types et à une gestion robuste des erreurs, Swift contribue à faciliter la correction des bogues, alléger la charge de programmation des développeurs et empêcher les défaillances de code et les erreurs en production.
Swift intègre son propre compilateur pour les plateformes Android ARM et x86 ainsi que le framework Swift Foundation disponible pour iOS et Android. Toutefois, il n’est possible d’utiliser Swift que pour créer des applications à exécuter sur une version iOS 7 ou ultérieure. Les versions antérieures sont incompatibles.
Inconvénients de Swift
Multiplateforme, Swift n’est pourtant pas autant adapté à Linux qu’à Apple. Le langage manque de maturité sous le système d’exploitation open source. S’ils veulent travailler avec Swift côté serveur, les programmeurs doivent se contenter de bibliothèques Linux restreintes. En outre, il leur faut composer avec les bogues non résolus du compilateur et l’absence d’un outil commun pour créer des builds pour Swift sur Linux.
De plus, les développeurs peuvent peiner à trouver les bons outils pour réaliser des tâches essentielles du fait des fréquentes mises à jour de Swift. Si le langage bénéficie de la prise en charge d’Apple, XCode constitue rarement le premier IDE intégré doté d’outils de compilation de code et de refactorisation efficaces. Et comme Swift est un langage de programmation open source plus récent, ses bibliothèques natives sont en nombre limité. Pour compenser, le gestionnaire de dépendances Cocoa Pods offre un grand nombre de bibliothèques. Il en simplifie aussi les déploiements et les mises à jour.
Kotlin contre Swift
Si Kotlin améliore de nombreux aspects de Java, des doutes subsistent quant à son avenir : remplacera-t-il un jour Java comme langage par défaut ? Coder en Kotlin demande des efforts et peut s’avérer plus complexe à apprendre que Java. Malgré cela et une communauté encore restreinte (mais florissante), l’usage régulier de Kotlin est déjà visible dans les applications commerciales et métiers. On trouve des applications Kotlin dans des petites startups et de grandes entreprises.
En comparaison, Swift améliore Objective-C au lieu d’utiliser des frameworks et des bibliothèques Java. Certains y voient un avantage de Kotlin sur Swift, car Java propose des bibliothèques plus riches pour les fonctions. De plus, la rigidité de l’écosystème du framework Apple et des attributs clés, notamment la délégation, les sources de données et les hiérarchies de classes à plat, impose des limitations fondamentales.
Toutefois, les capacités multiplateformes de Swift font remonter sa cote. Par exemple, le framework Fusion facilite les appels à la fonctionnalité d’Android depuis des applications créées dans Swift. Que le langage puisse répondre aux besoins de développement iOS et Android est un avantage non négligeable, surtout pour les programmeurs iOS qui voudraient mettre un pied dans Android.
Au bout du compte, le meilleur langage de programmation open source est celui qui vous convient, à vous et à votre équipe. Il convient de bien considérer les caractéristiques de Kotlin et Swift que nous avons soulevées ici, notamment quant à la richesse fonctionnelle, aux capacités de programmation transversale et à la facilité d’utilisation par les développeurs débutants.