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

  1. #1
    Chroniqueur Actualités

    Entre Java et Kotlin, lequel de ces langages est le meilleur pour le développement d'applications Android ?
    Entre Java et Kotlin, lequel de ces langages est le meilleur pour le développement d'applications Android ?

    Android est un système d'exploitation mobile développé par Google, dont la version 1.0 a été publiée en septembre 2008. Android a connu plusieurs mises à jour depuis sa première version. Au départ, Google ne supportait que le langage Java pour développer les applications destinées à la plateforme Android. Mais cette année, à la conférence Google I/O dédiée aux développeurs, le géant de la recherche en ligne a annoncé que le langage de programmation Kotlin est désormais son langage préféré pour les développeurs d'applications Android.

    En 2017, Google a reconnu Kotlin comme étant le deuxième langage officiel pour le développement d'applications Android. Depuis lors, la communauté de développeurs autour de Kotlin continue de croître. Kotlin, le langage développé par JetBrains, s’annonce comme étant un langage de programmation pragmatique, moderne et intuitif. Il entend résoudre quelques limitations de la plateforme Java, notamment ses restrictions qui peuvent causer des problèmes avec le plan de l'API Android, sa lenteur et sa grande demande en mémoire, etc.

    L'utilisation de Kotlin avec Java réduit l'excès de code standard, ce qui est un énorme gain pour les développeurs Android. Mais l’apparition de Kotlin annonce-t-elle la fin de l’utilisation de Java pour le développement d'applications Android ? Les avis sont partagés sur la question. En effet, Java est un langage de programmation très réputé avec de vastes outils et bibliothèques open source pour aider les développeurs. Cela dit, certains estiment qu’aucun langage n'est sans défaut et même Java est sujet à des complications qui peuvent rendre le travail d'un développeur fastidieux.


    Tout d’abord, selon eux, l'interopérabilité est l'objectif principal de Kotlin. Dès le début, l'intention du projet a été d'utiliser les connaissances et l'expertise existantes pour mettre chaque bibliothèque à la disposition des programmeurs de Kotlin. Les développeurs peuvent simplement écrire des modules dans Kotlin qui fonctionnent parfaitement dans le code Java existant. En émettant le bytecode, un compilateur Kotlin permet aux deux langages de travailler à l'unisson dans le même projet. Selon Call Tutors, Kotlin apporte un certain progrès à la plateforme Java.

    Pour certains développeurs Android, le langage de programmation Kotlin introduit des solutions aux problèmes de programmation courants, mais en plus il améliore l'écosystème Java dans son ensemble. Selon le site Call Tutors, qui propose une comparaison entre Java et Kotlin en neuf points, Kotlin offre quelques caractéristiques supplémentaires qui font de lui un choix préféré par rapport à Java. Selon le site, les deux langages ont chacun leurs avantages et leurs inconvénients, même si dans la comparaison Kotlin semble avoir l’avantage.

    Selon Call Tutors, en Java, l'on est obligé de vérifier le type de facteurs et les exprimer par activité. Mais avec Kotlin, les smart casts s'occuperont de ces contrôles avec le mot-clé "is-checks", qui vérifiera les qualités permanentes et effectuera des diffusions suggérées. De plus, le système de type de Kotlin est doté d'une sécurité nulle (null safety) intégrée. Selon lui, NullPointerException est en grande partie responsable des erreurs dans le développement Android. Android s'appuie sur null pour représenter l'absence d'une valeur, mais null peut facilement détruire une application.

    Kotlin résout ce problème grâce à une sécurité nulle inhérente. Cela évite aux développeurs d'écrire du code supplémentaire pour contourner le problème. Dans sa comparaison, Call Tutors aborde aussi le fait que la fonction d'exception cochée dans Java peut être problématique. Les exceptions sont vérifiées lorsque le compilateur force l'appelant d'une fonction à attraper ou (relancer) une exception. Call Tutors estime que bien souvent, les exceptions cochées se révèlent inutiles et provoquent des blocs de capture vides.

    Les exceptions cochées inexistantes sont ennuyeuses pour les développeurs parce que les blocs de capture vides les obligent à passer au crible le code pour identifier une exception inexistante. Comme solution, Kotlin les enlève entièrement, ce qui minimise la verbosité et améliore la sécurité de type. Par ailleurs, contrairement à Java, Call Tutors pense que Kotlin donne aux développeurs la capacité d'étendre une classe actuelle avec une nouvelle utilité. L’on peut faire des travaux d'élargissement en préfixant le nom d'une classe pour nommer la nouvelle capacité.

    Pour conclure, Call Tutors estime que Kotlin est ce que l’on peut qualifier d’un langage de programmation supérieur pour le développement d'applications mobiles modernes. En gros, Kotlin établit une nouvelle norme pour ce qu'un langage de programmation devrait être capable d'accomplir. Dans la comparaison Kotlin contre Java, c'est Kotlin qui est impeccable, naturellement léger et moins répétitif en ce qui concerne les classes de données, les getters/setters et les rappels écrits. Il est conçu explicitement pour améliorer les modèles Java actuels. Cependant, Call Tutors précise qu’aucun langage n’est un exemple de perfection.

    Source : Call Tutors

    Et vous ?

    Quel est votre avis sur le sujet ?
    Que pensez-vous des arguments avancés par Call Tutors ?
    Lequel des deux langages préféreriez-vous et pourquoi ?

    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 ?

    Kotlin gagne trois places et dépasse Scala dans le classement PYPL, l'indice qui analyse la fréquence de recherche des tutoriels sur Google

    RedMonk janvier 2019 : Kotlin fait son apparition dans le top 20 du classement. Objective-C est 10e et propulse Swift à la 11e place

    Google lance Android KTX, un ensemble d'extensions pour le développement Android avec Kotlin disponible en préversion
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre actif
    Mauvais esprit...
    Dart ?

    Ok je sors...

  3. #3
    Invité
    Invité(e)
    Perso c'est java, Kotlin c'est android only donc une perte de temps pour moi de me taper ce langage (je ne suis pas un pro) et j'aime pas la syntaxe
    J'aurais préféré pouvoir intégrer du C sans m'emmerder à interfacer/bricoler, ça ça aurait été une bonne évolution question économie de ressource de la machine cible avec une p'tite évolution comme ARC pour l'Objective-C, ça rend un peu feignant mais c'est bien pratique

    A mes yeux Kotlin sert surtout à pondre du soft le plus rapidement possible pour une question de gain d'argent.

  4. #4
    Membre du Club
    Kotlin est intéréssant mais il y a quelques détails qui à mes yeux entachent sa compatibilité java dont la gestion des attributs statiques avec les companion objects qui rangent dans MyClass.Companion les attributs statiques… Ça a son élégance, ces objets singleton ont leurs intérets mais utilisé depuis java ça crie en gros "cette classe a été faite en kotlin" ce qui n'est pas le propre d'un intégration propre et réussie.

  5. #5
    Nouveau Candidat au Club
    Pareil moi c'est java ou typescript angular avec les progressives web apps, pas envie d'apprendre encore un nieme langage

  6. #6
    Membre éclairé
    Citation Envoyé par stef-13013 Voir le message
    Dart ?

    Ok je sors...
    Ben non je choix est peut être judicieux. Si la compilation native de Dart arrive à être proche de C/C++ et si les tailles des exécutables sont faibles on aura un excellent concurrent, au moins pour le mobile.

  7. #7
    Membre actif
    Pour un développeur principalement Android, le choix évident est Kotlin, ce dernier est privilégié par Google, avec des rumeurs du rachat de son propriétaire "JetBrain".
    Pour un développeur multi disciplinaire, le choix de java est plus pertinent.

  8. #8
    Membre extrêmement actif
    Kotlin est le nouveau Scala ... mais cela reste un langage basé sur la JVM donc l’intérêt de la bascule est discutable.
    La joie de l'âme est dans la planification -- Louis Hubert Liautey

  9. #9
    Membre éprouvé
    Mon opinion est que ceux qui font de l'Android et indiquent préférer Java sont pour la plupart des gens qui n'ont pas envie d'apprendre un nouveau langage: Mais l'informatique, ça bouge, il faut faire avec!
    Tester Kotlin c'est l'adopter, le gain en temps et en sécurité est indéniable: Je ne vois objectivement aucun avantage en faveur de Java, excepté qu'on s'évite un apprentissage.

    Et pour répondre à ce qui a été dit plus haut: Kotlin n'a rien d'un nouveau Scala: Scala fait exploser le nombre de fonctions créées par le code, et non Kotlin. En outre Kotlin est beaucoup plus intuitif dans son utilisation et plus simple dans son apprentissage.
    Et enfin, Scala a toujours été un langage "en marge" alors que Kotlin est maintenant LE principal langage officiel de développement sous Android.

  10. #10
    Membre expert
    La réponse n°3 : Dart et Flutter
    3 langages pour 3 époques :
    • Java c'est le passé. Tout ce qu'aura gagné Oracle dans son procès face à Google est que Mountain View abandonne progressivement Java.
    • Dart représente l'avenir, lui et son framework Flutter.
    • Entre les deux il y a le présent, à savoir Kotlin.


    Ce qui implique donc que Kotlin n'a pas plus d'avenir que Java à mon avis. Certes Kotlin est l'avenir d'Android, mais Android n'est pas l'avenir de Google. L'avenir de Google se nomme Fuchsia OS. On trouve moult langages parmi les langages de développement de Fuchsia OS, mais Kotlin n'en fait pas partie au contraire de Dart. L'avenir de Kotlin passera par tourner sur la VM Dart, chose ce qu'il ne fait pas encore et qui aux dernières nouvelles ne semble pas être dans les tuyaux.

    Alors oui on me dira que Fuchsia OS serait compatible avec les applications Android, et que par conséquent Kotlin a sa carte à jouer. Mais ne soyons pas naïfs. Les applications sont le nerf de la guerre et Fuchsia n'ira pas bien loin sans la puissance du Google Play Store. Donc il faut le Play Store et ses applications Android pour lancer Fuchsia. Une fois que Fuchsia aura ses applications natives (comprendre "ne nécessitant pas une compatibilité Android"), alors celle-ci tombera en désuétude, et Kotlin avec s'il n'a pas encore évolué.

    Conclusion : contrairement à Java, Kotlin a encore quelques belles années devant lui sur les OS mobiles de Google. Mais une fois que Fuchsia OS sera là Google l'évincera au profit de Dart. Cela pourrait même commencer encore plus tôt si Google juge que Dart est d'ors et déjà prêt pour être le seul maître à bord. Apprenez Kotlin pour pouvoir vous faire du fric avec le dev Android dès maintenant, mais gardez un œil sur Dart/Flutter qui sera bientôt indispensable pour ça.
    "Ils ne savaient pas que c'était impossible alors ils l'ont fait." Mark Twain

    Mon client Twitter Qt cross-platform Windows et Linux. (en cours de développement).