{"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":"perche-kotlin-e-fantastico-ma-rimarrete-comunque-con-java-1","status":"publish","type":"post","link":"https:\/\/thecodest.co\/it\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/","title":{"rendered":"Perch\u00e9 Kotlin \u00e8 fantastico, ma voi resterete comunque con Java"},"content":{"rendered":"<p>Indipendentemente dal gruppo a cui si appartiene, c'\u00e8 un motivo per cui si rimane con <strong><a href=\"https:\/\/thecodest.co\/it\/blog\/find-the-right-java-developer-now\/\">Java<\/a><\/strong>. E non vi sto dando la colpa. Ha probabilmente l'ecosistema pi\u00f9 sviluppato, universale e completo di tutto il mondo. <a href=\"https:\/\/thecodest.co\/it\/dictionary\/what-is-enterprise-hybrid-cloud\/\">impresa<\/a> mondo. Il linguaggio ha un insieme di funzionalit\u00e0 ben personalizzate, a met\u00e0 strada tra il troppo e il troppo poco. Inoltre, vengono aggiunte lentamente ma costantemente nuove funzionalit\u00e0, che lo mantengono per lo pi\u00f9 aggiornato con le nuove tendenze del mondo della programmazione.<\/p>\n\n\n\n<p>Sapete che <a href=\"https:\/\/projectlombok.org\">Lombok<\/a> Ma? Se non lo fate, vi consiglio di provarlo. Se vi piace, ho qualcosa da farvi provare. Un linguaggio completamente nuovo, che per le sue caratteristiche rende il Lombok obsoleto. Si chiama <b>Kotlin<\/b>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kotlin? Intendi il linguaggio di Android?<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/pClXBLD.jpg\" alt=\"Beh, s\u00ec, ma in realt\u00e0 no\"\/><\/figure>\n\n\n\n<p>Kotlin su Android \u00e8 stato benedetto da Google stesso al punto da diventare il linguaggio de-facto di scelta per la piattaforma. Non \u00e8 questo l'argomento su cui mi concentrer\u00f2 in questo articolo, ma Android \u00e8 effettivamente il luogo in cui ho incontrato Kotlin per la prima volta.<\/p>\n\n\n\n<p>Il mio collega di lavoro stava sviluppando un'applicazione per un'allora corrente <a href=\"https:\/\/thecodest.co\/it\/dictionary\/why-do-projects-fail\/\">progetto<\/a>da solo. Le scadenze, per\u00f2, si stavano avvicinando rapidamente, cos\u00ec sono stato delegato ad aiutarlo a rispettarle. Ora mi trasferisco indietro nel tempo fino a quel momento. E... bleah! Perch\u00e9 sta usando una lingua strana che sembra un <a href=\"https:\/\/www.ketchupy.pl\/images\/3\/c\/9\/4\/5\/3c9453c5b720f810c293211d77449d9395f09944-product-front-1.png\">marca di ketchup<\/a>!? Ha un aspetto orribile!<\/p>\n\n\n\n<p>Perch\u00e9 c'\u00e8 scritto \"fun\" prima di ogni funzione? Come se non sapessi gi\u00e0 cos'\u00e8. Inoltre, sto gi\u00e0 avendo <em>divertimento<\/em> con <strong>Java<\/strong> in ogni caso. E dov'\u00e8 il tipo di ritorno? Alla fine? Sei impazzito? Cos'\u00e8, stai assegnando qualcosa a una funzione? Non ha alcun senso! Sembra proprio che <b>Java con passaggi extra!<\/b> Aspetta, dov'\u00e8 la classe a cui appartiene questo metodo? Dove l'hai nascosto, razza di ketchup, <strong>Java<\/strong> imitare la scusa di un linguaggio di programmazione? Oh, no. Oh no, non l'hai fatto. \u00c8 UNA FUNZIONE GLOBALE? Basta, ho finito, chiamo la polizia.<\/p>\n\n\n\n<p>Attenzione: non ho chiamato le forze dell'ordine. Che mi piaccia o no, ho dovuto modificare la mia mentalit\u00e0 Java-centrica per adattarmi a un altro linguaggio. Ma non sar\u00e0 poi cos\u00ec male, giusto? \u00c8 ancora un linguaggio JVM, sicuramente \u00e8 solo un linguaggio diverso. <strong>Java<\/strong>. Magari anche con qualche funzione aggiuntiva? Con riluttanza, ho iniziato a lavorare al progetto.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Java con passaggi aggiuntivi<\/h2>\n\n\n\n<p><em>Se Java \u00e8 cos\u00ec grande, perch\u00e9 non esiste Java 2?<\/em> A parte gli scherzi, \u00e8 quello che ho pensato tra me e me. Far\u00f2 finta che Kotlin sia Java 2. Nuova sintassi e tutto il resto, ma devo solo impararne abbastanza per finire il progetto. Ragazzi, mi sbagliavo.<\/p>\n\n\n\n<p>Dopo averla provata per un giorno o due, mi sono subito reso conto che sia Kotlin sia <strong>Java<\/strong> non sono cos\u00ec elastici. Se si cerca di piegarli l'uno verso l'altro, uno dei due si spezza inevitabilmente a met\u00e0. \u00c8 diventato ovvio che Kotlin \u00e8 una cosa a s\u00e9 stante e il fatto che funzioni su una JVM non significa quasi nulla dal punto di vista del programmatore. (Una nota a margine: \u00e8 anche in grado di eseguire il transpile su <a href=\"https:\/\/thecodest.co\/it\/blog\/hire-javascript-developer\/\">JavaScript<\/a>o essere compilato in un binario nativo).<\/p>\n\n\n\n<p>Allora il piano B. In realt\u00e0, imparate a conoscere il linguaggio. Leggere i documenti per la prima volta fa venire i brividi a un programmatore Java esperto. Per esempio:<br>- il gi\u00e0 citato contesto di primo livello, alias globale<br>- e i tipi di ritorno delle funzioni specificati alla fine<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>fun somma(a: Int, b: Int): Int {\n   restituisce a + b\n}<\/code><\/code><\/pre>\n\n\n\n<p>il corpo della funzione pu\u00f2 essere un'espressione (utilizzando il segno di uguaglianza)<\/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'istruzione if pu\u00f2 fornire un risultato<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> val y = if (x == 1) {\n \"uno\"\n } else if (x == 2) {\n \"due\"\n } else {\n \"altro\"\n }<\/code><\/code><\/pre>\n\n\n\n<p>Ok, devo solo abituarmi. Solo una sintassi diversa. Cos'altro hai da offrire, mister Kotlin?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> valore?.metodo() \/\/ esegue se non \u00e8 nullo<\/code><\/code><\/pre>\n\n\n\n<p>Oh ok, sbarazzarsi di <code>se (valore == null)<\/code>, un punto per te. Che altro hai?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>fun check(list: List, alternative: Boolean) = when {\n list \u00e8 LinkedList -&gt; print(\"linked\")\n alternativa -&gt; print(\"alternativa\")\n list.size &gt; 50 -&gt; print(\"grande\")\n else -&gt; print(\"altro\")\n }<\/code><\/code><\/pre>\n\n\n\n<p>Bello, potrebbe essere utile per evitare i blocchi, ma sembra comunque un espediente.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> oggetto SingularObject: Counter() {\n var a = 14\n fun test() = if (a &gt; 10) \"more\" else \"less\"\n }<\/code><\/code><\/pre>\n\n\n\n<p>Ok, questo sembra davvero utile, mi piace! D'altra parte, posso creare un singleton anche in Java. Forse non sar\u00e0 cos\u00ec elegante, ma non \u00e8 una novit\u00e0. Qualche asso nella manica? Tipo, veri e propri assi nella manica?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> var s: String = null \/\/ non si compila, tipo non-null<\/code><\/code><\/pre>\n\n\n\n<p>Aspetta... cosa?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/Tony_Hoare#Apologies_and_retractions\">L'errore da un miliardo di dollari<\/a><\/h2>\n\n\n\n<p>Immaginate una base di codice in cui non ci si debba preoccupare della sicurezza dei null. Immaginate di dare per scontato che ogni riferimento contenga effettivamente qualcosa di significativo. Immaginate di essere sicuri che ogni problema legato ai null sia stato affrontato in anticipo.<br>Non immaginate pi\u00f9. Tutti i riferimenti in Kotlin non sono nullable per impostazione predefinita. Se si desidera renderli nullable, occorre <u>consapevolmente<\/u> prendere questa decisione e <u>esplicitamente<\/u> dichiararlo nella <a href=\"https:\/\/thecodest.co\/it\/dictionary\/what-is-code-refactoring\/\">codice<\/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>Capisco che a questo punto possiate essere scettici su questa idea. Siete abituati ai riferimenti annullabili. Lo tenete a mente durante la codifica. Avete imparato dove \u00e8 necessario fare attenzione. Esattamente il mio pensiero. Provenendo da <strong>Java<\/strong>All'inizio mi \u00e8 sembrato strano. Come a dire: che senso ha? Non far\u00e0 magicamente sparire tutti i problemi correlati. Dovr\u00f2 aggiungere \"?\" dappertutto, mi sembra un lavoro faticoso.<\/p>\n\n\n\n<p>Ma ho deciso di immergermi nella lingua, non \u00e8 vero? Facciamo a modo suo, signore <strong>Kotlin<\/strong>. Ho iniziato a sforzarmi di eliminare il maggior numero possibile di variabili, campi e parametri nulli. Passo dopo passo, ho imparato a usare le caratteristiche del linguaggio che rendevano pi\u00f9 facile eliminare i riferimenti nulli, come ad esempio l'operatore safe call \"?.\", l'operatore elvis \"?:\", le propriet\u00e0 delegate, il metodo \"let\" e altro ancora.<\/p>\n\n\n\n<p>Con il passare del tempo, sono riuscito a far s\u00ec che alcune classi contenessero solo campi e parametri dei metodi non nulli. In pratica, sapevo che se una classe veniva istanziata con successo, potevo quasi dimenticarmi della nullit\u00e0 nei corpi dei metodi. Era una beatitudine. Con il tempo, l'ho apprezzato sempre di pi\u00f9. In ultima analisi, per\u00f2, non l'ho considerata una caratteristica fondamentale, <strong>Java<\/strong> si sentiva ancora a casa. Fino a quando...<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Il ritorno<\/h2>\n\n\n\n<p>Il progetto si stava avvicinando alla fine. Ho imparato a conoscere sempre meglio Kotlin e, grazie a questa conoscenza, il codice \u00e8 diventato sempre pi\u00f9 ordinato, leggibile e conciso. I miglioramenti si potevano vedere a occhio nudo nella cronologia dei commit. Finalmente, per\u00f2, \u00e8 arrivato il momento. Con un ricordo inaspettatamente bello del nuovo linguaggio, \u00e8 arrivato il momento di dire addio e tornare alla dolce zona di comfort di <strong>Java<\/strong>. O almeno cos\u00ec pensavo.<\/p>\n\n\n\n<p>Avete presente la sensazione che si prova quando si inizia ad apprezzare qualcosa proprio nel momento in cui non c'\u00e8 pi\u00f9? Quando non ci si rende conto di quanto si fa affidamento su qualcosa finch\u00e9 non la si pu\u00f2 pi\u00f9 usare? \u00c8 stato il miglior esempio di questa sensazione che abbia mai provato in vita mia.<\/p>\n\n\n\n<p>Quando sono tornato a scrivere il codice in <strong>Java<\/strong>Ero quasi terrorizzato dalla mancanza di alcune funzionalit\u00e0. Era come se il mio cervello, inconsciamente, avesse erroneamente adattato le caratteristiche di Kotlin a Java. Ho vissuto situazioni in cui ho iniziato a implementare qualcosa, per poi rendermi conto che non avrebbe funzionato in questo linguaggio. Nel migliore dei casi potrei scriverlo in modo simile a Kotlin, ma sarebbe ingombrante, illeggibile e\/o richiederebbe troppo boilerplate.<\/p>\n\n\n\n<p>La sicurezza dei null \u00e8 stata ovviamente la caratteristica che mi \u00e8 mancata di pi\u00f9. Ma sono rimasto sorpreso da quante piccole cose sono diventate naturali per me: parametri con nome, propriet\u00e0 invece di getter e setter, \"==\" come uguale e \"===\" come uguaglianza referenziale, \"this\" qualificato, funzioni di estensione, parametro lambda singolare implicito, \"_\" per i parametri lambda non utilizzati, <a href=\"https:\/\/thecodest.co\/it\/blog\/app-data-collection-security-risks-value-and-types-explored\/\">dati<\/a> classi, funzioni di scope, altre funzioni stdlib di Kotlin, operatori e altro ancora. E il modo in cui tutto si incastra piacevolmente. In confronto, Java sembrava... primitivo.<\/p>\n\n\n\n<p>Mi sono sentito cos\u00ec male che ho iniziato a prendere in considerazione l'idea di passare completamente a Kotlin. In teoria, \u00e8 completamente interoperabile con Java, si pu\u00f2 semplicemente aggiungere il supporto Kotlin a un progetto esistente e iniziare a scrivere nuove classi. Il lato Kotlin sa come \"parlare\" con Java, mentre il lato Java non sa nemmeno che sta \"parlando\" con un altro linguaggio. E dopo la compilazione in bytecode, non fa alcuna differenza per 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=\"Incontro con l&#039;esperto Java\"\/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Controllo della realt\u00e0<\/h2>\n\n\n\n<p>Quindi cosa state aspettando? Se il linguaggio \u00e8 buono come dite, usatelo! Forse non nei progetti esistenti, per\u00f2, so che dovrebbe essere interoperabile, ma mischiare due lingue diverse in questo modo sembra brutto.<\/p>\n\n\n\n<p>Ok, quindi per i nuovi moduli - Kotlin sia. O forse no? Si sta lavorando in un <a href=\"https:\/\/thecodest.co\/it\/blog\/how-to-hire-the-best-outsourced-development-team-for-a-scaleup\/\">squadra<\/a>. Dovete consultarli e convincerli della grandezza di questa nuova lingua. Cosa? Non gli piace? Sembra che non vogliano fare lo sforzo di impararla. Non potete biasimarli, anche voi eravate scettici all'inizio.<\/p>\n\n\n\n<p>Il project manager! S\u00ec! Sicuramente capir\u00e0 il grande valore che Kotlin apporterebbe al nostro team. Oh, la grandezza che verr\u00e0!<br>-No<br>-Aspetta, perch\u00e9?<br>-La squadra non lo sa.<br>-Impareranno!<br>-Non vogliono imparare.<br>-Potete farli voi!<br>-Non hanno bisogno di imparare.<br>-\u00c8 vero, ma pensate alle possibilit\u00e0!<br>-S\u00ec, e se pensassi prima ai problemi?<\/p>\n\n\n\n<p>La leggenda dice che esiste un progetto. Un progetto grande e complesso, ma ben scritto in ogni sua parte. Un progetto in cui tutti gli sviluppatori sono all'unisono sulle soluzioni utilizzate. Dove le nuove funzionalit\u00e0 fluiscono senza problemi dalle tastiere dei programmatori. Dove i bug sono rari e facili da risolvere.<\/p>\n\n\n\n<p>Avete mai visto un progetto del genere? Io no. Alcuni ci sono andati vicino, ma la maggior parte di essi sono un grande pasticcio di codice legacy. E se non lo sono, probabilmente lo diventeranno in futuro. Ora immaginate di inserire un altro linguaggio nel mix. Introduce nuovi modi per commettere errori. Richiede che gli sviluppatori sappiano cosa stanno facendo. \u00c8 un rischio, a dir poco.<\/p>\n\n\n\n<p>Ora si consideri anche <a href=\"https:\/\/thecodest.co\/it\/blog\/hire-vue-js-developers\/\">sviluppatore<\/a> rotazione. Le persone vanno e vengono. Volete che ogni nuovo sviluppatore impari un linguaggio completamente nuovo? No, \u00e8 controproducente. Assumerete innanzitutto sviluppatori Kotlin? Buona fortuna, assumere un buon sviluppatore Java \u00e8 gi\u00e0 abbastanza difficile.<\/p>\n\n\n\n<p><a href=\"https:\/\/blog.allegro.tech\/2018\/05\/From-Java-to-Kotlin-and-Back-Again.html\">Le persone ci hanno provato.<\/a> Devo dire che non sono d'accordo con la maggior parte delle affermazioni contenute nell'articolo. Ci sono alcune critiche valide, ma credo che non abbiano usato abbastanza Kotlin per capire effettivamente \"il modo Kotlin\". Molti commentatori di quell'articolo sembrano pensarla allo stesso modo.<\/p>\n\n\n\n<p>Ma questo non ha importanza. Scommetto che questo accadrebbe anche nel vostro progetto. \"L'ho provato, non mi \u00e8 piaciuto\". Non li costringerete a dedicarci pi\u00f9 tempo. Non li costringerete a riprovare. Non li costringerete a dare un'altra possibilit\u00e0. E da un punto di vista pratico, potrebbero avere ragione. <strong>Java<\/strong> \u00e8 cos\u00ec popolare che l'uso di qualsiasi altra cosa sulla JVM sembra ridondante.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Perch\u00e9 allora questo articolo?<\/h2>\n\n\n\n<p>Hai appena speso una notevole quantit\u00e0 di tempo per scrivere un articolo che sembra non avere un senso. Perch\u00e9 dovrei provare a imparare una lingua, se lei dice che \u00e8 comunque inutile?<\/p>\n\n\n\n<p>Beh, non credo che sia inutile. Penso ancora che Kotlin sia fantastico. Voglio ancora usarlo (e lo faccio per i miei progetti privati). Se potessi, passerei ad esso e mi dimenticherei delle limitazioni di Java. Ma la realt\u00e0 attuale dice che non posso. E voglio provare a cambiare questa situazione.<\/p>\n\n\n\n<p>La mia intenzione per te, caro lettore, \u00e8 di considerare almeno la possibilit\u00e0 di uscire dall'accogliente zona di comfort di Java. Perch\u00e9 forse, e dico forse, amerete Kotlin quanto me. E se cos\u00ec fosse, ci sarebbe un altro sviluppatore con conoscenza di Kotlin sulla <a href=\"https:\/\/thecodest.co\/it\/dictionary\/what-is-the-size-of-your-potential-reachable-market\/\">mercato<\/a>.<\/p>\n\n\n\n<p><strong>Per saperne di pi\u00f9:<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/the-best-type-of-projects-for-java\">Il miglior tipo di progetti per Java<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/3-common-challenges-of-software-product-development-for-startups\">3 sfide comuni dello sviluppo di prodotti software per le startup<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/the-right-way-to-find-top-java-developers\">Il modo giusto per trovare i migliori sviluppatori Java<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Se siete sviluppatori Java, \u00e8 probabile che abbiate almeno una certa esperienza con altri linguaggi di programmazione.  Alcuni di noi hanno iniziato la loro avventura di programmazione con un altro linguaggio come C\/C++, JavaScript, C#, Python o forse anche qualcosa come Pascal o Basic. Alcuni, invece, hanno iniziato con Java e non hanno mai prestato troppa attenzione ad altri linguaggi, ricordando spiacevolmente l'unica volta in cui hanno avuto bisogno di codificare rapidamente qualcosa sul lato 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\/it\/blog\/perche-kotlin-e-fantastico-ma-rimarrete-comunque-con-java-1\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\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\/it\/blog\/perche-kotlin-e-fantastico-ma-rimarrete-comunque-con-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 minuto\" \/>\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\":\"it-IT\",\"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\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@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\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@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\":\"it-IT\",\"@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\\\/it\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Perch\u00e9 Kotlin \u00e8 fantastico, ma rimarrete comunque con 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\/it\/blog\/perche-kotlin-e-fantastico-ma-rimarrete-comunque-con-java-1\/","og_locale":"it_IT","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\/it\/blog\/perche-kotlin-e-fantastico-ma-rimarrete-comunque-con-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 minuto"},"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":"it-IT","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":"Perch\u00e9 Kotlin \u00e8 fantastico, ma rimarrete comunque con 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":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@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":"it-IT"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@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":"it-IT","@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\/it\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/posts\/3913","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/comments?post=3913"}],"version-history":[{"count":8,"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/posts\/3913\/revisions"}],"predecessor-version":[{"id":8525,"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/posts\/3913\/revisions\/8525"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/media\/3914"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/media?parent=3913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/categories?post=3913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/tags?post=3913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}