{"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-fortsette-med-java-uansett-1","status":"publish","type":"post","link":"https:\/\/thecodest.co\/nb\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/","title":{"rendered":"Hvorfor Kotlin er fantastisk, men du vil likevel fortsette med Java"},"content":{"rendered":"<p>Uansett hvilken gruppe du tilh\u00f8rer, er det en grunn til at du holder deg til <strong><a href=\"https:\/\/thecodest.co\/nb\/blog\/find-the-right-java-developer-now\/\">Java<\/a><\/strong>. Og jeg klandrer deg ikke. Det har uten tvil det mest utviklede, universelle og komplette \u00f8kosystemet i hele verden. <a href=\"https:\/\/thecodest.co\/nb\/dictionary\/what-is-enterprise-hybrid-cloud\/\">bedrift<\/a> verden. Spr\u00e5ket har et godt skreddersydd sett med muligheter, et sted i den rette sonen mellom for mye og for lite. Og nye funksjoner blir sakte, men sikkert lagt til, slik at det stort sett holder seg oppdatert med nyere trender i programmeringsverdenen.<\/p>\n\n\n\n<p>Vet du <a href=\"https:\/\/projectlombok.org\">Lombok<\/a> Men? Hvis du ikke gj\u00f8r det, anbefaler jeg p\u00e5 det sterkeste \u00e5 pr\u00f8ve. Hvis du liker det, s\u00e5 har jeg noe bare for deg \u00e5 pr\u00f8ve. Et helt nytt spr\u00e5k, som med sine funksjoner gj\u00f8r Lombok overfl\u00f8dig. Det heter <b>Kotlin<\/b>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kotlin? Mener du Android-spr\u00e5ket?<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/pClXBLD.jpg\" alt=\"Ja, men egentlig ikke\"\/><\/figure>\n\n\n\n<p>Kotlin p\u00e5 Android ble velsignet av Google selv til det punktet at det ble det de facto spr\u00e5ket som ble valgt for plattformen. Det er ikke dette jeg skal fokusere p\u00e5 i denne artikkelen, men Android er faktisk stedet der jeg m\u00f8tte Kotlin for f\u00f8rste gang.<\/p>\n\n\n\n<p>Min arbeidskollega utviklet en app for en p\u00e5 det tidspunktet aktuell <a href=\"https:\/\/thecodest.co\/nb\/dictionary\/why-do-projects-fail\/\">prosjekt<\/a>p\u00e5 egen h\u00e5nd. Men tidsfristene n\u00e6rmet seg med stormskritt, s\u00e5 jeg ble delegert til \u00e5 hjelpe ham med \u00e5 overholde dem. La meg n\u00e5 forflytte meg tilbake i tid til det \u00f8yeblikket. Og... \u00c6sj! Hvorfor bruker han et merkelig spr\u00e5k som h\u00f8res ut som en <a href=\"https:\/\/www.ketchupy.pl\/images\/3\/c\/9\/4\/5\/3c9453c5b720f810c293211d77449d9395f09944-product-front-1.png\">ketchupmerke<\/a>!? Det ser forferdelig ut!<\/p>\n\n\n\n<p>Hvorfor st\u00e5r det \"fun\" foran hver funksjon? Som om jeg ikke allerede vet hva det er. Dessuten har jeg allerede <em>g\u00f8y<\/em> med <strong>Java<\/strong> Uansett. Og hvor er returtypen? P\u00e5 slutten? Er du gal? Hva er det, tilordner du noe til en funksjon? Det gir ingen mening! Det ser bare ut som <b>Java med ekstra trinn!<\/b> Vent, hvor er klassen denne metoden tilh\u00f8rer? Hvor har du gjemt den, din ketchup-klingende.., <strong>Java<\/strong> imiterende unnskyldning for et programmeringsspr\u00e5k? \u00c5 nei, det gjorde du ikke. \u00c5 nei, det gjorde du ikke. ER DET EN GLOBAL FUNKSJON? Jeg er ferdig. Jeg ringer politiet.<\/p>\n\n\n\n<p>Spoilervarsel: Jeg ringte ikke politiet. Enten jeg likte det eller ikke, m\u00e5tte jeg justere min Java-sentriske tankegang for \u00e5 tilpasse meg et annet spr\u00e5k. Men det er vel ikke s\u00e5 ille? Det er fortsatt et JVM-spr\u00e5k, det er sikkert bare et annet <strong>Java<\/strong>. Kanskje til og med med noen kule ekstrafunksjoner? Motvillig begynte jeg \u00e5 jobbe med prosjektet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Java med ekstra trinn<\/h2>\n\n\n\n<p><em>Hvis Java er s\u00e5 bra, hvorfor finnes det ingen Java 2?<\/em> Sp\u00f8k til side, det var det jeg tenkte for meg selv. Jeg skal bare late som om Kotlin er Java 2. Ny syntaks og alt, men jeg trenger bare \u00e5 l\u00e6re meg nok av det til \u00e5 fullf\u00f8re prosjektet. J\u00f8ss, der tok jeg feil.<\/p>\n\n\n\n<p>Etter \u00e5 ha pr\u00f8vd det i bare en dag eller to, inns\u00e5 jeg raskt at b\u00e5de Kotlin og <strong>Java<\/strong> er ikke s\u00e5 elastiske. Fors\u00f8k p\u00e5 \u00e5 b\u00f8ye dem mot hverandre ender uunng\u00e5elig med at en av dem knekker i to. Det ble tydelig at Kotlin er en ting for seg selv, og det faktum at det fungerer p\u00e5 en JVM betyr nesten ingenting fra et programmeringsst\u00e5sted. (I parentes bemerket kan det ogs\u00e5 transpile til <a href=\"https:\/\/thecodest.co\/nb\/blog\/hire-javascript-developer\/\">JavaScript<\/a>eller kompileres til en opprinnelig bin\u00e6rfil).<\/p>\n\n\n\n<p>Plan B, da. Bli kjent med spr\u00e5ket. F\u00f8rste gang man leser dokumentasjonen, g\u00e5r det kaldt nedover ryggen p\u00e5 en erfaren Java-programmerer. For eksempel:<br>- tidligere nevnte toppniv\u00e5, ogs\u00e5 kalt global kontekst<br>- parameter- og funksjonens returtyper spesifisert p\u00e5 slutten<\/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> &lt;\/code<\/pre>\n\n\n\n<p>funksjonens kropp kan v\u00e6re et uttrykk (med likhetstegn)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> fun sum(a: Int, b: Int) = a + b<\/code><\/code> &lt;\/code<\/pre>\n\n\n\n<p>if-setningen kan gi 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 \"two\"\n } else {\n \"other\"\n }<\/code><\/code> &lt;\/code<\/pre>\n\n\n\n<p>Ok, jeg m\u00e5 bare venne meg til det. Bare en annen syntaks. Hva mer har du \u00e5 tilby, mister Kotlin?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> value?.method() \/\/ kj\u00f8r hvis ikke null<\/code><\/code> &lt;\/code<\/pre>\n\n\n\n<p>Ok, \u00e5 kvitte seg med <code>if (value == null)<\/code>...et poeng til deg. Hva mer har du?<\/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(\"annet\")\n }<\/code><\/code> &lt;\/code<\/pre>\n\n\n\n<p>Hmm fint, kan v\u00e6re nyttig \u00e5 unng\u00e5 hvis andre blokkerer, men virker fortsatt som en gimmick skj\u00f8nt.<\/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) \"mer\" else \"mindre\"\n }<\/code><\/code> &lt;\/code<\/pre>\n\n\n\n<p>Ok, den ser faktisk nyttig ut, jeg liker den! P\u00e5 den annen side kan jeg lage en singleton i Java ogs\u00e5. Kanskje det ikke blir s\u00e5 elegant, men det er ikke noe nytt. Har du noen ess i ermet? Noen skikkelige 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> &lt;\/code<\/pre>\n\n\n\n<p>Vent... Hva?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/Tony_Hoare#Apologies_and_retractions\">Milliardfeilen<\/a><\/h2>\n\n\n\n<p>Se for deg en kodebase der du ikke trenger \u00e5 bekymre deg for nullsikkerhet. Tenk deg at du bare tar det for gitt at hver referanse faktisk inneholder noe meningsfylt. Tenk deg \u00e5 v\u00e6re sikker p\u00e5 at alle null-relaterte problemer er h\u00e5ndtert p\u00e5 forh\u00e5nd.<br>Forestill deg ikke mer. Alle referanser i Kotlin er ikke nullable som standard. Hvis du vil gj\u00f8re dem nullable, m\u00e5 du <u>bevisst<\/u> ta den avgj\u00f8relsen, og <u>eksplisitt<\/u> oppgi det i <a href=\"https:\/\/thecodest.co\/nb\/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> &lt;\/code<\/pre>\n\n\n\n<p>Jeg forst\u00e5r at du kanskje er skeptisk til hele ideen p\u00e5 dette tidspunktet. Du er vant til nullbare referanser. Du har det i bakhodet n\u00e5r du koder. Du har l\u00e6rt hvor du m\u00e5 v\u00e6re forsiktig. Det er akkurat det jeg tenker. Kommer fra <strong>Java<\/strong>...f\u00f8ltes det rart til \u00e5 begynne med. Hva er poenget? Det kommer ikke til \u00e5 f\u00e5 alle relaterte problemer til \u00e5 forsvinne p\u00e5 magisk vis. Jeg m\u00e5 bare legge til \"?\" overalt. Det h\u00f8res ut som en jobb.<\/p>\n\n\n\n<p>Men jeg bestemte meg for \u00e5 dykke dypt ned i spr\u00e5ket, ikke sant? La oss f\u00e5 det p\u00e5 din m\u00e5te, mister <strong>Kotlin<\/strong>. Jeg begynte \u00e5 gj\u00f8re en innsats for \u00e5 eliminere s\u00e5 mange nullbare variabler, felt og parametere som mulig. Steg for steg l\u00e6rte jeg \u00e5 bruke spr\u00e5kfunksjoner som gjorde det enklere \u00e5 eliminere nullbare referanser, f.eks. safe call-operatoren \"?.\", elvis-operatoren \"?:\", delegerte egenskaper, \"let\"-metoden og mer.<\/p>\n\n\n\n<p>Etter hvert klarte jeg \u00e5 f\u00e5 noen klasser til \u00e5 bare inneholde felt og metodeparametere som ikke var null. Jeg visste at hvis en klasse var vellykket instansiert, kunne jeg nesten glemme null i metodekroppene. Det var en lykke. Med tiden satte jeg mer og mer pris p\u00e5 dette. Men til syvende og sist tenkte jeg ikke p\u00e5 det som en \"killer feature\", <strong>Java<\/strong> fortsatt f\u00f8ltes som hjemme. Helt til...<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Comebacket<\/h2>\n\n\n\n<p>Prosjektet n\u00e6rmet seg slutten. Jeg l\u00e6rte Kotlin mer og mer \u00e5 kjenne, og med denne kunnskapen ble koden stadig mer ryddig, lesbar og konsis. Du kunne se forbedringene med det blotte \u00f8ye i commit-historikken. Men n\u00e5 er tiden endelig kommet. Med uventet gode minner fra det nye spr\u00e5ket var det p\u00e5 tide \u00e5 si farvel og g\u00e5 tilbake til den s\u00f8te komfortsonen i <strong>Java<\/strong>. Det var i hvert fall det jeg trodde.<\/p>\n\n\n\n<p>Kjenner du den f\u00f8lelsen n\u00e5r du begynner \u00e5 sette pris p\u00e5 noe i samme \u00f8yeblikk som det er borte? N\u00e5r du ikke innser hvor avhengig du er av noe f\u00f8r du ikke kan bruke det lenger? Det var det beste eksemplet p\u00e5 den f\u00f8lelsen jeg noen gang har opplevd.<\/p>\n\n\n\n<p>Da jeg gikk tilbake til \u00e5 skrive koden i <strong>Java<\/strong>Jeg ble nesten livredd for mangelen p\u00e5 noen funksjoner. Det var som om hjernen min ubevisst, feilaktig, ettermonterte Kotlin-funksjoner i Java. Jeg opplevde situasjoner der jeg faktisk begynte \u00e5 implementere noe, bare for \u00e5 innse at det ikke ville fungere i dette spr\u00e5ket. I beste fall kunne jeg skrive det Kotlin-aktig, men det ville bli klumpete, uleselig og\/eller kreve for mye boilerplate.<\/p>\n\n\n\n<p>Nullsikkerhet var selvf\u00f8lgelig den funksjonen jeg savnet mest. Men jeg ble overrasket over hvor mange mindre ting som ble naturlige for meg: navngitte parametere, egenskaper i stedet for gettere og settere, \"==\" som \"equals\" og \"===\" som referensiell likhet, kvalifiserte \"this\", utvidelsesfunksjoner, implisitte lambda-parametere i entall, \"_\" for ubrukte lambda-parametere, <a href=\"https:\/\/thecodest.co\/nb\/blog\/app-data-collection-security-risks-value-and-types-explored\/\">data<\/a> klasser, scope-funksjoner, andre Kotlin stdlib-funksjoner, operatorer og mer. Og m\u00e5ten alt passer fint sammen p\u00e5. Til sammenligning f\u00f8ltes Java ... primitivt.<\/p>\n\n\n\n<p>Det f\u00f8ltes faktisk s\u00e5 ille at jeg begynte \u00e5 vurdere \u00e5 bytte til Kotlin helt og holdent. Teoretisk sett er det fullt interoperabelt med Java, du kan bare legge til Kotlin-st\u00f8tte i et eksisterende prosjekt og begynne \u00e5 skrive nye klasser. Kotlin-siden vet hvordan man \"snakker\" med Java, og Java-siden vet ikke engang at den \"snakker\" med et annet spr\u00e5k. Og etter kompilering til bytekode gj\u00f8r det egentlig ingen forskjell 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\u00f8t Java-eksperten\"\/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Virkelighetssjekk<\/h2>\n\n\n\n<p>S\u00e5 hva venter du p\u00e5? Hvis spr\u00e5ket er s\u00e5 bra som du sier, er det bare \u00e5 bruke det! Kanskje ikke i eksisterende prosjekter, men jeg vet at det b\u00f8r v\u00e6re interoperabelt, men \u00e5 blande to forskjellige spr\u00e5k p\u00e5 denne m\u00e5ten h\u00f8res stygt ut.<\/p>\n\n\n\n<p>Ok, s\u00e5 for nye moduler - Kotlin er det. Eller er det det? Du jobber i en <a href=\"https:\/\/thecodest.co\/nb\/blog\/how-to-hire-the-best-outsourced-development-team-for-a-scaleup\/\">team<\/a>. Du m\u00e5 r\u00e5df\u00f8re deg med dem og overbevise dem om hvor flott dette nye spr\u00e5ket er. Hva? Liker de det ikke? Liker de det ikke? Det h\u00f8res ut som om de ikke vil anstrenge seg for \u00e5 l\u00e6re det. Men du kan ikke klandre dem, du var ogs\u00e5 skeptisk til \u00e5 begynne med.<\/p>\n\n\n\n<p>Prosjektlederen! Ja! Han vil helt sikkert forst\u00e5 den store verdien Kotlin vil tilf\u00f8re teamet v\u00e5rt. \u00c5, den storheten som vil komme!<br>-Nei<br>-Vent, hvorfor? -Hvorfor?<br>-Hva er det? -Laget vet det ikke.<br>-De vil l\u00e6re!<br>-De vil ikke l\u00e6re. -De vil ikke l\u00e6re.<br>-Du kan lage dem!<br>-De trenger ikke \u00e5 l\u00e6re. -De trenger ikke \u00e5 l\u00e6re.<br>-Jeg mener, det er sant, men tenk p\u00e5 mulighetene!<br>-Ja, hva om du tenker p\u00e5 problemene f\u00f8rst? -Ja.<\/p>\n\n\n\n<p>Legenden sier at det finnes et prosjekt. Et prosjekt som er stort og komplekst, men som er pent skrevet i alle ledd. Et prosjekt der alle utviklerne er enige om hvilke l\u00f8sninger som skal brukes. Der ny funksjonalitet bare flyter jevnt og trutt fra programmerernes tastaturer. Der feil er sjeldne og enkle \u00e5 fikse.<\/p>\n\n\n\n<p>Har du sett et s\u00e5nt prosjekt? Jeg har ikke det. Noen var i n\u00e6rheten, men de fleste av dem er et stort rot av gammel kode. Og hvis de ikke er det, vil de sannsynligvis bli det en gang i fremtiden. Forestill deg n\u00e5 at du kaster inn et annet spr\u00e5k i miksen. Det introduserer nye m\u00e5ter \u00e5 gj\u00f8re feil p\u00e5. Det krever at utviklerne vet hva de gj\u00f8r. Det er mildt sagt en risiko.<\/p>\n\n\n\n<p>Tenk n\u00e5 ogs\u00e5 p\u00e5 <a href=\"https:\/\/thecodest.co\/nb\/blog\/hire-vue-js-developers\/\">utvikler<\/a> rotasjon. Folk kommer og g\u00e5r. Vil du tvinge alle nye utviklere til \u00e5 l\u00e6re seg et helt nytt spr\u00e5k? Nei, det er kontraproduktivt. Vil du ansette Kotlin-utviklere i utgangspunktet? Lykke til med det, det er vanskelig nok \u00e5 ansette en god Java-utvikler.<\/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\u00f8vd.<\/a> Jeg m\u00e5 si at jeg ikke er enig i de fleste av p\u00e5standene i den artikkelen. Det er noe gyldig kritikk der, men jeg tror de ikke har brukt Kotlin nok til \u00e5 faktisk forst\u00e5 \"Kotlin-m\u00e5ten\". Mange kommentatorer under den artikkelen ser ut til \u00e5 tenke p\u00e5 samme m\u00e5te.<\/p>\n\n\n\n<p>Men det spiller ingen rolle. Jeg vedder p\u00e5 at dette ville skjedd i ditt prosjekt ogs\u00e5. \"Pr\u00f8vde det, likte det ikke\". Du f\u00e5r dem ikke til \u00e5 bruke mer tid p\u00e5 det. Du f\u00e5r dem ikke til \u00e5 pr\u00f8ve igjen. Du f\u00e5r dem ikke til \u00e5 gi det en ny sjanse. Og fra et praktisk synspunkt kan de ha rett. <strong>Java<\/strong> er s\u00e5 popul\u00e6rt at det virker overfl\u00f8dig \u00e5 bruke noe annet p\u00e5 JVM-en.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hvorfor denne artikkelen da?<\/h2>\n\n\n\n<p>Du har nettopp brukt mye tid p\u00e5 \u00e5 skrive en artikkel som ikke ser ut til \u00e5 ha noe poeng. Hvorfor skulle jeg pr\u00f8ve \u00e5 l\u00e6re meg et spr\u00e5k, hvis du sier at det er meningsl\u00f8st uansett?<\/p>\n\n\n\n<p>Jeg synes ikke det er meningsl\u00f8st. Jeg synes fortsatt at Kotlin er flott. Jeg har fortsatt lyst til \u00e5 bruke det (og det gj\u00f8r jeg faktisk i mine private prosjekter). Hvis jeg kunne, ville jeg bare byttet til det og glemt begrensningene i Java. Men slik virkeligheten ser ut n\u00e5, kan jeg ikke det. Og det vil jeg pr\u00f8ve \u00e5 endre p\u00e5.<\/p>\n\n\n\n<p>Min intensjon er at du, kj\u00e6re leser, i det minste skal tenke p\u00e5 muligheten for \u00e5 komme ut av den koselige Java-komfortsonen. For kanskje, bare kanskje, vil du elske Kotlin like mye som jeg gj\u00f8r. Og hvis du gj\u00f8r det, er det enda en Kotlin-kyndig utvikler p\u00e5 <a href=\"https:\/\/thecodest.co\/nb\/dictionary\/what-is-the-size-of-your-potential-reachable-market\/\">marked<\/a>.<\/p>\n\n\n\n<p><strong>Les mer om dette:<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/the-best-type-of-projects-for-java\">Den beste typen prosjekter for Java<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/3-common-challenges-of-software-product-development-for-startups\">3 vanlige utfordringer ved utvikling av programvareprodukter for oppstartsbedrifter<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/the-right-way-to-find-top-java-developers\">Den riktige m\u00e5ten \u00e5 finne de beste Java-utviklerne p\u00e5<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Hvis du er Java-utvikler, har du sannsynligvis i det minste litt erfaring med andre programmeringsspr\u00e5k.  Noen av oss startet programmeringseventyret med et annet spr\u00e5k som C\/C++, JavaScript, C#, Python eller kanskje til og med noe som Pascal eller Basic. Noen begynte imidlertid med Java og har aldri brydd seg s\u00e6rlig mye om andre spr\u00e5k, og husker med vemod den ene gangen de trengte \u00e5 kode noe raskt 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=\"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 name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/nb\/blogg\/hvorfor-kotlin-er-fantastisk-men-du-vil-fortsette-med-java-uansett-1\/\" \/>\n<meta property=\"og:locale\" content=\"nb_NO\" \/>\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\/nb\/blogg\/hvorfor-kotlin-er-fantastisk-men-du-vil-fortsette-med-java-uansett-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 minutt\" \/>\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\":\"nb-NO\",\"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\",\"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.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/#breadcrumb\"},\"inLanguage\":\"nb-NO\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nb-NO\",\"@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\":\"nb-NO\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nb-NO\",\"@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\":\"nb-NO\",\"@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\\\/nb\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Hvorfor Kotlin er fantastisk, men du vil likevel fortsette med Java - The Codest","description":"Hvis du er Java-utvikler, har du sannsynligvis i det minste litt erfaring med andre programmeringsspr\u00e5k. Noen av oss startet programmeringseventyret med et annet spr\u00e5k som C\/C++, JavaScript, C#, Python eller kanskje til og med noe som Pascal eller Basic. Noen begynte imidlertid med Java og har aldri brydd seg s\u00e6rlig mye om andre spr\u00e5k, og husker med vemod den ene gangen de trengte \u00e5 kode noe raskt p\u00e5 frontend-siden.","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\/nb\/blogg\/hvorfor-kotlin-er-fantastisk-men-du-vil-fortsette-med-java-uansett-1\/","og_locale":"nb_NO","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\/nb\/blogg\/hvorfor-kotlin-er-fantastisk-men-du-vil-fortsette-med-java-uansett-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 minutt"},"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":"nb-NO","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 vil likevel fortsette med 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","description":"Hvis du er Java-utvikler, har du sannsynligvis i det minste litt erfaring med andre programmeringsspr\u00e5k. Noen av oss startet programmeringseventyret med et annet spr\u00e5k som C\/C++, JavaScript, C#, Python eller kanskje til og med noe som Pascal eller Basic. Noen begynte imidlertid med Java og har aldri brydd seg s\u00e6rlig mye om andre spr\u00e5k, og husker med vemod den ene gangen de trengte \u00e5 kode noe raskt p\u00e5 frontend-siden.","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/#breadcrumb"},"inLanguage":"nb-NO","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/"]}]},{"@type":"ImageObject","inLanguage":"nb-NO","@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":"nb-NO"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"nb-NO","@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":"nb-NO","@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\/nb\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/posts\/3913","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/comments?post=3913"}],"version-history":[{"count":8,"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/posts\/3913\/revisions"}],"predecessor-version":[{"id":8525,"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/posts\/3913\/revisions\/8525"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/media\/3914"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/media?parent=3913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/categories?post=3913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/tags?post=3913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}