{"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":"hvorfor-kotlin-er-fantastisk-men-du-vil-alligevel-blive-ved-java-1","status":"publish","type":"post","link":"https:\/\/thecodest.co\/da\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/","title":{"rendered":"Hvorfor Kotlin er fantastisk, men du bliver alligevel ved med at bruge Java"},"content":{"rendered":"<p>Uanset hvilken gruppe du tilh\u00f8rer, er der en grund til, at du bliver hos <strong><a href=\"https:\/\/thecodest.co\/da\/blog\/find-the-right-java-developer-now\/\">Java<\/a><\/strong>. Og jeg bebrejder dig ikke. Det har uden tvivl det mest udviklede, universelle og komplette \u00f8kosystem i hele verden. <a href=\"https:\/\/thecodest.co\/da\/dictionary\/what-is-enterprise-hybrid-cloud\/\">virksomhed<\/a> verden. Sproget har et p\u00e6nt skr\u00e6ddersyet s\u00e6t af muligheder, et sted i den rigtige zone mellem for meget og for lidt. Og der bliver langsomt, men sikkert tilf\u00f8jet nye funktioner, s\u00e5 det stort set er opdateret med nyere tendenser i programmeringsverdenen.<\/p>\n\n\n\n<p>Kender du til <a href=\"https:\/\/projectlombok.org\">Lombok<\/a> Men? Hvis du ikke g\u00f8r, kan jeg varmt anbefale at pr\u00f8ve. Hvis du kan lide det, s\u00e5 har jeg noget, du bare skal pr\u00f8ve. Et helt nyt sprog, som i kraft af sine funktioner g\u00f8r Lombok overfl\u00f8digt. Det hedder <b>Kotlin<\/b>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kotlin? Mener du Android-sproget?<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/pClXBLD.jpg\" alt=\"Ja, men faktisk nej\"\/><\/figure>\n\n\n\n<p>Kotlin p\u00e5 Android blev velsignet af Google selv i en s\u00e5dan grad, at det de facto blev det foretrukne sprog til platformen. Det er ikke det, jeg vil fokusere p\u00e5 i denne artikel, men Android er faktisk det sted, hvor jeg m\u00f8dte Kotlin for f\u00f8rste gang.<\/p>\n\n\n\n<p>Min arbejdskollega var ved at udvikle en app til en dengang aktuel <a href=\"https:\/\/thecodest.co\/da\/dictionary\/why-do-projects-fail\/\">projekt<\/a>p\u00e5 egen h\u00e5nd. Deadlines n\u00e6rmede sig dog hurtigt, s\u00e5 jeg blev uddelegeret til at hj\u00e6lpe ham med at n\u00e5 dem. Lad mig nu s\u00e6tte mig selv tilbage i tiden til det \u00f8jeblik. Aaaand ... FUCK! Hvorfor bruger han et underligt sprog, der lyder som en <a href=\"https:\/\/www.ketchupy.pl\/images\/3\/c\/9\/4\/5\/3c9453c5b720f810c293211d77449d9395f09944-product-front-1.png\">ketchup-m\u00e6rke<\/a>!? Det ser forf\u00e6rdeligt ud!<\/p>\n\n\n\n<p>Hvorfor st\u00e5r der \"fun\" f\u00f8r hver funktion? Som om jeg ikke allerede ved, hvad det er. Desuden har jeg allerede <em>sjov<\/em> med <strong>Java<\/strong> N\u00e5, men... Og hvor er returtypen? I slutningen? Er du ikke rigtig klog? Hvad er det, tildeler du noget til en funktion? Det giver ingen mening! Det hele ser bare ud som <b>Java med ekstra trin!<\/b> Vent, hvor er den klasse, som denne metode tilh\u00f8rer? Hvor har du gemt den, din ketchup-lydende, <strong>Java<\/strong> imiterende undskyldning for et programmeringssprog? \u00c5h nej, det gjorde du ikke. \u00c5h nej, det gjorde du ikke. ER DET EN GLOBAL FUNKTION? Det var det, jeg er f\u00e6rdig, jeg ringer til politiet.<\/p>\n\n\n\n<p>Spoiler alert: Jeg ringede ikke til politiet. Uanset om jeg kunne lide det eller ej, var jeg n\u00f8dt til at tilpasse min Java-centrerede tankegang til et andet sprog. Men det er vel ikke s\u00e5 slemt, vel? Det er stadig et JVM-sprog, det er sikkert bare et andet <strong>Java<\/strong>. M\u00e5ske endda med nogle fede ekstrafunktioner? Modstr\u00e6bende begyndte jeg at arbejde p\u00e5 projektet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Java med ekstra trin<\/h2>\n\n\n\n<p><em>Hvis Java er s\u00e5 fantastisk, hvorfor findes der s\u00e5 ikke en Java 2?<\/em> Sp\u00f8g til side, det var det, jeg t\u00e6nkte ved mig selv. Jeg vil bare lade, som om Kotlin er Java 2. Ny syntaks og det hele, men jeg skal bare l\u00e6re nok af det til at afslutte projektet. Hold da op, hvor tog jeg fejl.<\/p>\n\n\n\n<p>Efter at have pr\u00f8vet det i bare en dag eller to, inds\u00e5 jeg hurtigt, at b\u00e5de Kotlin og <strong>Java<\/strong> er ikke s\u00e5 elastiske. Hvis man fors\u00f8ger at b\u00f8je dem mod hinanden, ender det uundg\u00e5eligt med, at en af dem kn\u00e6kker midt over. Det blev tydeligt, at Kotlin er en ting for sig selv, og det faktum, at det fungerer p\u00e5 en JVM, betyder n\u00e6sten ingenting set fra en programm\u00f8rs synspunkt. (Som en sidebem\u00e6rkning kan det ogs\u00e5 transpile til <a href=\"https:\/\/thecodest.co\/da\/blog\/hire-javascript-developer\/\">JavaScript<\/a>eller kompileres til en native bin\u00e6r fil).<\/p>\n\n\n\n<p>S\u00e5 er det plan B. L\u00e6r faktisk sproget at kende. N\u00e5r man l\u00e6ser dokumenterne for f\u00f8rste gang, g\u00e5r der kuldegysninger gennem rygraden p\u00e5 en erfaren Java-programm\u00f8r. For eksempel:<br>- tidligere n\u00e6vnte topniveau aka global kontekst<br>- parameter- og funktionsreturtyper specificeret i slutningen<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>fun sum(a: Int, b: Int): Int {\n   returnerer a + b\n}<\/code><\/code>.<\/pre>\n\n\n\n<p>Funktionens krop kan v\u00e6re et udtryk (med lighedstegn)<\/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>if-s\u00e6tningen kan give et resultat<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> val y = if (x == 1) {\n \"one\"\n } else if (x == 2) {\n \"to\"\n } else {\n \"other\"\n }<\/code><\/code>.<\/pre>\n\n\n\n<p>Okay, jeg skal bare v\u00e6nne mig til det. Bare en anden syntaks. Hvad har du ellers at byde p\u00e5, hr. Kotlin?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> value?.method() \/\/ udf\u00f8r, hvis ikke null<\/code><\/code>.<\/pre>\n\n\n\n<p>\u00c5h ok, at slippe af med <code>hvis (v\u00e6rdi == null)<\/code>Et point til dig. Hvad har du ellers?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>fun check(list: List, alternative: Boolean) = when {\n listen er LinkedList -&gt; print(\"linked\")\n alternativ -&gt; print(\"alternativ\")\n list.size &gt; 50 -&gt; print(\"big\")\n else -&gt; print(\"andet\")\n }<\/code><\/code>.<\/pre>\n\n\n\n<p>Hmm fint, kunne v\u00e6re praktisk at undg\u00e5, hvis andre blokerer, virker dog stadig som en gimmick.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> objekt SingularObject: Counter() {\n var a = 14\n fun test() = if (a &gt; 10) \"mere\" else \"mindre\"\n }<\/code><\/code>.<\/pre>\n\n\n\n<p>Ok, den ser faktisk nyttig ud, den kan jeg godt lide! P\u00e5 den anden side kan jeg ogs\u00e5 lave en singleton i Java. M\u00e5ske bliver det ikke s\u00e5 elegant, men det er ikke noget nyt. Har du nogen esser i \u00e6rmet? Rigtige heavy hitters?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> var s: String = null \/\/ kompilerer ikke, ikke-null-type<\/code><\/code>.<\/pre>\n\n\n\n<p>Vent ... hvad?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/Tony_Hoare#Apologies_and_retractions\">Fejlen til en milliard dollars<\/a><\/h2>\n\n\n\n<p>Forestil dig en kodebase, hvor du ikke beh\u00f8ver at bekymre dig om null-sikkerhed. Forestil dig, at du bare tager det for givet, at hver reference faktisk indeholder noget meningsfuldt. Forestil dig at v\u00e6re sikker p\u00e5, at alle null-relaterede problemer er h\u00e5ndteret p\u00e5 forh\u00e5nd.<br>Forestil dig ikke mere. Alle referencer i Kotlin er ikke nullable som standard. Hvis du vil g\u00f8re dem nullable, skal du <u>bevidst<\/u> tr\u00e6ffe den beslutning, og <u>udtrykkeligt<\/u> angive det i <a href=\"https:\/\/thecodest.co\/da\/dictionary\/what-is-code-refactoring\/\">Kode<\/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>Jeg forst\u00e5r, at du m\u00e5ske er skeptisk over for hele ideen p\u00e5 dette tidspunkt. Du er vant til nullable referencer. Du har det i baghovedet, n\u00e5r du koder. Du har l\u00e6rt, hvor du skal v\u00e6re forsigtig. Det er pr\u00e6cis mine tanker. Jeg kommer fra <strong>Java<\/strong>Det f\u00f8ltes faktisk underligt i starten. Hvad er meningen med det? Det vil ikke p\u00e5 magisk vis f\u00e5 alle relaterede problemer til at forsvinde. Jeg bliver bare n\u00f8dt til at tilf\u00f8je \"?\" overalt, det lyder som en opgave.<\/p>\n\n\n\n<p>Men jeg besluttede mig for at dykke dybt ned i sproget, gjorde jeg ikke? Lad os g\u00f8re det p\u00e5 din m\u00e5de, hr. <strong>Kotlin<\/strong>. Jeg begyndte at g\u00f8re en indsats for at eliminere s\u00e5 mange nullable variabler, felter og parametre, som jeg kunne. Trin for trin l\u00e6rte jeg at bruge sprogfunktioner, der gjorde det lettere at fjerne nullable referencer, f.eks. safe call \"?.\"-operatoren, elvis \"?:\"-operatoren, delegerede egenskaber, \"let\"-metoden og meget mere.<\/p>\n\n\n\n<p>Som tiden gik, lykkedes det mig at f\u00e5 nogle klasser til kun at indeholde ikke-null-felter og metodeparametre. Dybest set vidste jeg, at hvis en klasse blev instantieret med succes, kunne jeg n\u00e6sten glemme alt om nullability i metodekroppe. Det var en lyksalighed. Med tiden satte jeg mere og mere pris p\u00e5 det. I sidste ende t\u00e6nkte jeg dog ikke p\u00e5 det som en killer-funktion, <strong>Java<\/strong> Det f\u00f8ltes stadig som et hjem. Indtil...<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Comebacket<\/h2>\n\n\n\n<p>Projektet n\u00e6rmede sig sin afslutning. Jeg l\u00e6rte Kotlin mere og mere at kende, og med denne viden blev koden mere og mere ryddelig, l\u00e6sbar og kortfattet. Man kunne se forbedringerne med det blotte \u00f8je i commit-historikken. Men nu er tiden endelig kommet. Med uventet gode minder om det nye sprog var det tid til at sige farvel og vende tilbage til den s\u00f8de komfortzone med <strong>Java<\/strong>. Det troede jeg i hvert fald.<\/p>\n\n\n\n<p>Kender du den f\u00f8lelse, n\u00e5r du begynder at s\u00e6tte pris p\u00e5 noget i det \u00f8jeblik, det er v\u00e6k? N\u00e5r du ikke indser, hvor meget du er afh\u00e6ngig af noget, f\u00f8r du ikke kan bruge det l\u00e6ngere? Det var det allerbedste eksempel p\u00e5 den f\u00f8lelse, jeg nok nogensinde har oplevet i mit liv.<\/p>\n\n\n\n<p>Da jeg kom tilbage til at skrive koden i <strong>Java<\/strong>Jeg blev n\u00e6sten skr\u00e6mt over manglen p\u00e5 nogle funktioner. Det var, som om min hjerne ubevidst og fejlagtigt havde overf\u00f8rt Kotlin-funktioner til Java. Jeg oplevede situationer, hvor jeg faktisk gik i gang med at implementere noget for s\u00e5 at indse, at det ikke ville fungere i dette sprog. I bedste fald kunne jeg skrive det Kotlin-agtigt, men det ville v\u00e6re omfangsrigt, ul\u00e6seligt og\/eller kr\u00e6ve for meget boilerplate.<\/p>\n\n\n\n<p>Null safety var selvf\u00f8lgelig den funktion, jeg savnede mest. Men jeg blev overrasket over, hvor mange mindre ting, der blev naturlige for mig: navngivne parametre, egenskaber i stedet for getters og setters, \"==\" som equals og \"===\" som referentiel lighed, kvalificeret \"this\", udvidelsesfunktioner, implicit entals lambda-parameter, \"_\" for ubrugte lambda-parametre, <a href=\"https:\/\/thecodest.co\/da\/blog\/app-data-collection-security-risks-value-and-types-explored\/\">data<\/a> klasser, scope-funktioner, andre Kotlin stdlib-funktioner, operatorer og meget mere. Og den m\u00e5de, det hele passer sammen p\u00e5. Til sammenligning f\u00f8ltes Java ... primitivt.<\/p>\n\n\n\n<p>Det f\u00f8ltes faktisk s\u00e5 slemt, at jeg begyndte at overveje helt at skifte til Kotlin. Teoretisk set er det fuldt interoperabelt med Java, man kan bare tilf\u00f8je Kotlin-underst\u00f8ttelse til et eksisterende projekt og begynde at skrive nye klasser. Kotlin-siden ved, hvordan man \"taler\" med Java, og Java-siden ved ikke engang, at den \"taler\" med et andet sprog. Og efter kompilering til bytecode g\u00f8r det ikke rigtig nogen forskel for JVM'en.<\/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=\"M\u00f8d Java-ekspert\"\/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Virkelighedstjek<\/h2>\n\n\n\n<p>S\u00e5 hvad venter du p\u00e5? Hvis sproget er s\u00e5 godt, som du siger, s\u00e5 brug det! M\u00e5ske ikke i eksisterende projekter, for jeg ved godt, at det skal v\u00e6re interoperabelt, men at blande to forskellige sprog p\u00e5 denne m\u00e5de lyder grimt.<\/p>\n\n\n\n<p>Ok, s\u00e5 for nye moduler - Kotlin er det. Eller er det? Du arbejder i et <a href=\"https:\/\/thecodest.co\/da\/blog\/how-to-hire-the-best-outsourced-development-team-for-a-scaleup\/\">hold<\/a>. Du er n\u00f8dt til at r\u00e5df\u00f8re dig med dem og overbevise dem om det nye sprogs storhed. Og hvad s\u00e5? Kan de ikke lide det? Det lyder, som om de bare ikke vil g\u00f8re en indsats for at l\u00e6re det. Det kan du ikke bebrejde dem, for du var ogs\u00e5 skeptisk i starten.<\/p>\n\n\n\n<p>Projektlederen! Ja, ja! Han vil helt sikkert forst\u00e5 den store v\u00e6rdi, som Kotlin vil tilf\u00f8re vores team. \u00c5h, den storhed, der vil komme!<br>-Nej<br>-Vent, hvorfor?<br>-Holdet ved det ikke.<br>-De skal nok l\u00e6re det!<br>-De \u00f8nsker ikke at l\u00e6re.<br>-Du kan lave dem!<br>-De har ikke brug for at l\u00e6re.<br>-Jeg mener, det er sandt, men t\u00e6nk p\u00e5 mulighederne!<br>-Ja, hvad med at t\u00e6nke p\u00e5 problemerne f\u00f8rst.<\/p>\n\n\n\n<p>Legenden siger, at der findes et projekt. Et projekt, der er stort og komplekst, men p\u00e6nt skrevet i alle dele. Et projekt, hvor alle udviklere er enige om de anvendte l\u00f8sninger. Hvor nye funktioner bare flyder ud af programm\u00f8rernes tastaturer. Hvor fejl er sj\u00e6ldne og nemme at rette.<\/p>\n\n\n\n<p>Har du set s\u00e5dan et projekt? Det har jeg ikke. Nogle kom t\u00e6t p\u00e5, men de fleste af dem er et stort rod af gammel kode. Og hvis de ikke er det, bliver de det nok p\u00e5 et eller andet tidspunkt i fremtiden. Forestil dig nu, at du smider et andet sprog ind i blandingen. Det introducerer nye m\u00e5der at beg\u00e5 fejl p\u00e5. Det kr\u00e6ver, at udviklerne ved, hvad de laver. Det er mildest talt en risiko.<\/p>\n\n\n\n<p>Overvej nu ogs\u00e5 <a href=\"https:\/\/thecodest.co\/da\/blog\/hire-vue-js-developers\/\">Udvikler<\/a> rotation. Folk kommer og g\u00e5r. Vil du tvinge alle nye udviklere til at l\u00e6re et helt nyt sprog? Nej, det er kontraproduktivt. Vil du overhovedet ans\u00e6tte Kotlin-udviklere? Held og lykke med det, det er sv\u00e6rt nok at ans\u00e6tte en god Java-udvikler.<\/p>\n\n\n\n<p><a href=\"https:\/\/blog.allegro.tech\/2018\/05\/From-Java-to-Kotlin-and-Back-Again.html\">Folk har pr\u00f8vet.<\/a> Jeg m\u00e5 sige, at jeg ikke er enig i de fleste af p\u00e5standene i den artikel. Der er en del gyldig kritik, men jeg tror ikke, de har brugt Kotlin nok til rent faktisk at forst\u00e5 \"Kotlin-m\u00e5den\". Mange kommentatorer under artiklen synes at t\u00e6nke p\u00e5 samme m\u00e5de.<\/p>\n\n\n\n<p>Men det betyder ikke noget. Jeg vil v\u00e6dde med, at det ogs\u00e5 ville ske i dit projekt. \"Pr\u00f8vede det, kunne ikke lide det\". Du f\u00e5r dem ikke til at bruge mere tid p\u00e5 det. Du f\u00e5r dem ikke til at pr\u00f8ve igen. Du f\u00e5r dem ikke til at give det en chance til. Og ud fra et praktisk synspunkt har de m\u00e5ske ret. <strong>Java<\/strong> er bare s\u00e5 popul\u00e6r, at det virker overfl\u00f8digt at bruge noget andet p\u00e5 JVM'en.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hvorfor s\u00e5 denne artikel?<\/h2>\n\n\n\n<p>Du har lige brugt en del tid p\u00e5 at skrive en artikel, som tilsyneladende ikke har nogen pointe. Hvorfor skulle jeg pr\u00f8ve at l\u00e6re et sprog, hvis du alligevel siger, at det er meningsl\u00f8st?<\/p>\n\n\n\n<p>Jeg synes ikke, det er meningsl\u00f8st. Jeg synes stadig, at Kotlin er fantastisk. Jeg vil stadig gerne bruge det (og det g\u00f8r jeg faktisk til mine private projekter). Hvis jeg kunne, ville jeg bare skifte til det og glemme alt om Javas begr\u00e6nsninger. Men den nuv\u00e6rende virkelighed siger, at jeg ikke kan. Og det vil jeg gerne pr\u00f8ve at \u00e6ndre p\u00e5.<\/p>\n\n\n\n<p>Min hensigt med dig, k\u00e6re l\u00e6ser, er i det mindste at overveje muligheden for at komme ud af den hyggelige Java-komfortzone. For m\u00e5ske, bare m\u00e5ske, vil du elske Kotlin lige s\u00e5 meget, som jeg g\u00f8r. Og hvis du g\u00f8r, er det endnu en Kotlin-kyndig udvikler p\u00e5 <a href=\"https:\/\/thecodest.co\/da\/dictionary\/what-is-the-size-of-your-potential-reachable-market\/\">marked<\/a>.<\/p>\n\n\n\n<p><strong>L\u00e6s mere om det:<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/the-best-type-of-projects-for-java\">Den bedste type projekter til Java<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/3-common-challenges-of-software-product-development-for-startups\">3 almindelige udfordringer ved softwareproduktudvikling for nystartede virksomheder<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/the-right-way-to-find-top-java-developers\">Den rigtige m\u00e5de at finde de bedste Java-udviklere p\u00e5<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Hvis du er Java-udvikler, har du sandsynligvis i det mindste en vis erfaring med andre programmeringssprog.  Nogle af os startede deres programmeringseventyr med et andet sprog som C\/C++, JavaScript, C#, Python eller m\u00e5ske endda noget som Pascal eller Basic. Nogle startede dog med Java og har aldrig v\u00e6ret s\u00e6rlig opm\u00e6rksomme p\u00e5 andre sprog, men husker med ubehag den ene gang, hvor de havde brug for hurtigt at kode noget p\u00e5 frontend-siden.<\/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\/da\/blog\/hvorfor-kotlin-er-fantastisk-men-du-vil-alligevel-blive-ved-java-1\/\" \/>\n<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/blog\/hvorfor-kotlin-er-fantastisk-men-du-vil-alligevel-blive-ved-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 minut\" \/>\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\":\"da-DK\",\"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\":\"da-DK\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"da-DK\",\"@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\":\"da-DK\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"da-DK\",\"@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\":\"da-DK\",\"@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\\\/da\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Hvorfor Kotlin er fantastisk, men du bliver alligevel ved med at bruge 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\/da\/blog\/hvorfor-kotlin-er-fantastisk-men-du-vil-alligevel-blive-ved-java-1\/","og_locale":"da_DK","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\/da\/blog\/hvorfor-kotlin-er-fantastisk-men-du-vil-alligevel-blive-ved-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 minut"},"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":"da-DK","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":"Hvorfor Kotlin er fantastisk, men du bliver alligevel ved med at bruge 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":"da-DK","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/"]}]},{"@type":"ImageObject","inLanguage":"da-DK","@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":"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":"da-DK"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"da-DK","@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":"da-DK","@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\/da\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/posts\/3913","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/comments?post=3913"}],"version-history":[{"count":8,"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/posts\/3913\/revisions"}],"predecessor-version":[{"id":8525,"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/posts\/3913\/revisions\/8525"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/media\/3914"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/media?parent=3913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/categories?post=3913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/tags?post=3913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}