Kotlin (programovací jazyk)
Author
Albert FloresKotlin 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
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. +more 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. Tento krok způsobil další rozšíření jazyka v Android komunitě, kde se stal oblíbenou alternativou jazyka Java. +more To vedlo v roce 2019 k oznámení společnosti Google, že ve vývoji pro Android se Kotlin stává preferovaným jazykem.
Filozofie
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
Podobně jako Pascal, TypeScript, Haxe, PL/SQL, F#, Go a Scala 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
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. +more Kotlin podporuje interpolaci řetězců ve stylu Perlu a Unix/Linux Shellu. Také je podporováno odvozování typů proměnných.
Ukázka kódu, který vypíše „Hello World!“
fun main { val scope = "World" println("Hello $scope. ") } Kotlin rozlišuje mezi nulovatelnými a nenulovatelnými datovými typy. +more 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
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
IntelliJ IDEA podporuje Kotlin prostřednictvím pluginu. Od verze 15 je plugin automaticky přibalen v základní distribuci. +more * JetBrains také oficiálně poskytuje plugin pro Eclipse * Apache Maven plugin * Apache Ant task * Gradle plugin.
Reference
Externí odkazy
[url=https://kotlinlang.org/]Oficiální web[/url]
Kategorie:JVM programovací jazyky Kategorie:Vzniklo 2011 Kategorie:Objektově orientované programovací jazyky Kategorie:Software pod licencí Apache