{"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":"proc-je-kotlin-uzasny-ale-stejne-zustanete-u-javy-1","status":"publish","type":"post","link":"https:\/\/thecodest.co\/cs\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/","title":{"rendered":"Pro\u010d je Kotlin \u00fa\u017easn\u00fd, ale vy stejn\u011b z\u016fstanete u Javy"},"content":{"rendered":"<p>Bez ohledu na to, do kter\u00e9 skupiny pat\u0159\u00edte, existuje d\u016fvod, pro\u010d z\u016fst\u00e1v\u00e1te s. <strong><a href=\"https:\/\/thecodest.co\/cs\/blog\/find-the-right-java-developer-now\/\">Java<\/a><\/strong>. A neobvi\u0148uji v\u00e1s. M\u00e1 pravd\u011bpodobn\u011b nejrozvinut\u011bj\u0161\u00ed, nejuniverz\u00e1ln\u011bj\u0161\u00ed a nejkomplexn\u011bj\u0161\u00ed ekosyst\u00e9m v cel\u00e9m sv\u011bt\u011b. <a href=\"https:\/\/thecodest.co\/cs\/dictionary\/what-is-enterprise-hybrid-cloud\/\">podnik<\/a> sv\u011bt. Jazyk m\u00e1 p\u011bkn\u011b p\u0159izp\u016fsobenou sadu schopnost\u00ed, n\u011bkde na pomez\u00ed p\u0159\u00edli\u0161 mnoho a p\u0159\u00edli\u0161 m\u00e1lo. A nov\u00e9 funkce jsou pomalu, ale vytrvale p\u0159id\u00e1v\u00e1ny, co\u017e jej v\u011bt\u0161inou udr\u017euje v souladu s nov\u00fdmi trendy ve sv\u011bt\u011b programov\u00e1n\u00ed.<\/p>\n\n\n\n<p>V\u00edte, \u017ee <a href=\"https:\/\/projectlombok.org\">Lombok<\/a> a\u010dkoli? Pokud ne, v\u0159ele doporu\u010duji vyzkou\u0161et. Pokud se v\u00e1m to l\u00edb\u00ed, pak m\u00e1m n\u011bco pr\u00e1v\u011b pro v\u00e1s k vyzkou\u0161en\u00ed. \u00dapln\u011b nov\u00fd jazyk, kter\u00fd sv\u00fdmi vlastnostmi d\u011bl\u00e1 Lombok zastaral\u00fdm. Jmenuje se <b>Kotlin<\/b>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kotlin? Mysl\u00edte jazyk pro Android?<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/pClXBLD.jpg\" alt=\"Ano, ale vlastn\u011b ne\"\/><\/figure>\n\n\n\n<p>Kotlin na Androidu dostal po\u017eehn\u00e1n\u00ed od samotn\u00e9ho Googlu do t\u00e9 m\u00edry, \u017ee se stal de facto jazykem volby pro tuto platformu. Na to se v tomto \u010dl\u00e1nku nezam\u011b\u0159\u00edm, ale Android je skute\u010dn\u011b m\u00edstem, kde jsem se s Kotlinem poprv\u00e9 setkal.<\/p>\n\n\n\n<p>M\u016fj kolega v pr\u00e1ci vyv\u00edjel aplikaci pro tehdy aktu\u00e1ln\u00ed <a href=\"https:\/\/thecodest.co\/cs\/dictionary\/why-do-projects-fail\/\">projekt<\/a>, a to samostatn\u011b. Term\u00edny se v\u0161ak rychle bl\u00ed\u017eily, a tak jsem byl pov\u011b\u0159en, abych mu je pomohl splnit. Dovolte mi, abych se nyn\u00ed p\u0159enesl v \u010dase zp\u011bt do tohoto okam\u017eiku. Aaaand... YUCK! Pro\u010d pou\u017e\u00edv\u00e1 n\u011bjak\u00fd divn\u00fd jazyk, kter\u00fd zn\u00ed jako. <a href=\"https:\/\/www.ketchupy.pl\/images\/3\/c\/9\/4\/5\/3c9453c5b720f810c293211d77449d9395f09944-product-front-1.png\">zna\u010dka ke\u010dupu<\/a>!? Vypad\u00e1 to hrozn\u011b!<\/p>\n\n\n\n<p>Pro\u010d je p\u0159ed ka\u017edou funkc\u00ed naps\u00e1no \"fun\"? Jako bych u\u017e nev\u011bd\u011bl, co to je. A taky u\u017e m\u00e1m <em>z\u00e1bava<\/em> s <strong>Java<\/strong> ka\u017edop\u00e1dn\u011b. A kde je n\u00e1vratov\u00fd typ? Na konci? Zbl\u00e1znil ses? Co to je, p\u0159i\u0159azuje\u0161 n\u011bco funkci? To ned\u00e1v\u00e1 \u017e\u00e1dn\u00fd smysl! V\u0161echno to vypad\u00e1 jako <b>Java s dal\u0161\u00edmi kroky!<\/b> Po\u010dkat, kam pat\u0159\u00ed t\u0159\u00edda, do kter\u00e9 tato metoda pat\u0159\u00ed? Kam jsi ji schoval, ty ke\u010dupov\u011b zn\u011bj\u00edc\u00ed, <strong>Java<\/strong> napodobuj\u00edc\u00ed v\u00fdmluvu na programovac\u00ed jazyk? Ale ne. Ale ne, to jste neud\u011blali. JE TO GLOB\u00c1LN\u00cd FUNKCE? To je v\u0161e, kon\u010d\u00edm, vol\u00e1m policii.<\/p>\n\n\n\n<p>Pozor, spoiler: nevolal jsem org\u00e1ny \u010dinn\u00e9 v trestn\u00edm \u0159\u00edzen\u00ed. A\u0165 u\u017e se mi to l\u00edbilo, nebo ne, musel jsem sv\u00e9 my\u0161len\u00ed zam\u011b\u0159en\u00e9 na Javu p\u0159izp\u016fsobit jin\u00e9mu jazyku. Nebude to ale tak \u0161patn\u00e9, ne? Po\u0159\u00e1d je to jazyk JVM, ur\u010dit\u011b je to jen jin\u00fd. <strong>Java<\/strong>. Mo\u017en\u00e1 i s n\u011bjak\u00fdmi skv\u011bl\u00fdmi funkcemi nav\u00edc? Neochotn\u011b jsem na projektu za\u010dal pracovat.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Java s dal\u0161\u00edmi kroky<\/h2>\n\n\n\n<p><em>Pokud je Java tak skv\u011bl\u00e1, pro\u010d neexistuje Java 2?<\/em> Vtipy stranou, To je to, co jsem si myslel, pro sebe. Prost\u011b budu p\u0159edst\u00edrat, \u017ee Kotlin je Java 2. Nov\u00e1 syntaxe a tak, ale mus\u00edm se j\u00ed nau\u010dit dost na to, abych projekt dokon\u010dil. Chlap\u010de, ach chlap\u010de, m\u00fdlil jsem se.<\/p>\n\n\n\n<p>Po jednom nebo dvou dnech zkou\u0161en\u00ed jsem si rychle uv\u011bdomil, \u017ee Kotlin i <strong>Java<\/strong> nejsou tak pru\u017en\u00e9. Pokusy o jejich ohnut\u00ed k sob\u011b nevyhnuteln\u011b kon\u010d\u00ed t\u00edm, \u017ee se jeden z nich p\u0159etrhne nap\u016fl. Za\u010dalo b\u00fdt z\u0159ejm\u00e9, \u017ee Kotlin je v\u011bc sama o sob\u011b, a to, \u017ee funguje na JVM, neznamen\u00e1 z program\u00e1torsk\u00e9ho hlediska t\u00e9m\u011b\u0159 nic. (Jen na okraj, um\u00ed se tak\u00e9 transpirovat do jazyka <a href=\"https:\/\/thecodest.co\/cs\/blog\/hire-javascript-developer\/\">JavaScript<\/a>nebo zkompilovat do nativn\u00edho bin\u00e1rn\u00edho souboru).<\/p>\n\n\n\n<p>Pak tedy pl\u00e1n B. Vlastn\u011b se seznamte s jazykem. P\u0159i prvn\u00edm \u010dten\u00ed dokumentace b\u011bh\u00e1 zku\u0161en\u00e9mu program\u00e1torovi Javy mr\u00e1z po z\u00e1dech. Nap\u0159\u00edklad:<br>- d\u0159\u00edve zm\u00edn\u011bn\u00fd kontext nejvy\u0161\u0161\u00ed \u00farovn\u011b alias glob\u00e1ln\u00ed kontext<br>- typy parametr\u016f a n\u00e1vratov\u00fdch typ\u016f funkc\u00ed uveden\u00e9 na konci<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>fun sum(a: Int, b: Int): Int {\n   return a + b\n}<\/code><\/code><\/pre>\n\n\n\n<p>t\u011blem funkce m\u016f\u017ee b\u00fdt v\u00fdraz (s pou\u017eit\u00edm znam\u00e9nka rovnosti)<\/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>p\u0159\u00edkaz if m\u016f\u017ee poskytnout v\u00fdsledek<\/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 \"dva\"\n } else {\n \"druh\u00fd\"\n }<\/code><\/code><\/pre>\n\n\n\n<p>Dob\u0159e, budu si na to muset zvyknout. Jen jin\u00e1 syntaxe. Co dal\u0161\u00edho m\u016f\u017eete nab\u00eddnout, pane Kotline?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> value?.method() \/\/ prov\u00e9st, pokud nen\u00ed null<\/code><\/code><\/pre>\n\n\n\n<p>Dob\u0159e, zbavit se <code>if (value == null)<\/code>, bod pro v\u00e1s. Co je\u0161t\u011b m\u00e1te?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>fun check(list: List, alternative: Boolean) = when {\n list je LinkedList -&gt; print(\"linked\")\n alternative -&gt; print(\"alternative\")\n list.size &gt; 50 -&gt; print(\"big\")\n else -&gt; print(\"jin\u00fd\")\n }<\/code><\/code><\/pre>\n\n\n\n<p>Hmm p\u011bkn\u00e9, by mohlo b\u00fdt u\u017eite\u010dn\u00e9, aby se zabr\u00e1nilo, pokud ostatn\u00ed bloky, st\u00e1le se zd\u00e1 jako trik a\u010dkoli.<\/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) \"more\" else \"less\"\n }<\/code><\/code><\/pre>\n\n\n\n<p>Ok, ten vypad\u00e1 skute\u010dn\u011b u\u017eite\u010dn\u011b, l\u00edb\u00ed se mi! Na druhou stranu, singleton mohu vytvo\u0159it i v Jav\u011b. Mo\u017en\u00e1 to nebude tak elegantn\u00ed, ale nen\u00ed to nic nov\u00e9ho. M\u00e1\u0161 n\u011bjak\u00e1 esa v ruk\u00e1vu? T\u0159eba opravdov\u00e9 t\u011b\u017ek\u00e9 \u00fadery?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> var s: String = null \/\/ nezkompiluje se, nenulov\u00fd typ<\/code><\/code><\/pre>\n\n\n\n<p>Po\u010dkat... co\u017ee?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/Tony_Hoare#Apologies_and_retractions\">Omyl za miliardu dolar\u016f<\/a><\/h2>\n\n\n\n<p>P\u0159edstavte si k\u00f3dovou z\u00e1kladnu, kde se nemus\u00edte starat o nulovou bezpe\u010dnost. P\u0159edstavte si, \u017ee prost\u011b pova\u017eujete za samoz\u0159ejm\u00e9, \u017ee ka\u017ed\u00e1 reference skute\u010dn\u011b obsahuje n\u011bco smyslupln\u00e9ho. P\u0159edstavte si, \u017ee m\u00e1te jistotu, \u017ee ka\u017ed\u00fd probl\u00e9m souvisej\u00edc\u00ed s nulou je p\u0159edem vy\u0159e\u0161en.<br>V\u00edc si nep\u0159edstavujte. V\u0161echny reference v Kotlinu nejsou ve v\u00fdchoz\u00edm nastaven\u00ed nulovateln\u00e9. Pokud je chcete u\u010dinit nulovateln\u00fdmi, mus\u00edte <u>v\u011bdom\u011b<\/u> u\u010dinit toto rozhodnut\u00ed a <u>v\u00fdslovn\u011b<\/u> uv\u00e9st v <a href=\"https:\/\/thecodest.co\/cs\/dictionary\/what-is-code-refactoring\/\">k\u00f3d<\/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>Ch\u00e1pu, \u017ee v tuto chv\u00edli m\u016f\u017eete b\u00fdt k cel\u00e9 my\u0161lence skepti\u010dt\u00ed. Jste zvykl\u00ed na nulovateln\u00e9 odkazy. P\u0159i k\u00f3dov\u00e1n\u00ed je m\u00e1te v hlav\u011b. Dozv\u011bd\u011bli jste se, kde si mus\u00edte d\u00e1vat pozor. P\u0159esn\u011b to si mysl\u00edm. Poch\u00e1z\u00edm z <strong>Java<\/strong>, bylo to zpo\u010d\u00e1tku opravdu divn\u00e9. Jako\u017ee, jak\u00fd to m\u00e1 smysl? P\u0159ece d\u00edky tomu z\u00e1zra\u010dn\u011b nezmiz\u00ed v\u0161echny souvisej\u00edc\u00ed probl\u00e9my. Jen budu muset v\u0161ude p\u0159id\u00e1vat \"?\", zn\u00ed to jako fu\u0161ka.<\/p>\n\n\n\n<p>Ale rozhodl jsem se pono\u0159it do jazyka, \u017ee? A\u0165 je po va\u0161em, pane <strong>Kotlin<\/strong>. Za\u010dal jsem se sna\u017eit eliminovat co nejv\u00edce nulovateln\u00fdch prom\u011bnn\u00fdch, pol\u00ed a parametr\u016f. Krok za krokem jsem se nau\u010dil pou\u017e\u00edvat vlastnosti jazyka, kter\u00e9 usnad\u0148ovaly eliminaci nulovateln\u00fdch odkaz\u016f, nap\u0159. oper\u00e1tor safe call \"?.\", oper\u00e1tor elvis \"?:\", delegovan\u00e9 vlastnosti, metoda \"let\" a dal\u0161\u00ed.<\/p>\n\n\n\n<p>Postupem \u010dasu se mi poda\u0159ilo dos\u00e1hnout toho, \u017ee n\u011bkter\u00e9 t\u0159\u00eddy obsahuj\u00ed pouze nenulov\u00e1 pole a parametry metod. V podstat\u011b jsem v\u011bd\u011bl, \u017ee pokud je t\u0159\u00edda \u00fasp\u011b\u0161n\u011b instancov\u00e1na, mohu na nulovatelnost v t\u011blech metod t\u00e9m\u011b\u0159 zapomenout. Bylo to blaho. Postupem \u010dasu jsem to oce\u0148oval \u010d\u00edm d\u00e1l v\u00edc. Nakonec jsem to v\u0161ak nepova\u017eoval za killer feature, <strong>Java<\/strong> se st\u00e1le c\u00edtil jako doma. Dokud...<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">N\u00e1vrat<\/h2>\n\n\n\n<p>Projekt se bl\u00ed\u017eil ke konci. St\u00e1le v\u00edce jsem pozn\u00e1val Kotlin a d\u00edky t\u011bmto znalostem byl k\u00f3d st\u00e1le \u00fahledn\u011bj\u0161\u00ed, \u010diteln\u011bj\u0161\u00ed a stru\u010dn\u011bj\u0161\u00ed. Zlep\u0161en\u00ed jste mohli vid\u011bt pouh\u00fdm okem v historii reviz\u00ed. Nakonec v\u0161ak nade\u0161el \u010das. S ne\u010dekan\u011b p\u0159\u00edjemn\u00fdmi vzpom\u00ednkami na nov\u00fd jazyk nastal \u010das rozlou\u010dit se a vr\u00e1tit se do sladk\u00e9 komfortn\u00ed z\u00f3ny jazyka <strong>Java<\/strong>. Nebo jsem si to alespo\u0148 myslel.<\/p>\n\n\n\n<p>Zn\u00e1te ten pocit, kdy si n\u011b\u010deho za\u010dnete v\u00e1\u017eit a\u017e ve chv\u00edli, kdy to zmiz\u00ed? Kdy\u017e si neuv\u011bdom\u00edte, jak moc si na n\u011b\u010dem zakl\u00e1d\u00e1te, dokud to u\u017e nem\u016f\u017eete pou\u017e\u00edvat? Byl to ten nejlep\u0161\u00ed p\u0159\u00edklad tohoto pocitu, jak\u00fd jsem v \u017eivot\u011b pravd\u011bpodobn\u011b za\u017eil.<\/p>\n\n\n\n<p>Kdy\u017e jsem se vr\u00e1til k psan\u00ed k\u00f3du v <strong>Java<\/strong>, t\u00e9m\u011b\u0159 m\u011b vyd\u011bsila absence n\u011bkter\u00fdch funkc\u00ed. Bylo to, jako by m\u016fj mozek podv\u011bdom\u011b, chybn\u011b zp\u011btn\u011b instaloval funkce Kotlinu do Javy. Za\u017eil jsem situace, kdy jsem skute\u010dn\u011b za\u010dal n\u011bco implementovat, abych zjistil, \u017ee to v tomto jazyce nebude fungovat. V nejlep\u0161\u00edm p\u0159\u00edpad\u011b bych to mohl napsat podobn\u011b jako Kotlin, ale bylo by to objemn\u00e9, ne\u010diteln\u00e9 a\/nebo by to vy\u017eadovalo p\u0159\u00edli\u0161 mnoho boilerplate.<\/p>\n\n\n\n<p>Nulov\u00e1 bezpe\u010dnost byla samoz\u0159ejm\u011b funkce, kter\u00e1 mi chyb\u011bla nejv\u00edce. Ale p\u0159ekvapilo m\u011b, kolik men\u0161\u00edch v\u011bc\u00ed se pro m\u011b stalo p\u0159irozen\u00fdmi: pojmenovan\u00e9 parametry, vlastnosti m\u00edsto getter\u016f a setter\u016f, \"==\" jako equals a \"===\" jako referen\u010dn\u00ed rovnost, kvalifikovan\u00e9 \"this\", roz\u0161i\u0159uj\u00edc\u00ed funkce, implicitn\u00ed singul\u00e1rn\u00ed lambda parametr, \"_\" pro nepou\u017e\u00edvan\u00e9 lambda parametry, <a href=\"https:\/\/thecodest.co\/cs\/blog\/app-data-collection-security-risks-value-and-types-explored\/\">data<\/a> t\u0159\u00edd, funkc\u00ed oboru, dal\u0161\u00edch funkc\u00ed Kotlin stdlib, oper\u00e1tor\u016f a dal\u0161\u00edch. A jak to v\u0161echno do sebe p\u011bkn\u011b zapad\u00e1. Ve srovn\u00e1n\u00ed s t\u00edm mi Java p\u0159ipadala... primitivn\u00ed.<\/p>\n\n\n\n<p>Vlastn\u011b jsem se c\u00edtil tak \u0161patn\u011b, \u017ee jsem za\u010dal uva\u017eovat o \u00fapln\u00e9m p\u0159echodu na Kotlin. Teoreticky je pln\u011b interoperabiln\u00ed s Javou, sta\u010d\u00ed p\u0159idat podporu Kotlinu do st\u00e1vaj\u00edc\u00edho projektu a za\u010d\u00edt ps\u00e1t nov\u00e9 t\u0159\u00eddy. Strana Kotlinu v\u00ed, jak \"mluvit\" s Javou, a strana Javy ani nev\u00ed, \u017ee \"mluv\u00ed\" s jin\u00fdm jazykem. A po kompilaci do bajtov\u00e9ho k\u00f3du to pro JVM vlastn\u011b nen\u00ed \u017e\u00e1dn\u00fd rozd\u00edl.<\/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=\"Seznamte se s odborn\u00edkem na Javu\"\/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Kontrola reality<\/h2>\n\n\n\n<p>Tak na co \u010dek\u00e1te? Pokud je jazyk tak dobr\u00fd, jak \u0159\u00edk\u00e1te, prost\u011b ho pou\u017e\u00edvejte! Mo\u017en\u00e1 ne v existuj\u00edc\u00edch projektech, i kdy\u017e v\u00edm, \u017ee by m\u011bl b\u00fdt interoperabiln\u00ed, ale m\u00edchat takto dva r\u016fzn\u00e9 jazyky zn\u00ed o\u0161kliv\u011b.<\/p>\n\n\n\n<p>Dob\u0159e, tak\u017ee pro nov\u00e9 moduly - Kotlin je to. Nebo ano? Pracujete v <a href=\"https:\/\/thecodest.co\/cs\/blog\/how-to-hire-the-best-outsourced-development-team-for-a-scaleup\/\">t\u00fdm<\/a>. Mus\u00edte se s nimi poradit a p\u0159esv\u011bd\u010dit je o velikosti tohoto nov\u00e9ho jazyka. Co? Nel\u00edb\u00ed se jim to? To zn\u00ed, jako by prost\u011b necht\u011bli vynalo\u017eit \u00fasil\u00ed, aby se ho nau\u010dili. Nem\u016f\u017eete se jim ale divit, vy jste byli zpo\u010d\u00e1tku tak\u00e9 skepti\u010dt\u00ed.<\/p>\n\n\n\n<p>Projektov\u00fd mana\u017eer! Ano! Ur\u010dit\u011b pochop\u00ed, jak velkou hodnotu by Kotlin na\u0161emu t\u00fdmu p\u0159inesl. Ach, ta velikost, kter\u00e1 p\u0159ijde!<br>-No<br>-Po\u010dkat, pro\u010d?<br>-T\u00fdm to nev\u00ed.<br>-Nau\u010d\u00ed se to!<br>-Necht\u011bj\u00ed se u\u010dit.<br>-M\u016f\u017eete je vyrobit!<br>-Nepot\u0159ebuj\u00ed se u\u010dit.<br>-To je sice pravda, ale p\u0159edstavte si ty mo\u017enosti!<br>-Ano, co kdybyste se nejprve zamysleli nad probl\u00e9my.<\/p>\n\n\n\n<p>Legenda \u0159\u00edk\u00e1, \u017ee existuje projekt. Projekt, kter\u00fd je velk\u00fd a slo\u017eit\u00fd, ale p\u011bkn\u011b napsan\u00fd v ka\u017ed\u00e9 \u010d\u00e1sti. Projekt, kde jsou v\u0161ichni v\u00fdvoj\u00e1\u0159i zajedno ohledn\u011b pou\u017eit\u00fdch \u0159e\u0161en\u00ed. Kde nov\u00e9 funkce jen plynule p\u0159ich\u00e1zej\u00ed z kl\u00e1vesnic program\u00e1tor\u016f. Kde jsou chyby vz\u00e1cn\u00e9 a snadno opraviteln\u00e9.<\/p>\n\n\n\n<p>Vid\u011bli jste n\u011bkdy takov\u00fd projekt? J\u00e1 ne. N\u011bkter\u00e9 se tomu bl\u00ed\u017eily, ale v\u011bt\u0161ina z nich je velk\u00fd nepo\u0159\u00e1dek ve star\u00e9m k\u00f3du. A pokud nejsou, pravd\u011bpodobn\u011b se j\u00edm n\u011bkdy v budoucnu stanou. A te\u010f si p\u0159edstavte, \u017ee do toho v\u0161eho p\u0159ihod\u00edte dal\u0161\u00ed jazyk. Zav\u00e1d\u00ed to nov\u00e9 zp\u016fsoby, jak d\u011blat chyby. Vy\u017eaduje, aby v\u00fdvoj\u00e1\u0159i v\u011bd\u011bli, co d\u011blaj\u00ed. Je to p\u0159inejmen\u0161\u00edm riziko.<\/p>\n\n\n\n<p>Nyn\u00ed tak\u00e9 zva\u017ete <a href=\"https:\/\/thecodest.co\/cs\/blog\/hire-vue-js-developers\/\">v\u00fdvoj\u00e1\u0159<\/a> ot\u00e1\u010den\u00ed. Lid\u00e9 p\u0159ich\u00e1zej\u00ed a odch\u00e1zej\u00ed. Budete nutit ka\u017ed\u00e9ho nov\u00e9ho v\u00fdvoj\u00e1\u0159e, aby se nau\u010dil cel\u00fd nov\u00fd jazyk? Ne, to je kontraproduktivn\u00ed. Budete naj\u00edmat p\u0159edev\u0161\u00edm v\u00fdvoj\u00e1\u0159e v jazyce Kotlin? Tak to hodn\u011b \u0161t\u011bst\u00ed, najmout dobr\u00e9ho v\u00fdvoj\u00e1\u0159e Javy je dost t\u011b\u017ek\u00e9.<\/p>\n\n\n\n<p><a href=\"https:\/\/blog.allegro.tech\/2018\/05\/From-Java-to-Kotlin-and-Back-Again.html\">Lid\u00e9 to zkou\u0161eli.<\/a> Mus\u00edm \u0159\u00edct, \u017ee s v\u011bt\u0161inou tvrzen\u00ed v tomto \u010dl\u00e1nku nesouhlas\u00edm. Je tam sice opr\u00e1vn\u011bn\u00e1 kritika, ale mysl\u00edm, \u017ee nepou\u017e\u00edvali Kotlin dostate\u010dn\u011b na to, aby skute\u010dn\u011b pochopili \"zp\u016fsob Kotlinu\". Mnoho koment\u00e1tor\u016f pod t\u00edm \u010dl\u00e1nkem si z\u0159ejm\u011b mysl\u00ed n\u011bco podobn\u00e9ho.<\/p>\n\n\n\n<p>Na tom ale nez\u00e1le\u017e\u00ed. Vsad\u00edm se, \u017ee by se to stalo i ve va\u0161em projektu. \"Zkusil jsem to, nel\u00edbilo se mi to\". Nedonut\u00edte je, aby nad t\u00edm str\u00e1vili v\u00edce \u010dasu. Nedonut\u00edte je, aby to zkusili znovu. Nedonut\u00edte je, aby tomu dali dal\u0161\u00ed \u0161anci. A z praktick\u00e9ho hlediska mohou m\u00edt pravdu. <strong>Java<\/strong> je tak popul\u00e1rn\u00ed, \u017ee se pou\u017eit\u00ed \u010dehokoli jin\u00e9ho v JVM zd\u00e1 b\u00fdt zbyte\u010dn\u00e9.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pro\u010d tedy tento \u010dl\u00e1nek?<\/h2>\n\n\n\n<p>Pr\u00e1v\u011b jste str\u00e1vil zna\u010dn\u00e9 mno\u017estv\u00ed \u010dasu psan\u00edm \u010dl\u00e1nku, kter\u00fd z\u0159ejm\u011b nem\u00e1 smysl. Pro\u010d bych se m\u011bl sna\u017eit u\u010dit jazyk, kdy\u017e stejn\u011b tvrd\u00edte, \u017ee to nem\u00e1 smysl?<\/p>\n\n\n\n<p>Nemysl\u00edm si, \u017ee je to zbyte\u010dn\u00e9. Po\u0159\u00e1d si mysl\u00edm, \u017ee Kotlin je skv\u011bl\u00fd. Po\u0159\u00e1d ho chci skute\u010dn\u011b pou\u017e\u00edvat (a skute\u010dn\u011b ho pou\u017e\u00edv\u00e1m pro sv\u00e9 soukrom\u00e9 projekty). Kdybych mohl, prost\u011b bych na n\u011bj p\u0159e\u0161el a zapomn\u011bl na omezen\u00ed Javy. Ale sou\u010dasn\u00e1 realita \u0159\u00edk\u00e1, \u017ee nem\u016f\u017eu. A j\u00e1 se to chci pokusit zm\u011bnit.<\/p>\n\n\n\n<p>M\u00fdm z\u00e1m\u011brem je, abys, mil\u00fd \u010dten\u00e1\u0159i, alespo\u0148 zkusil vystoupit z \u00fatuln\u00e9 komfortn\u00ed z\u00f3ny Javy. Proto\u017ee mo\u017en\u00e1, jen mo\u017en\u00e1, si Kotlin zamilujete stejn\u011b jako j\u00e1. A pokud ano, bude o jednoho v\u00fdvoj\u00e1\u0159e znal\u00e9ho Kotlinu v\u00edce. <a href=\"https:\/\/thecodest.co\/cs\/dictionary\/what-is-the-size-of-your-potential-reachable-market\/\">trh<\/a>.<\/p>\n\n\n\n<p><strong>P\u0159e\u010dt\u011bte si v\u00edce:<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/the-best-type-of-projects-for-java\">Nejlep\u0161\u00ed typy projekt\u016f pro Javu<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/3-common-challenges-of-software-product-development-for-startups\">3 nej\u010dast\u011bj\u0161\u00ed probl\u00e9my za\u010d\u00ednaj\u00edc\u00edch firem p\u0159i v\u00fdvoji softwarov\u00fdch produkt\u016f<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/the-right-way-to-find-top-java-developers\">Spr\u00e1vn\u00fd zp\u016fsob, jak naj\u00edt \u0161pi\u010dkov\u00e9 v\u00fdvoj\u00e1\u0159e Java<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Pokud jste v\u00fdvoj\u00e1\u0159em v jazyce Java, je pravd\u011bpodobn\u00e9, \u017ee m\u00e1te alespo\u0148 n\u011bjak\u00e9 zku\u0161enosti s jin\u00fdmi programov\u00fdmi jazyky.  N\u011bkte\u0159\u00ed z n\u00e1s za\u010dali sv\u00e9 program\u00e1torsk\u00e9 dobrodru\u017estv\u00ed s jin\u00fdm jazykem, jako je C\/C++, JavaScript, C#, Python nebo mo\u017en\u00e1 dokonce n\u011bco jako Pascal nebo Basic. N\u011bkte\u0159\u00ed v\u0161ak za\u010d\u00ednali s Javou a ostatn\u00edm jazyk\u016fm se prost\u011b nikdy p\u0159\u00edli\u0161 nev\u011bnovali a nep\u0159\u00edjemn\u011b vzpom\u00ednali na to, jak jednou pot\u0159ebovali rychle n\u011bco nak\u00f3dovat na stran\u011b frontendu.<\/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\/cs\/blog\/proc-je-kotlin-uzasny-ale-stejne-zustanete-u-javy-1\/\" \/>\n<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\/cs\/blog\/proc-je-kotlin-uzasny-ale-stejne-zustanete-u-javy-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 minuta\" \/>\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\":\"cs\",\"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\":\"cs\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"cs\",\"@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\":\"cs\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"cs\",\"@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\":\"cs\",\"@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\\\/cs\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Pro\u010d je Kotlin \u00fa\u017easn\u00fd, ale vy stejn\u011b z\u016fstanete u Javy - 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\/cs\/blog\/proc-je-kotlin-uzasny-ale-stejne-zustanete-u-javy-1\/","og_locale":"cs_CZ","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\/cs\/blog\/proc-je-kotlin-uzasny-ale-stejne-zustanete-u-javy-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 minuta"},"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":"cs","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":"Pro\u010d je Kotlin \u00fa\u017easn\u00fd, ale vy stejn\u011b z\u016fstanete u Javy - 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":"cs","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/"]}]},{"@type":"ImageObject","inLanguage":"cs","@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":"cs"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"cs","@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":"cs","@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\/cs\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/posts\/3913","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/comments?post=3913"}],"version-history":[{"count":8,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/posts\/3913\/revisions"}],"predecessor-version":[{"id":8525,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/posts\/3913\/revisions\/8525"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/media\/3914"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/media?parent=3913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/categories?post=3913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/tags?post=3913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}