Kotlin (programmeerimiskeel)

Allikas: Vikipeedia
Jump to navigation Jump to search
Kotlin
Kotlin Logo
Faililaiend .kt, .kts
Väljalaskeaeg 2011
Looja JetBrains
Arendaja JetBrains ja avaliku lähtekoodi panustajad
Viimane väljalase Kotlin 1.3[1]
Tüüpimine staatiliselt tüübitud, tuletatud
Mõjutatud keeltest Java, Scala, Groovy, C#, Gosu, JavaScript
OS kõik, mida toetab JVM või Javascript interpretaator
Veebileht kotlinlang.org

Kotlin on avaliku lähtekoodiga staatiliselt tüübitud programmeerimiskeel, mis kompileerub Java baitkoodiks ja kasutab Java virtuaalmasinat (JVM). Muud sihtplatvormid on JavaScript, Android ja riistvara lähedane programmeerimine[2]. Keelt arendab ettevõte JetBrains, arendusmeeskond asub Peterburi linnas Venemaal.[3]

Kuigi Kotlin ja Java ei ole süntaksi poole pealt ühilduvad, on Kotlin Java keelega funktsionaalsuse osas täielikult ühilduv ja sisemiselt kasutab Java teekide implementatsioone. Üks näide sellest oleks näiteks Java Collections raamistik[2]. Kotlin kasutab automaatset tüübituvastust, kus see on kompilaatori jaoks võimalik. See võimaldab koodiridade hulka vähendada umbes 40% võrra võrreldes samaväärse Java koodiga.[2]

Ajalugu[muuda | muuda lähteteksti]

Keel on nime saanud Soome lahes asuva Kotlini saare järgi (saar kuulub Venemaale)[3].

Kotlini erinevus Scala keelest seisneb selles, et kui Scala eesmärk on anda võimalikult palju vabadust teekide loojatele, siis Kotlini eesmärk on olla hea tööriist lõppkasutaja jaoks[3].

Kotlini arendust alustati aastal 2010.[2] Esimene ametlik versioon (1.0) ilmus veebruaris 2016.[4] Alates oktoobrist 2017 on võimalik seda ametlikult kasutada Adroid operatsioonisüsteemi rakenduste arendamiseks.[5]

28. novembril 2017 ilmus versioon 1.2. Selle versiooni suurim iseärasus oli see, et alates sellest versioonist on võimalik koodi taaskasutada JVM ja JavaScripti platvormide vahel.[6] Selline lähenemine annab arendajatele võimaluse jagada äriloogikat erinevate moodulite vahel, mis tähendab, et nad ei pea enam iga uue komponendi jaoks äriloogikat ümber kirjutama.

Põhimõtted[muuda | muuda lähteteksti]

Projektijuht Andrey Breslav rääkis, et keele põhimõte on olla parem keel kui Java, kuid samas peab Kotlin säilitama täielikku ühendatavust Java keelega selleks, et suured ettevõtted saaksid alustada osalist migreerimist uuele keelele. See lubab osaliselt üle kirjutada vana koodi, mitte kõike korraga.[7]

Semikoolon ei ole kohustuslik avaldise lõpetamiseks, seega seda tuleks võimalusel vältida.[2]

Tüübid deklareeritakse peale muutaja nime deklareerimist, eraldades neid kooloniga.[2]

val a: String = "a"

Kotlinis saavad muutuja deklaratsioonid olla muteeritavad, kasutades võtmesõna var

var mutable = "a"

või mittemuteeritavad, kasutades võtmesõna val.

val immutable = "a"

Viimane on ekvivalente võtmesõnaga final Java keeles. Viimast tuleks eelistada kohtades, kus muutujat omistatakse ainult üks kord[2].

Klassi liikmed on vaikimisi avalikud. Klassidest ei saa vaikimisi pärida (sarnane juhtumiga, kui klass on deklareeritud võtmesõnaga final Java keeles). Selleks, et klassist saaks alamklasse pärineda, tuleks vanema klassi deklareerimisel lisada võtmesõna open[2]. Näiteks:

open class Foo

Kotlini keeles on olemas ka vaikimisi konstruktsioon üksikute objektide deklareerimiseks. Selleks on olemas võtmesõna object, mida tuleks kasutada võtmesõna class asemel klassi deklareerimisel[2]. Java keel sellist võimalust vaikimisi ei paku ning selleks tuleb kasutada staatilisi väljasid.

Koodi näide[muuda | muuda lähteteksti]

Tere maailm programm Kotlinis:

1 fun main(args: Array<String>) {
2     println("Tere maailm!")
3 }

Kotlini lambda funktsioonide kasutus:

1 fun main(args: Array<String>) {
2     // Parameetriteta lambda
3     val noParamLambda = { println("Tere, maailm!") }
4     noParamLambda() // väljastab ekraanile "Tere, maailm!"
5 
6     // Lambda, mis võtab parameetrina sõne
7     val paramLambda = { name: String -> println("Tere, $name") }
8     paramLambda("maailm!") // väljastab ekraanile "Tere, maailm!"
9 }

Viited[muuda | muuda lähteteksti]

  1. "Kotlin 1.3 is out". Kotlin. Vaadatud 4.04.2019. 
  2. 2,0 2,1 2,2 2,3 2,4 2,5 2,6 2,7 2,8 "Kotlin Language Documentation". Vaadatud 16-03-2018.  Kontrolli kuupäeva väärtust kohas: |accessdate= (juhend)
  3. 3,0 3,1 3,2 Heiss, Janice (aprill 2013). "The Advent of Kotlin: A Conversation with JetBrains' Andrey Breslav". Oracle Technology Network. Vaadatud 16-03-2018.  Kontrolli kuupäeva väärtust kohas: |accessdate= (juhend)
  4. Breslav, Andrey (15-02-2016). "Kotlin 1.0 Released: Pragmatic Language for JVM and Android". Vaadatud 16-03-2018.  Kontrolli kuupäeva väärtust kohas: |date=, |accessdate= (juhend)
  5. Shafirov, Maxim (17-05-2017). "Kotlin on Android. Now official". JetBrains Blog. Vaadatud 16-03-2018.  Kontrolli kuupäeva väärtust kohas: |date=, |accessdate= (juhend)
  6. "Kotlin 1.2.30 is out". Kotlin Blog. 1. märts 2018. Vaadatud 16.03.2018. 
  7. "JVM Languages Report extended interview with Kotlin creator Andrey Breslav". RebelLabs. 22-04-2013.  Kontrolli kuupäeva väärtust kohas: |date= (juhend)