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.

Nom : java-vs-kotlin-730x400.png
Affichages : 14279
Taille : 62,6 Ko

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