IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Kotlin Discussion :

Meta abandonne Java et adopte Kotlin comme nouveau langage principal pour le développement Android


Sujet :

Kotlin

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Dirigeant
    Inscrit en
    juin 2016
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Dirigeant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2016
    Messages : 2 725
    Points : 58 905
    Points
    58 905
    Par défaut Meta abandonne Java et adopte Kotlin comme nouveau langage principal pour le développement Android
    Meta abandonne Java et adopte Kotlin comme nouveau langage principal pour le développement Android
    l'entreprise migre le code de ses applications Android de Java vers Kotlin

    Meta est en train de migrer la base de code de ses applications Android de Java vers Kotlin. La société de médias sociaux a annoncé lundi que les applications Android pour Facebook, Instagram, Messenger et d'autres utilisent désormais environ 10 millions de lignes de code Kotlin, un langage de programmation plus jeune qui repose également sur la JVM (Java virtual machine). Dans un billet de blogue, Meta a déclaré que l'abandon de Java au profit de Kotlin n'est pas une tâche triviale et a partagé avec la communauté les leçons tirées de cette migration. Il a également partagé certains utilitaires qui lui ont été utiles lors de l'expérience.

    Ces dernières années, Kotlin est devenu un langage populaire pour le développement Android. Créé par le fabricant d'outils logiciels JetBrains, Kotlin a fait ses débuts en 2011 et a atteint sa version 1.0 en 2016. L'année suivante, il a été adopté par Google comme un langage de première classe pour le développement Android et a été placé sous la gestion de sa propre fondation, financée par JetBrains et Google. Jusque-là, la plupart des applications Android étaient écrites en Java. En mai 2019, lors de sa conférence Google I/O, Google a commencé à encourager les développeurs Android à privilégier Kotlin plutôt que Java.

    Et à la fin de l'année, le géant de la recherche a déclaré que 60 % des 1 000 principales applications Android contenaient du code Kotlin. Google justifie l'utilisation de Kotlin par le fait qu'il est plus concis, plus sûr, qu'il prend en charge la concurrence structurée pour faciliter le code asynchrone et qu'il est interopérable avec Java. Il se peut également que cela ait quelque chose à voir avec l'intendant de Java, Oracle, qui a passé plus d'une décennie à poursuivre (et finalement perdre) une plainte pour infraction contre Google concernant l'utilisation des API Java dans Android. La copie des API Java dans Android relèverait du « fair use ».

    Nom : zdezr.png
