{"id":3913,"date":"2022-05-18T10:39:02","date_gmt":"2022-05-18T10:39:02","guid":{"rendered":"http:\/\/the-codest.localhost\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway\/"},"modified":"2026-04-28T14:07:11","modified_gmt":"2026-04-28T14:07:11","slug":"pourquoi-kotlin-est-genial-mais-vous-resterez-quand-meme-avec-java-1","status":"publish","type":"post","link":"https:\/\/thecodest.co\/fr\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/","title":{"rendered":"Pourquoi Kotlin est g\u00e9nial, mais vous resterez quand m\u00eame avec Java"},"content":{"rendered":"<p>Quel que soit le groupe auquel vous appartenez, il y a une raison pour laquelle vous restez avec <strong><a href=\"https:\/\/thecodest.co\/fr\/blog\/find-the-right-java-developer-now\/\">Java<\/a><\/strong>. Et je ne vous bl\u00e2me pas. Elle poss\u00e8de sans doute l'\u00e9cosyst\u00e8me le plus d\u00e9velopp\u00e9, le plus universel et le plus complet de toute l'Europe. <a href=\"https:\/\/thecodest.co\/fr\/dictionary\/what-is-enterprise-hybrid-cloud\/\">entreprise<\/a> monde. Le langage dispose d'un ensemble de fonctionnalit\u00e9s bien adapt\u00e9es, quelque part dans la bonne zone entre le trop et le pas assez. De plus, de nouvelles fonctionnalit\u00e9s sont ajout\u00e9es lentement mais r\u00e9guli\u00e8rement, ce qui lui permet de rester \u00e0 jour par rapport aux nouvelles tendances du monde de la programmation.<\/p>\n\n\n\n<p>Connaissez-vous <a href=\"https:\/\/projectlombok.org\">Lombok<\/a> mais ? Si ce n'est pas le cas, je vous recommande vivement d'essayer. Si vous l'aimez, j'ai quelque chose \u00e0 vous proposer. Un tout nouveau langage qui, par ses caract\u00e9ristiques, rend le lombok obsol\u00e8te. Il s'appelle <b>Kotlin<\/b>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kotlin ? Vous voulez dire le langage Android ?<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/pClXBLD.jpg\" alt=\"En fait, oui, mais non\"\/><\/figure>\n\n\n\n<p>Kotlin sur Android a \u00e9t\u00e9 b\u00e9ni par Google lui-m\u00eame au point de devenir le langage de choix de facto pour la plateforme. Ce n'est pas l'objet de cet article, mais c'est bien sur Android que j'ai rencontr\u00e9 Kotlin pour la premi\u00e8re fois.<\/p>\n\n\n\n<p>Mon coll\u00e8gue de travail \u00e9tait en train de d\u00e9velopper une application pour une <a href=\"https:\/\/thecodest.co\/fr\/dictionary\/why-do-projects-fail\/\">projet<\/a>Il s'est d\u00e9brouill\u00e9 tout seul. Les \u00e9ch\u00e9ances approchaient \u00e0 grands pas et j'ai donc \u00e9t\u00e9 charg\u00e9 de l'aider \u00e0 les respecter. Permettez-moi de remonter le temps jusqu'\u00e0 ce moment-l\u00e0. Aaaand... YUCK ! Pourquoi utilise-t-il un langage bizarre qui ressemble \u00e0 un <a href=\"https:\/\/www.ketchupy.pl\/images\/3\/c\/9\/4\/5\/3c9453c5b720f810c293211d77449d9395f09944-product-front-1.png\">marque de ketchup<\/a>! ? C'est affreux !<\/p>\n\n\n\n<p>Pourquoi le mot \"fun\" est-il \u00e9crit avant chaque fonction ? Comme si je ne savais pas d\u00e9j\u00e0 ce que c'est. De plus, j'ai d\u00e9j\u00e0 <em>amusant<\/em> avec <strong>Java<\/strong> Quoi qu'il en soit. Et o\u00f9 se trouve le type de retour ? \u00c0 la fin ? Tu es fou ? Qu'est-ce que c'est, vous assignez quelque chose \u00e0 une fonction ? Cela n'a aucun sens ! Tout cela ressemble \u00e0 <b>Java avec des \u00e9tapes suppl\u00e9mentaires !<\/b> Attendez, o\u00f9 est la classe \u00e0 laquelle appartient cette m\u00e9thode ? O\u00f9 l'as-tu cach\u00e9e, esp\u00e8ce de ketchup, <strong>Java<\/strong> imitation d'un langage de programmation ? Oh non. Oh non, vous ne l'avez pas fait. C'EST UNE FONCTION GLOBALE ? C'est \u00e7a, j'ai fini, j'appelle la police.<\/p>\n\n\n\n<p>Alerte au spoiler : je n'ai pas appel\u00e9 les forces de l'ordre. Que cela me plaise ou non, j'ai d\u00fb adapter ma mentalit\u00e9 centr\u00e9e sur Java pour m'adapter \u00e0 un autre langage. Mais ce n'est pas si grave, n'est-ce pas ? Il s'agit toujours d'un langage JVM, c'est s\u00fbrement juste un langage diff\u00e9rent. <strong>Java<\/strong>. Peut-\u00eatre m\u00eame avec des fonctions suppl\u00e9mentaires int\u00e9ressantes ? \u00c0 contrec\u0153ur, j'ai commenc\u00e9 \u00e0 travailler sur le projet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Java avec \u00e9tapes suppl\u00e9mentaires<\/h2>\n\n\n\n<p><em>Si Java est si g\u00e9nial, pourquoi n'y a-t-il pas de Java 2 ?<\/em> Blague \u00e0 part, c'est ce que je me suis dit. Je vais faire comme si Kotlin \u00e9tait Java 2. Une nouvelle syntaxe et tout le reste, mais il faut juste que j'en apprenne assez pour terminer le projet. J'avais tort.<\/p>\n\n\n\n<p>Apr\u00e8s l'avoir essay\u00e9 pendant un jour ou deux, je me suis rapidement rendu compte que Kotlin et <strong>Java<\/strong> ne sont pas tr\u00e8s \u00e9lastiques. Essayer de les plier l'un vers l'autre aboutit in\u00e9vitablement \u00e0 ce que l'un d'entre eux se brise en deux. Il est devenu \u00e9vident que Kotlin est une chose \u00e0 part, et que le fait qu'il fonctionne sur une JVM ne signifie presque rien du point de vue du programmeur. (Pour l'anecdote, Kotlin peut aussi transpiler en <a href=\"https:\/\/thecodest.co\/fr\/blog\/hire-javascript-developer\/\">JavaScript<\/a>ou \u00eatre compil\u00e9 en un binaire natif).<\/p>\n\n\n\n<p>Plan B alors. En fait, apprenez \u00e0 conna\u00eetre le langage. La lecture de la documentation pour la premi\u00e8re fois donne des frissons \u00e0 un programmeur Java chevronn\u00e9. Par exemple :<br>- le niveau sup\u00e9rieur mentionn\u00e9 plus haut, c'est-\u00e0-dire le contexte global<br>- les types de param\u00e8tres et de retours de fonctions sp\u00e9cifi\u00e9s \u00e0 la fin<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>fun sum(a : Int, b : Int) : Int {\n   return a + b\n}<\/code><\/code><\/pre>\n\n\n\n<p>le corps de la fonction peut \u00eatre une expression (en utilisant le signe d'\u00e9galit\u00e9)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> fun sum(a : Int, b : Int) = a + b<\/code><\/code><\/pre>\n\n\n\n<p>l'\u00e9nonc\u00e9 \"if\" peut fournir un r\u00e9sultat<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> val y = if (x == 1) {\n \"un\"\n } else if (x == 2) {\n \"deux\"\n } else {\n \"autre\"\n }<\/code><\/code><\/pre>\n\n\n\n<p>Ok, je vais devoir m'y habituer. C'est juste une syntaxe diff\u00e9rente. Qu'avez-vous d'autre \u00e0 offrir, monsieur Kotlin ?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> value ?.method() \/\/ ex\u00e9cuter si non nul<\/code><\/code><\/pre>\n\n\n\n<p>Oh ok, se d\u00e9barrasser de <code>si (valeur == null)<\/code>un point pour vous. Qu'avez-vous d'autre ?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>fun check(list : List, alternative : Boolean) = when {\n list is LinkedList -&gt; print(\"linked\")\n alternative -&gt; print(\"alternative\")\n list.size &gt; 50 -&gt; print(\"big\")\n else -&gt; print(\"other\")\n }<\/code><\/code><\/pre>\n\n\n\n<p>Hmm sympa, \u00e7a pourrait \u00eatre pratique pour \u00e9viter les blocages, mais \u00e7a reste un gadget.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> object SingularObject : Counter() {\n var a = 14\n fun test() = if (a &gt; 10) \"plus\" else \"moins\"\n }<\/code><\/code><\/pre>\n\n\n\n<p>Ok, celui-l\u00e0 a l'air vraiment utile, je l'aime bien ! D'un autre c\u00f4t\u00e9, je peux aussi cr\u00e9er un singleton en Java. Ce ne sera peut-\u00eatre pas aussi \u00e9l\u00e9gant, mais ce n'est pas vraiment nouveau. Vous avez des atouts dans votre manche ? De vrais poids lourds ?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> var s : String = null \/\/ ne compile pas, type non nul<\/code><\/code><\/pre>\n\n\n\n<p>Attendez... quoi ?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/Tony_Hoare#Apologies_and_retractions\">L'erreur d'un milliard de dollars<\/a><\/h2>\n\n\n\n<p>Imaginez une base de code dans laquelle vous n'avez pas besoin de vous pr\u00e9occuper de la s\u00e9curit\u00e9 des nullit\u00e9s. Imaginez que vous preniez pour acquis que chaque r\u00e9f\u00e9rence contient r\u00e9ellement quelque chose de significatif. Imaginez que vous soyez s\u00fbr que chaque probl\u00e8me li\u00e9 \u00e0 la nullit\u00e9 est trait\u00e9 \u00e0 l'avance.<br>N'imaginez plus rien. Toutes les r\u00e9f\u00e9rences en Kotlin ne sont pas nullables par d\u00e9faut. Si vous voulez les rendre nullables, vous devez <u>consciemment<\/u> prendre cette d\u00e9cision, et <u>explicitement<\/u> l'\u00e9noncer dans le <a href=\"https:\/\/thecodest.co\/fr\/dictionary\/what-is-code-refactoring\/\">code<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> var s : String ? = null\n<\/code><\/code><\/pre>\n\n\n\n<p>Je comprends que vous puissiez \u00eatre sceptique quant \u00e0 cette id\u00e9e \u00e0 ce stade. Vous avez l'habitude des r\u00e9f\u00e9rences nullables. Vous les gardez \u00e0 l'esprit lorsque vous codez. Vous avez appris o\u00f9 vous devez \u00eatre prudent. C'est exactement ce que je pense. Venant de <strong>Java<\/strong>Au d\u00e9but, cela m'a sembl\u00e9 bizarre. Quel est l'int\u00e9r\u00eat ? Cela ne va pas faire dispara\u00eetre comme par magie tous les probl\u00e8mes qui y sont li\u00e9s. Je vais devoir ajouter des \" ?\" partout, ce qui semble \u00eatre une corv\u00e9e.<\/p>\n\n\n\n<p>Mais j'ai d\u00e9cid\u00e9 de me plonger dans la langue, n'est-ce pas ? C'est \u00e0 vous de jouer, monsieur <strong>Kotlin<\/strong>. J'ai commenc\u00e9 \u00e0 m'efforcer d'\u00e9liminer autant de variables, de champs et de param\u00e8tres nullables que possible. Petit \u00e0 petit, j'ai appris \u00e0 utiliser les caract\u00e9ristiques du langage qui facilitaient l'\u00e9limination des r\u00e9f\u00e9rences nullables, par exemple l'op\u00e9rateur safe call \" ?.\", l'op\u00e9rateur elvis \"? :\", les propri\u00e9t\u00e9s d\u00e9l\u00e9gu\u00e9es, la m\u00e9thode \"let\", et bien d'autres encore.<\/p>\n\n\n\n<p>Au fil du temps, j'ai r\u00e9ussi \u00e0 faire en sorte que certaines classes ne contiennent que des champs et des param\u00e8tres de m\u00e9thode non nuls. En fait, je savais que si une classe \u00e9tait instanci\u00e9e avec succ\u00e8s, je pouvais presque oublier la nullit\u00e9 dans le corps des m\u00e9thodes. C'\u00e9tait un vrai bonheur. Avec le temps, je l'ai appr\u00e9ci\u00e9 de plus en plus. En fin de compte, je ne l'ai pas consid\u00e9r\u00e9 comme une fonction essentielle, <strong>Java<\/strong> se sentait encore chez lui. Jusqu'\u00e0 ce que...<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Le retour<\/h2>\n\n\n\n<p>Le projet touchait \u00e0 sa fin. J'ai appris \u00e0 conna\u00eetre Kotlin de plus en plus, et gr\u00e2ce \u00e0 ces connaissances, le code est devenu de plus en plus ordonn\u00e9, lisible et concis. Les am\u00e9liorations \u00e9taient visibles \u00e0 l'\u0153il nu dans l'historique des livraisons. Le moment est enfin venu. Avec des souvenirs inattendus du nouveau langage, il \u00e9tait temps de dire au revoir et de retourner dans la douce zone de confort de <strong>Java<\/strong>. C'est du moins ce que je pensais.<\/p>\n\n\n\n<p>Connaissez-vous ce sentiment lorsque vous commencez \u00e0 appr\u00e9cier quelque chose au moment m\u00eame o\u00f9 il dispara\u00eet ? Quand vous ne r\u00e9alisez pas \u00e0 quel point vous d\u00e9pendez de quelque chose jusqu'\u00e0 ce que vous ne puissiez plus l'utiliser ? C'est le meilleur exemple de ce sentiment que j'ai probablement connu dans ma vie.<\/p>\n\n\n\n<p>Lorsque j'ai recommenc\u00e9 \u00e0 \u00e9crire le code dans <strong>Java<\/strong>J'\u00e9tais presque terrifi\u00e9 par l'absence de certaines fonctionnalit\u00e9s. C'\u00e9tait comme si mon cerveau avait inconsciemment et \u00e0 tort r\u00e9adapt\u00e9 les fonctionnalit\u00e9s de Kotlin \u00e0 Java. J'ai v\u00e9cu des situations o\u00f9 j'ai commenc\u00e9 \u00e0 impl\u00e9menter quelque chose pour me rendre compte que cela ne fonctionnerait pas dans ce langage. Dans le meilleur des cas, je pourrais l'\u00e9crire \u00e0 la mani\u00e8re de Kotlin, mais ce serait encombrant, illisible et\/ou n\u00e9cessiterait trop de gabarits.<\/p>\n\n\n\n<p>La s\u00e9curit\u00e9 contre les nullit\u00e9s \u00e9tait bien s\u00fbr la fonctionnalit\u00e9 qui me manquait le plus. Mais j'ai \u00e9t\u00e9 surpris par le nombre de petites choses qui sont devenues naturelles pour moi : param\u00e8tres nomm\u00e9s, propri\u00e9t\u00e9s au lieu de getters et setters, \"==\" comme \u00e9galit\u00e9 et \"===\" comme \u00e9galit\u00e9 r\u00e9f\u00e9rentielle, \"this\" qualifi\u00e9, fonctions d'extension, param\u00e8tre lambda singulier implicite, \"_\" pour les param\u00e8tres lambda inutilis\u00e9s, <a href=\"https:\/\/thecodest.co\/fr\/blog\/app-data-collection-security-risks-value-and-types-explored\/\">donn\u00e9es<\/a> les classes, les fonctions scope, les autres fonctions de la stdlib Kotlin, les op\u00e9rateurs et bien plus encore. Et la fa\u00e7on dont tout cela s'imbrique agr\u00e9ablement. En comparaison, Java semblait... primitif.<\/p>\n\n\n\n<p>En fait, je me sentais tellement mal que j'ai commenc\u00e9 \u00e0 envisager de passer compl\u00e8tement \u00e0 Kotlin. Th\u00e9oriquement, il est totalement interop\u00e9rable avec Java, il suffit d'ajouter le support Kotlin \u00e0 un projet existant et de commencer \u00e0 \u00e9crire de nouvelles classes. Le c\u00f4t\u00e9 Kotlin sait comment \"parler\" \u00e0 Java, et le c\u00f4t\u00e9 Java ne sait m\u00eame pas qu'il \"parle\" avec un autre langage. Et apr\u00e8s la compilation en bytecode, cela ne fait pas vraiment de diff\u00e9rence pour la JVM.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/calendly.com\/the-codest-java-consulting\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/meeting_java_expert.png\" alt=\"Rencontre avec un expert Java\"\/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">L'\u00e9preuve de v\u00e9rit\u00e9<\/h2>\n\n\n\n<p>Qu'attendez-vous donc ? Si le langage est aussi bon que vous le dites, utilisez-le ! Peut-\u00eatre pas dans les projets existants cependant, je sais qu'il devrait \u00eatre interop\u00e9rable, mais m\u00e9langer deux langages diff\u00e9rents de cette fa\u00e7on semble moche.<\/p>\n\n\n\n<p>Ok, donc pour les nouveaux modules - c'est Kotlin. Ou bien est-ce le cas ? Vous travaillez dans un <a href=\"https:\/\/thecodest.co\/fr\/blog\/how-to-hire-the-best-outsourced-development-team-for-a-scaleup\/\">\u00e9quipe<\/a>. Vous devez les consulter et les convaincre de la grandeur de cette nouvelle langue. Qu'est-ce que cela signifie ? Ils ne l'aiment pas ? On dirait qu'ils ne veulent pas faire l'effort de l'apprendre. Vous ne pouvez pas leur en vouloir, vous \u00e9tiez vous aussi sceptique au d\u00e9but.<\/p>\n\n\n\n<p>Le chef de projet ! Oui ! Il comprendra s\u00fbrement la grande valeur que Kotlin apportera \u00e0 notre \u00e9quipe. Oh, la grandeur qui vient !<br>-Non<br>-Attendez, pourquoi ?<br>-L'\u00e9quipe ne le sait pas.<br>-Ils apprendront !<br>-Ils ne veulent pas apprendre.<br>-Vous pouvez les faire !<br>-Ils n'ont pas besoin d'apprendre.<br>-C'est vrai, mais pensez aux possibilit\u00e9s !<br>-Oui, et si vous pensiez d'abord aux probl\u00e8mes ?<\/p>\n\n\n\n<p>La l\u00e9gende dit qu'il existe un projet. Un projet qui est grand et complexe, mais qui est bien \u00e9crit dans toutes ses parties. Un projet o\u00f9 tous les d\u00e9veloppeurs sont \u00e0 l'unisson sur les solutions utilis\u00e9es. O\u00f9 les nouvelles fonctionnalit\u00e9s sortent tout naturellement des claviers des programmeurs. O\u00f9 les bogues sont rares et faciles \u00e0 corriger.<\/p>\n\n\n\n<p>Avez-vous d\u00e9j\u00e0 vu un tel projet ? Je n'en ai pas vu. Certains s'en sont approch\u00e9s, mais la plupart d'entre eux sont un \u00e9norme g\u00e2chis de code h\u00e9rit\u00e9. Et s'ils ne le sont pas, ils le deviendront probablement \u00e0 un moment ou \u00e0 un autre. Imaginez maintenant que l'on ajoute un autre langage au m\u00e9lange. Il introduit de nouvelles fa\u00e7ons de commettre des erreurs. Les d\u00e9veloppeurs doivent savoir ce qu'ils font. C'est un risque, c'est le moins que l'on puisse dire.<\/p>\n\n\n\n<p>Consid\u00e9rons maintenant aussi <a href=\"https:\/\/thecodest.co\/fr\/blog\/hire-vue-js-developers\/\">d\u00e9veloppeur<\/a> rotation. Les gens viennent et partent. Allez-vous demander \u00e0 chaque nouveau d\u00e9veloppeur d'apprendre un tout nouveau langage ? Non, c'est contre-productif. Allez-vous embaucher des d\u00e9veloppeurs Kotlin d\u00e8s le d\u00e9part ? Bonne chance, embaucher un bon d\u00e9veloppeur Java est d\u00e9j\u00e0 assez difficile.<\/p>\n\n\n\n<p><a href=\"https:\/\/blog.allegro.tech\/2018\/05\/From-Java-to-Kotlin-and-Back-Again.html\">Des gens ont essay\u00e9.<\/a> Je dois dire que je ne suis pas d'accord avec la plupart des all\u00e9gations de cet article. Il y a des critiques valables, mais je pense qu'ils n'ont pas assez utilis\u00e9 Kotlin pour comprendre \"la mani\u00e8re Kotlin\". De nombreux commentateurs de cet article semblent penser la m\u00eame chose.<\/p>\n\n\n\n<p>Mais cela n'a pas d'importance. Je parie que cela se produirait \u00e9galement dans votre projet. \"J'ai essay\u00e9, je n'ai pas aim\u00e9\". Vous ne leur ferez pas passer plus de temps dessus. Vous ne les obligerez pas \u00e0 r\u00e9essayer. Vous ne l'obligerez pas \u00e0 donner une autre chance. Et d'un point de vue pratique, ils ont peut-\u00eatre raison. <strong>Java<\/strong> est tellement populaire que toute autre utilisation de la JVM semble superflue.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pourquoi cet article alors ?<\/h2>\n\n\n\n<p>Vous venez de passer un temps consid\u00e9rable \u00e0 \u00e9crire un article qui semble n'avoir aucun int\u00e9r\u00eat. Pourquoi essaierais-je d'apprendre une langue, si vous dites que c'est inutile de toute fa\u00e7on ?<\/p>\n\n\n\n<p>Je ne pense pas que ce soit inutile. Je pense toujours que Kotlin est g\u00e9nial. J'ai toujours envie de l'utiliser (et c'est d'ailleurs ce que je fais pour mes projets priv\u00e9s). Si je le pouvais, je passerais \u00e0 Kotlin et j'oublierais les limitations de Java. Mais la r\u00e9alit\u00e9 actuelle dit que je ne peux pas. Et je veux essayer de changer cela.<\/p>\n\n\n\n<p>Mon intention pour vous, cher lecteur, est d'envisager au moins la possibilit\u00e9 de sortir de la zone de confort confortable de Java. Car peut-\u00eatre, juste peut-\u00eatre, aimerez-vous Kotlin autant que moi. Et si c'est le cas, cela fera un d\u00e9veloppeur connaissant Kotlin de plus sur le site Web de l <a href=\"https:\/\/thecodest.co\/fr\/dictionary\/what-is-the-size-of-your-potential-reachable-market\/\">march\u00e9<\/a>.<\/p>\n\n\n\n<p><strong>En savoir plus :<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/the-best-type-of-projects-for-java\">Le meilleur type de projets pour Java<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/3-common-challenges-of-software-product-development-for-startups\">3 d\u00e9fis communs au d\u00e9veloppement de produits logiciels pour les startups<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/the-right-way-to-find-top-java-developers\">La bonne fa\u00e7on de trouver les meilleurs d\u00e9veloppeurs Java<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Si vous \u00eates un d\u00e9veloppeur Java, il y a de fortes chances que vous ayez au moins une certaine exp\u00e9rience avec d'autres langages de programmation.  Certains d'entre nous ont commenc\u00e9 leur aventure de programmation avec un autre langage comme C\/C++, JavaScript, C#, Python ou peut-\u00eatre m\u00eame quelque chose comme Pascal ou Basic. D'autres, par contre, ont commenc\u00e9 avec Java et n'ont jamais pr\u00eat\u00e9 trop d'attention \u00e0 d'autres langages, se souvenant d\u00e9sagr\u00e9ablement de la fois o\u00f9 ils ont eu besoin de coder rapidement quelque chose du c\u00f4t\u00e9 du frontend.<\/p>","protected":false},"author":2,"featured_media":3914,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-3913","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Why Kotlin is awesome, but you will stay with Java anyway - The Codest<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/fr\/blog\/pourquoi-kotlin-est-genial-mais-vous-resterez-quand-meme-avec-java-1\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Why Kotlin is awesome, but you will stay with Java anyway\" \/>\n<meta property=\"og:description\" content=\"If you are a Java developer, chances are you have at least some experience with other programming languages. Some of us started their programming adventure with another language like C\/C++, JavaScript, C#, Python or maybe even something like Pascal or Basic. Some, though, started with Java and just never paid too much attention to other languages, unpleasantly remembering the one time when they needed to quickly code something on the frontend side.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thecodest.co\/fr\/blog\/pourquoi-kotlin-est-genial-mais-vous-resterez-quand-meme-avec-java-1\/\" \/>\n<meta property=\"og:site_name\" content=\"The Codest\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-18T10:39:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-28T14:07:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"thecodest\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"thecodest\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/\"},\"author\":{\"name\":\"thecodest\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\"},\"headline\":\"Why Kotlin is awesome, but you will stay with Java anyway\",\"datePublished\":\"2022-05-18T10:39:02+00:00\",\"dateModified\":\"2026-04-28T14:07:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/\"},\"wordCount\":1973,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png\",\"articleSection\":[\"Software Development\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/\",\"name\":\"Why Kotlin is awesome, but you will stay with Java anyway - The Codest\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png\",\"datePublished\":\"2022-05-18T10:39:02+00:00\",\"dateModified\":\"2026-04-28T14:07:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png\",\"width\":960,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thecodest.co\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Why Kotlin is awesome, but you will stay with Java anyway\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"name\":\"The Codest\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thecodest.co\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"width\":144,\"height\":36,\"caption\":\"The Codest\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/pl.linkedin.com\\\/company\\\/codest\",\"https:\\\/\\\/clutch.co\\\/profile\\\/codest\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\",\"name\":\"thecodest\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"caption\":\"thecodest\"},\"url\":\"https:\\\/\\\/thecodest.co\\\/fr\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Pourquoi Kotlin est g\u00e9nial, mais vous resterez quand m\u00eame avec Java - The Codest","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thecodest.co\/fr\/blog\/pourquoi-kotlin-est-genial-mais-vous-resterez-quand-meme-avec-java-1\/","og_locale":"fr_FR","og_type":"article","og_title":"Why Kotlin is awesome, but you will stay with Java anyway","og_description":"If you are a Java developer, chances are you have at least some experience with other programming languages. Some of us started their programming adventure with another language like C\/C++, JavaScript, C#, Python or maybe even something like Pascal or Basic. Some, though, started with Java and just never paid too much attention to other languages, unpleasantly remembering the one time when they needed to quickly code something on the frontend side.","og_url":"https:\/\/thecodest.co\/fr\/blog\/pourquoi-kotlin-est-genial-mais-vous-resterez-quand-meme-avec-java-1\/","og_site_name":"The Codest","article_published_time":"2022-05-18T10:39:02+00:00","article_modified_time":"2026-04-28T14:07:11+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png","type":"image\/png"}],"author":"thecodest","twitter_card":"summary_large_image","twitter_misc":{"Written by":"thecodest","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/#article","isPartOf":{"@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/"},"author":{"name":"thecodest","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76"},"headline":"Why Kotlin is awesome, but you will stay with Java anyway","datePublished":"2022-05-18T10:39:02+00:00","dateModified":"2026-04-28T14:07:11+00:00","mainEntityOfPage":{"@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/"},"wordCount":1973,"commentCount":0,"publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"image":{"@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png","articleSection":["Software Development"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/","url":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/","name":"Pourquoi Kotlin est g\u00e9nial, mais vous resterez quand m\u00eame avec Java - The Codest","isPartOf":{"@id":"https:\/\/thecodest.co\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/#primaryimage"},"image":{"@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png","datePublished":"2022-05-18T10:39:02+00:00","dateModified":"2026-04-28T14:07:11+00:00","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/#primaryimage","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png","width":960,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thecodest.co\/"},{"@type":"ListItem","position":2,"name":"Why Kotlin is awesome, but you will stay with Java anyway"}]},{"@type":"WebSite","@id":"https:\/\/thecodest.co\/#website","url":"https:\/\/thecodest.co\/","name":"The Codest","description":"","publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thecodest.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","width":144,"height":36,"caption":"The Codest"},"image":{"@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/pl.linkedin.com\/company\/codest","https:\/\/clutch.co\/profile\/codest"]},{"@type":"Person","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76","name":"thecodest","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","caption":"thecodest"},"url":"https:\/\/thecodest.co\/fr\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/posts\/3913","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/comments?post=3913"}],"version-history":[{"count":8,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/posts\/3913\/revisions"}],"predecessor-version":[{"id":8525,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/posts\/3913\/revisions\/8525"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/media\/3914"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/media?parent=3913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/categories?post=3913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/tags?post=3913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}