Ċ import Ġlink . kotlin . scripts . Article Ċ import Ġlink . kotlin . scripts . Link Type .* Ċ import Ġlink . kotlin . scripts . model . Language Codes .* Ċ import Ġjava . time . LocalDate Ċ Ċ // Ġlanguage = Markdown Ċ val Ġbody Ġ= Ġ""" Ċ I Ġrecently Ġgot Ġa Ġchance Ġto Ġd ive Ġinto Ġtwo Ġinteresting ĠJVM Ġlanguages , ĠKotlin Ġ( 1 . 0 ) Ġand ĠC ey lon Ġ( 1 . 2 . 1 ). ĠThey âĢĻ re Ġboth Ġattempts Ġat Ġbeing Ġbetter ĠJ avas . ĠMy Ġthoughts Ġand Ġobservations Ġin Ġno Ġparticular Ġorder : Ċ Ċ * ĠKotlin Ġhas Ġmany Ġcommercial Ġusers Ġalready Ġand Ġit âĢĻ s Ġthe ĠJVM Ġlanguage Ġbes ides ĠJava Ġand ĠScala Ġthat Ġpeople Ġtalk Ġabout Ġat Ġthe Ġcon fer ences ĠI Ġattend . Ċ * ĠKotlin Ġis Ġ_ very _ Ġsolid . ĠExcept Ġfor Ġan Ġob sc ure Ġtype Ġinference Ġbug , ĠI Ġhaven âĢĻ t Ġencountered Ġmuch Ġin Ġthe Ġway Ġof Ġbugs Ġat Ġall . ĠI Ġunfortunately Ġhit Ġquite Ġa Ġfew ĠC ey lon Ġbugs Ġin Ġboth Ġthe Ġcompiler Ġand Ġthe ĠSDK . Ċ * ĠC ey lon Ġhas ĠJ Boss Ġmodules Ġas Ġpart Ġof Ġthe Ġlanguage . ĠI Ġthink Ġit âĢĻ s Ġexactly Ġthe Ġright Ġidea . ĠThe Ġfact Ġthat ĠKotlin Ġdoesn âĢĻ t Ġhave Ġa Ġlanguage Ġlevel Ġmodule Ġsystem Ġis Ġdis app oint ing . ĠIf Ġthey âĢĻ re Ġwaiting Ġfor ĠJ igsaw , Ġthey âĢĻ ll Ġend Ġup Ġwith Ġsomething Ġinfer ior . Ċ * ĠBoth Ġlanguages Ġhave Ġtypes afe Ġnull . ĠThis Ġis Ġthe Ġsingle Ġmost Ġimportant Ġimprovement Ġover ĠJava . Ċ * ĠKotlin Ġsupports ĠAndroid Ġvery Ġwell , Ġwhich ĠI Ġthink Ġexplains Ġthe Ġpop ularity Ġof Ġthis Ġyoung Ġlanguage . ĠWho Ġwants Ġto Ġcode Ġin Ġpre - Java Ġ 8 ? ĠIt Ġhelps Ġthat ĠAndroid ĠStudio Ġis Ġbased Ġon ĠIntelliJ ĠIDEA . ĠC ey lon Ġdoes Ġnot Ġsupport ĠAndroid Ġat Ġall . Ċ * ĠKotlin Ġfeels Ġa Ġlot Ġlike ĠTypeScript , Ġwhich ĠI Ġuse Ġfor Ġthe Ġweb Ġclients . ĠHel ps Ġme Ġswitch Ġback Ġand Ġforth . ĠI Ġ_ could _ Ġuse ĠKotlin Ġin Ġthe Ġbrowser , Ġbut ĠI Ġdon âĢĻ t Ġsee Ġthe Ġpoint . ĠWith Ġboth ĠGoogle Ġand ĠMicrosoft Ġbacking Ġit , ĠTypeScript Ġis Ġthe Ġfuture Ġof Ġthe Ġweb Ġ( I Ġthink Ġboth Ġthe ĠKotlin Ġand ĠC ey lon Ġteams Ġshould Ġput Ġa Ġbullet Ġin Ġthe Ġhead Ġof Ġtheir ĠJavascript Ġbackends . ĠIt âĢĻ s Ġa Ġco loss al Ġwaste Ġof Ġtime .) Ċ * ĠC ey lon Ġhas Ġthe Ġbest ĠEclipse Ġsupport . ĠKotlin Ġhas Ġthe Ġbest ĠIntelliJ Ġsupport . Ċ * ĠKotlin Ġhas Ġa Ġfast Ġcompiler Ġand Ġprograms Ġstart Ġquickly Ġunder Ġthe ĠJVM . ĠC ey lon Ġprograms Ġtakes Ġsome Ġtime Ġto Ġboth Ġcompile Ġand Ġlaunch . ĠWhile Ġrunning , Ġthey Ġseem Ġto Ġperform Ġequ ally Ġwell . Ċ * ĠKotlin Ġhas Ġa Ġqu ir ky Ġobject Ġliteral Ġsyntax Ġ( think ĠJSON - ish Ġstructures ). ĠC ey lon Ġgot Ġthis Ġone Ġright . Ċ * ĠKotlin Ġhas Ġunchecked Ġexceptions , Ġand Ġthat âĢĻ s Ġit . ĠGood . ĠI Ġstill Ġdon âĢĻ t Ġknow Ġhow ĠI âĢĻ m Ġsupposed Ġto Ġdeal Ġwith Ġerrors Ġconsistently Ġin ĠC ey lon . Ċ * ĠC ey lon Ġhas Ġa Ġvery Ġnice ĠT our Ġto Ġget Ġyou Ġstarted . ĠKotlin , Ġnot Ġso Ġmuch . Ċ * ĠC ey lon Ġhas Ġre ified Ġgener ics . ĠOk , Ġso Ġwhy Ġdoesn âĢĻ t ĠKotlin Ġhave Ġre ified Ġgener ics Ġagain ? ĠI Ġfind Ġno Ġreasonable Ġexc uses Ġfor Ġthis Ġo mission . Ċ * ĠKotlin Ġmanages Ġto Ġbe Ġboth Ġter se Ġand Ġreadable . ĠIt Ġhas Ġthe Ġright Ġamount Ġof Ġannotations Ġto Ġmake Ġintent ions Ġclear . ĠC ey lon Ġis Ġbasically Ġjust Ġas Ġverbose Ġas ĠJava , Ġexcept Ġwhen ĠâĢľ programming Ġin Ġthe Ġsmall âĢĿ Ġwhere Ġlist Ġcompreh ensions Ġand Ġstuff Ġlike Ġthat Ġsh ines . ĠThe Ġsyntax Ġfor ĠC ey lon Ġgener ics Ġis Ġan Ġacquired Ġt aste . Ċ * ĠUsing Ġunion Ġtypes Ġis Ġlike Ġdriving Ġaround Ġin Ġa Ġbrand Ġnew ĠF err ari Ġwith Ġyour Ġmother - in - law Ġin Ġthe Ġpass enger Ġseat . ĠM ixed Ġem otions . ĠFlow Ġtyping Ġand Ġunion Ġtypes Ġare Ġvery Ġpowerful Ġideas , Ġbut Ġthey Ġtrick Ġyou Ġinto Ġnot Ġpay ing Ġattention Ġto Ġproper Ġtype Ġab stractions . ĠResult ? ĠUn maint ain able Ġand Ġun refactor able Ġcode . Ċ * ĠC ey lon Ġlack s Ġover loading Ġbecause Ġunion Ġtypes Ġand Ġdefault Ġarg Ġvalues Ġare Ġsupposed Ġto Ġremove Ġthe Ġneed Ġfor Ġthem . ĠAt Ġtimes , ĠI Ġstill Ġended Ġup Ġwith ĠâĢľ over loads âĢĿ Ġhaving Ġarbitrary Ġnaming Ġschemes . Ċ * ĠBoth Ġlanguages Ġhave Ġmultiple Ġreturn Ġvalues , Ġusing Ġtuples Ġand Ġdestruct uring Ġrespectively . ĠUseful Ġwhen Ġcontained , Ġbut Ġdon âĢĻ t Ġexpose Ġthis Ġin Ġpublic Ġsignatures Ġif Ġyou Ġwant Ġreadable , Ġmaintain able Ġand Ġinter op Ġfriendly Ġcode . Ċ * ĠThe Ġnumber Ġone Ġpriority Ġof Ġany ĠJVM Ġlanguage ? ĠFri ction less Ġinter op Ġwith ĠJava Ġand Ġthe ĠSDK Ġof Ġcourse . ĠKotlin Ġgets ĠJava Ġinter op Ġexactly Ġright . ĠC ey lon âĢĻ s ĠJava Ġinter op Ġis Ġsur prising ly Ġqu ir ky . Ċ Ċ I Ġended Ġup Ġlik ing ĠKotlin Ġa Ġlot Ġand ĠI âĢĻ m Ġalready Ġusing Ġit Ġin Ġa Ġreal ĠAndroid - client , ĠAWS - backend Ġproject . ĠC ey lon Ġhas Ġa Ġlot Ġof Ġgood Ġideas , Ġbut ĠI Ġnever Ġfelt Ġat Ġhome . ĠYou Ġshould Ġtry Ġboth Ġlanguages Ġthough . Ċ Ċ I âĢĻ m Ġcurrently Ġlearning ĠClo jure . ĠIt Ġwill Ġbe Ġinteresting Ġto Ġsee Ġif ĠI Ġcan Ġget Ġthe Ġchance Ġto Ġfinally Ġdo Ġa Ġl isp Ġproject . Ċ """ Ċ Ċ Article ( ĊĠ Ġtitle Ġ= Ġ" Kotlin Ġand ĠC ey lon ", ĊĠ Ġurl Ġ= Ġ" https :// medium . com /@ el vir aw / kotlin - and - ce ylon - 3 ee 0 1 1 1 2 5 b 7 d #. l zd gs 0 6 5 k ", ĊĠ Ġcategories Ġ= ĠlistOf ( ĊĠĠĠ Ġ" C ey lon ", ĊĠĠĠ Ġ" Kotlin " ĊĠ Ġ), ĊĠ Ġtype Ġ= Ġarticle , ĊĠ Ġlang Ġ= ĠEN , ĊĠ Ġauthor Ġ= Ġ" El vir a ", ĊĠ Ġdate Ġ= ĠLocalDate . of ( 2 0 1 6 , Ġ 2 , Ġ 2 8 ), ĊĠ Ġbody Ġ= Ġbody Ċ ) Ċ