Kotlin (programovací jazyk)

Z Wikipedie, otevřené encyklopedie
Kotlin
Vznik2011
AutorJetBrains
VývojářJetBrains
Ovlivněn jazykyJava, Scala, Groovy, C#, Gosu, JavaScript
LicenceApache 2
Webkotlinlang.org
Přípona souboru.kt, .kts, .ktm

Kotlin je staticky typovaný programovací jazyk běžící nad JVM, s možností kompilace do JavaScriptu. Jeho hlavním vývojářem je tým programátorů ze společnosti JetBrains, pracující z pobočky v ruském Petrohradu (název je odvozen od ruského ostrova Kotlin poblíž Petrohradu). V lednu roku 2012 byl Kotlin jmenován programovacím jazykem měsíce časopisem Dr. Dobb’s Journal. I když není Kotlin syntakticky kompatibilní s Javou, je navržen pro interoperabilitu s knihovnami Javy a na některých knihovnách jádra dokonce závisí.

Historie[editovat | editovat zdroj]

V červenci roku 2011 představila společnost JetBrains nový programovací jazyk pro JVM s názvem Kotlin, který byl tou dobou již rok ve vývoji. Vedoucí týmu JetBrains Dimitry Jemerov prohlásil, že většina jazyků kromě Scaly nenabízí možnosti které jeho tým vyžadoval. Problémem Scaly byl podle Jemerova příliš dlouhý čas kompilace. Jedním ze základních cílů Kotlinu je tedy kompilace alespoň tak rychlá jako u čisté Javy. V únoru 2012 uvolnil JetBrains Kotlin jako open source pod licencí Apache 2. Kotlin v. 1.0 byl představen 15. února 2016. Tato verze je považována za první oficiálně stabilní vydání a JetBrains se od této verze bude snažit o zachování zpětné kompatibility.

V květnu roku 2017 na konferenci Google I/O bylo oznámeno, že se Kotlin stává oficiálním programovacím jazykem pro mobilní platformu Android.[1] Tento krok způsobil další rozšíření jazyka v Android komunitě, kde se stal oblíbenou alternativou jazyka Java. To vedlo v roce 2019 k oznámení společnosti Google, že ve vývoji pro Android se Kotlin stává preferovaným jazykem.[2]

Filozofie[editovat | editovat zdroj]

Podle vedoucího vývoje Andreye Breslava je Kotlin navržen jako průmyslově spolehlivý objektově orientovaný jazyk, který je lepší než Java, ale je s ní naprosto interoperabilní.

Syntaxe[editovat | editovat zdroj]

Podobně jako Pascal, TypeScript, Haxe, PL/SQL, F#, GoScala a na rozdíl od jazyků odvozených od C, jako například C++, Java, C# a D mají proměnné a seznamy parametrů v Kotlinu datový typ deklarovaný až po názvu (oddělený dvojtečkou). Stejně jako v jazycích Scala a Groovy jsou středníky volitelné a většinou se používají jen v případě, že je vzhledem k čitelnosti kódu potřeba mít více příkazů na jednom řádku.

Sémantika[editovat | editovat zdroj]

Vedle tříd a metod (které se v Kotlinu nazývají „member functions“) vlastních objektově orientovaným jazykům podporuje Kotlin i procedurální programování za použití funkcí. Stejně jako v C a C++ je vstupním bodem do aplikace funkce s názvem „main“, která přijímá jako jediný argument pole argumentů z příkazové řádky. Kotlin podporuje interpolaci řetězců ve stylu PerluUnix/Linux Shellu. Také je podporováno odvozování typů proměnných.

Ukázka kódu, který vypíše „Hello World!“[editovat | editovat zdroj]

fun main() {
  val scope = "World"
  println("Hello $scope!")
}

Kotlin rozlišuje mezi nulovatelnými a nenulovatelnými datovými typy. Všechny nulovatelné objekty musejí být deklarovány s otazníkem („?“) za názvem typu. Operace s nulovatelnými objekty vyžaduje od vývojáře speciální přístup – před použitím hodnoty je nutné zkontrolovat, jestli není null. Kotlin obsahuje tzv. null-safe operátory, tedy operátory, které v případě že je objekt null, nevyhodí Exception.

  • ?. (safe navigation operator) používaný pro bezpečný přístup k metodě nebo vlastnosti objektu, který může být null. Pokud je objekt null, metoda nebude volána a případný výstup bude null.
  • ?: (null coalescing operator), také nazývaný „Elvis operator“

Ukázka použití operátoru Elvis[editovat | editovat zdroj]

Podrobnější informace naleznete v článku operátor Elvis.
fun sayHello(maybe : String?, neverNull : Int) {
   // použití operátoru Elvis
   val name : String = maybe ?: "stranger"
   println("Hello $name")
}
 
// vrátí null pokud je foo null, nebo bar() nebo baz() vrátí null
foo ?. bar() ?. baz()

Nástroje[editovat | editovat zdroj]

  • IntelliJ IDEA podporuje Kotlin prostřednictvím pluginu. Od verze 15 je plugin automaticky přibalen v základní distribuci.
  • JetBrains také oficiálně poskytuje plugin pro Eclipse
  • Apache Maven plugin
  • Apache Ant task
  • Gradle plugin

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Kotlin (programming language) na anglické Wikipedii.

  1. DOTEKOMÁNIE.CZ. Kotlin se zařadil mezi oficiální programovací jazyky Androidu. Dotekomanie.cz [online]. 2017-05-18 [cit. 2020-04-29]. Dostupné online. 
  2. TechCrunch [online]. [cit. 2020-04-29]. Dostupné v archivu pořízeném dne 2020-06-24. (anglicky) 

Externí odkazy[editovat | editovat zdroj]