Affichages : 3532
Taille : 182,6 Ko

    Cela signifie qu'elle n’était donc pas illégale. Kotlin est aujourd'hui en pleine croissance et Meta semble être tout aussi intrigué par le langage de programmation lancé par JetBrains. Comme l'explique Omer Strulovich, ingénieur logiciel chez Meta, l'entreprise a remplacé le code Java de plusieurs de ses applications Android populaires - Facebook, Instagram, Messenger, Portal et Quest - par Kotlin. « Il est logique que nous ayons transféré le développement Android de Meta vers Kotlin afin de rendre nos flux de travail de développement plus efficaces », a déclaré Strulovich dans un billet de blogue partagé lundi et portant sur la transition.

    Strulovich poursuit en ces termes : « Kotlin est généralement considéré comme un meilleur langage que Java, avec des notes de popularité plus élevées que Java dans l'enquête annuelle de Stack Overflow auprès des développeurs. Nous avons également comparé la dernière version de Kotlin avec Java 11, qui est la dernière version pouvant être utilisée pour le développement Android ». Mais au-delà de sa popularité dans l'écosystème Android - qui, selon Strulovich, n'arrive pas à la cheville de Java, quelque part dans le top 3 des langages de programmation - Kotlin présente quelques avantages pratiques. Parmi ceux-ci, il cite :

    • nullabilité : les exceptions liées aux pointeurs null seraient un problème courant chez Meta, comme partout ailleurs. « Nous sommes très bons pour les corriger avant de publier nos applications, mais le traitement de ces problèmes prend toujours beaucoup de temps. Nous utilisons des outils internes pour détecter plus tôt les problèmes de null safety, et nous annotons rigoureusement notre code dans le cadre de notre travail pour détecter plus tôt de tels problèmes en Java. Mais même avec cela, la gestion intégrée de la nullabilité de Kotlin est plus robuste et plus facile à utiliser », a déclaré Strulovich ;
    • programmation fonctionnelle : la prise en charge par Kotlin des fonctions en ligne et des expressions lambda permettrait à Meta d'utiliser un style de programmation fonctionnelle sans compromettre la vitesse d'exécution. « Bien que Java 8 ajoute le support des lambdas et soit disponible pour Android, cela se fait au prix d'un plus grand nombre d'objets anonymes, ce qui affecte négativement les performances sur les appareils Android bas de gamme. L'outil Redex de Meta minimise ces problèmes, mais ils existent toujours, ce qui fait de Kotlin une meilleure alternative », explique-t-il ;
    • un code plus court : la conception moderne de Kotlin rendrait son code plus court. Kotlin permet d'abandonner les types explicites (comme le fait Java 11) et, avec la bibliothèque standard, qui est basée sur le style fonctionnel mentionné ci-dessus, il raccourcit de nombreuses boucles répétitives en déclarations plus simples. Selon Strulovich, ce code plus court est également plus explicite, ce qui peut le rendre plus facile à suivre ;
    • langage spécifique au domaine (DSL) / constructeurs à sécurité intrinsèque : il estime que les diverses fonctionnalités de Kotlin se rejoignent et permettent à Meta de définir un DSL. Il s'agit essentiellement d'un moyen de déplacer des définitions telles que les XML d'Android pour les implémenter directement dans le code Kotlin. Mais Strulovich ajoute que cet outil doit être manié avec précaution, car l'implémentation de DSL en Kotlin peut soit être utile, soit tourner à la suringénierie.


    En outre, Strulovich note que la transition a également eu des inconvénients. Les bases de code mixtes peuvent être difficiles à maintenir et Kotlin, qui existe depuis moins longtemps que Java, dispose d'un ensemble d'outils moins mature. Redex, l'optimiseur de bytecode Android de Meta, a dû être mis à jour. Il en est de même pour Pygments, un surligneur syntaxique. En outre, certaines bibliothèques internes permettant d'optimiser le bytecode lors de la compilation ne fonctionnaient pas avec Kotlin et ont dû être mises à jour. Et de nouveaux outils comme Ktfmt, un formateur déterministe de Kotlin, ont dû être construits.

    Meta aurait pu décider d'écrire uniquement du nouveau code en Kotlin, mais il a plutôt choisi de convertir toutes ses applications Android. « À ce jour, nos applications Android pour Facebook, Messenger et Instagram ont chacune plus d'un million de lignes de code Kotlin, et le taux de conversion ne cesse d'augmenter. Au total, notre base de code Android compte plus de 10 millions de lignes de code Kotlin », a déclaré Strulovich. Toutefois, il n'a pas précisé quand Meta a commencé la transition ni quel pourcentage du code de ses applications Android a été converti. Des sources indiquent que la migration a été amorcée l'année dernière.

    À ce stade, Meta a annoncé avoir réalisé quelques gains. Par exemple, bien que le code Kotlin soit plus court, ce n'est peut-être pas autant qu'espéré. « En moyenne, nous avons constaté une réduction de 11 % du nombre de lignes de code grâce à cette migration. Nous avons vu des chiffres beaucoup plus élevés cités en ligne, mais nous soupçonnons que ces chiffres sont dérivés d'exemples spécifiques », note Strulovich. La faible réduction de code s'expliquerait en partie par le fait qu'une grande partie du code de l'application traduite consiste en des définitions d'interface utilisateur, qui restent les mêmes, qu'elles soient en Java ou en Kotlin.

    Strulovich a déclaré qu'il n'y avait pas de régression en termes de vitesse, ce qui signifie que les applications converties ont au moins conservé leurs performances. La taille de construction des applications en Kotlin n'a pas non plus posé de problème. Strulovich a déclaré que la migration vers Kotlin est en cours et s'accélère. Entre-temps, la popularité de Java, selon l'index PYPL, a diminué de 4,7 % au cours des cinq dernières années.

    « Kotlin ne dispose toujours pas de certains des outils et des optimisations auxquels nous nous sommes habitués en travaillant avec Java. Mais nous nous efforçons de combler ces lacunes. Au fur et à mesure que nous progressons, et de la maturation de ces outils et bibliothèques, nous nous efforcerons également de les mettre à la disposition de la communauté », a déclaré Strulovich.

    Source : Meta

    Et vous ?

    Quel est votre avis sur le sujet ?
    Que pensez-vous du choix de Meta pour ses applications Android ?
    Selon vous, quel langage est le plus adapté au développement Android entre Kotlin et Java ?

    Voir aussi

    Android : Kotlin est désormais le langage préféré et recommandé par Google vers la fin de Java pour le développement Android ?

    API Java dans Android : Oracle parvient à faire annuler la décision rendue en faveur de Google, la Cour d'appel rejette l'usage équitable des API

    État de Kotlin Multiplatform : découvrez les résultats de l'enquête du 2e semestre de 2021 et participez à une nouvelle enquête sur le SDK Kotlin multiplateforme de JetBrains

    La première préversion de Kotlin 1.7.0 est disponible : un aperçu des nouveautés et améliorations du langage de programmation
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    août 2022
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : août 2022
    Messages : 444
    Points : 246
    Points
    246
    Par défaut
    Il me semble que Kotlin n'est pas mieux en termes de performance que Java.

    Ca me semble être une guerre de chapelle avant un vrai choix réfléchi.

  3. #3
    Membre expert

    Profil pro
    activité : oui
    Inscrit en
    janvier 2014
    Messages
    1 250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : activité : oui

    Informations forums :
    Inscription : janvier 2014
    Messages : 1 250
    Points : 3 334
    Points
    3 334
    Par défaut
    Kotlin selon Google :
    ça permet d'écrire du code plus court, de maintenir les performances comparativement à Java, permet aussi certaines fonctionnalités comme l'abandon des types explicites (sans précisé si ça va plus loin dans le concept ou non), etc.

    Je m'attendais à des détails plus pratiques :
    facilité de lecture + rapidité de codage >> productivité
    déterminisme + détection des erreurs >> productivité
    courbe d'apprentissage + fiabilité du code produit en fonction de la maturité du codeur >> sécurité, maintenabilité...
    efficacité énergétique du code exécuté, et autre comparaison éco-machin ou power-machin

    Après avoir lu les dires de Strulovich, j'en ressort avec le sentiment de ne pas avoir eu de critique concrète pour me faire une idée.
    Pensez à utiliser les pouces d’appréciation, pour participer à la visibilité de l'apport d'un propos, ou l'intérêt que vous y prêtez... qu'il soit positif ou négatif.

  4. #4
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    avril 2015
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : avril 2015
    Messages : 388
    Points : 1 817
    Points
    1 817
    Par défaut
    Instinctivement, si Meta adopte Kotlin, alors je choisis autre chose. N'importe quoi, mais pas leur choix. Vu la qualité de leurs décisions en général...

Discussions similaires

  1. Réponses: 7
    Dernier message: 06/02/2018, 21h26
  2. Réponses: 9
    Dernier message: 20/10/2017, 20h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo