Passage de Java à Kotlin

Si vous codez en Java, vous avez forcément entendu parler de Kotlin, ce langage censé révolutionner le développement Java.

Pour les deux trois du fond qui ne connaissent pas encore ce langage, il s’agit d’un langage de programmation s’appuyant sur la JVM et implémentant la programmation fonctionnelle en plus de la programmation orientée objet.

C’est un langage open source développé par JetBrain comptant plus de 700 contributeurs. Le nom JetBrain vous dit quelque chose ? C’est normal, ce sont eux qui ont développé le fameux IDE Intellij IDEA !

Prenons quelques points de comparaison entre les deux langages.

Clarté

Si vous êtes un développeur Java, vous avez régulièrement dû entendre des phrases comme Java est trop verbeux, le code est très répétitif.

Avec Kotlin, le problème disparaît, en effet si on regarde comment faire une classe Kotlin complète contenant un nom et un prénom, nous pourrons tout faire en une ligne, Accesseur (Getter), Mutateur (Setter) et constructeur compris !

Tel que le montre cet exemple :

Kotlin :

Java :

Interopérabilité

Vous souvenez- vous de l’exemple donné dans le précédent point ?

On pourrait se dire qu’en Kotlin on ne pourra pas faire de constructeur personnalisé. Mais il faut savoir que Kotlin est basé sur la JVM, ce qui signifie que tout ce qui est faisable en java est faisable en Kotlin.

Et même plus fort que ça, le code est interopérable avec Java. Cela signifie que vous pourrez utiliser des librairies Java sans problème. Ou même l’inverse, si vous avez déjà une application Java qui tourne, vous pourrez développer une librairie en Kotlin qui marchera parfaitement sur votre projet Java.

Les fonctions

Pour les fonctions ça vous tente de comparer Kotlin à Java et d’en parler après ?

Kotlin :

Java :

Ici nous avons vu plusieurs changements, le premier au niveau de la déclaration de la fonction. Mais ce n’est pas le plus gros changement.

Le plus gros changement arrive au niveau du let, plus besoin de faire comme en java et de rappeler notre variable, il suffit de l’appeler en écrivant it. On appelle ça les scope function. Elles nous permettent principalement de gagner en visibilité.

Mais nous avons également vu apparaître une nouveauté au niveau des listes en kotlin. En effet nous avons maintenant la notion de mutable et d’immutable. Si vous ne savez pas ce que cela signifie, ce code devrait vous aider à y voir plus claire :

Sûreté du langage

Combien de fois avez-vous eu de Null Pointer Exception à cause d’un null check non fait ? C’est l’une des premières erreurs que les serveurs Java rencontrent. Eh bien il faut savoir que Kotlin est null safe, plus besoin de mettre des conditions partout. En fait on va gérer ça au niveau de la déclaration de la variable pour dans un premier temps savoir si elle a le droit d’être null.

Exemple de déclaration de variable (var) et de constante (val) en kotlin :

Puis pour appeler une méthode à l’intérieur tout en vérifiant si la variable n’est pas null il suffit d’utiliser un point d’interrogation :

De plus, du fait que le langage soit moins verbeux, il est beaucoup plus simple de le débuguer étant donné qu’il y a moins de lignes à relire et souvent des lignes plus simples.

Apprentissage

Ici encore JetBrain a fait attention à ce que le langage soit accessible et simple de transition pour un développeur Java.

A tel point que le cours Openclassrooms sur la transition ne dure que 12 heures, soit moins de 2 jours !

Un bref point sur le mobile

Kotlin côté Android est déjà très largement reconnu comme un langage révolutionnaire. Ce qui est logique quand on se rappelle qu’il était uniquement possible de développer sur Android en Java. D’autres langages / Frameworks étaient donc passés devant Java afin de permettre de développer à la fois sur Android et sur IOS.

C’est là où Kotlin tire son épingle du jeu et permet de coder aussi bien du back, du web (connaissances en Js requises), de l’Android et de l’IOS. Et ce, sans apprendre un nouveau langage web (sans compter l’apprentissage des Framework avec) tel que JS ou un langage mobile comme Flutter.

Conclusion

Kotlin est clairement le futur de Java.

Surtout, n’ayez pas peur de vous jeter dans le bain, il existe un tas de formations en français comme en anglais dédiées au développeur Java.

La progression, même dans le milieu de l’entreprise, peut être progressive. D’autant plus si vous avez déjà l’habitude d’utiliser des lambda en java !

Vous souhaitez en savoir plus ? Contactez nous !

Pierre BOUCHER – Ingénieur études et développement