Kotlin (ohjelmointikieli)

Wikipediasta
Siirry navigaatioon Siirry hakuun
Kotlin
Tyypitys vahva, staattinen
Julkaistu 2011
Kehittäjä JetBrains
Käyttöjärjestelmä alustariippumaton
Verkkosivu kotlinlang.org

Kotlin on yleiskäyttöinen avoimen lähdekoodin staattisesti tyypitetty ohjelmointikieli.[1] Kieli kääntyy JVM-tavukoodiksi. Kotlinilla kirjoitettuja ohjelmia voi siis ajaa kaikissa Java-spesifikaation mukaisia virtuaalikoneita tukevissa ympäristöissä. Kotlin julkaistiin kesäkuussa 2011, kun siitä tiedotti JetBrains-ohjelmistoyhtiö, työstettyään kielen toteutuksia vuoden ajan.[2] Vuonna 2012 JetBrains julkaisi kielen avoimen lähdekoodin lisenssillä.[1]

Vuonna 2017 Google ilmoitti tukevansa Kotlin-kieltä Android-kehitysympäristössään ja toukokuussa 2019 Google ilmoitti, että Kotlin on Android-sovelluskehityksen suositeltu kieli.[3]

Kieli on vahvasti tyypitetty: val ja var avainsanoja voidaan käyttää vain kun tyyppi voidaan päätellä, muutoin tyyppi on määriteltävä.[1] Kielessä funktiot voidaan määritellä myös luokan ulkopuolisiksi toisin kuin Javassa.[1]

Kieli tukee muun muassa anonyymejä lambda-funktioita, korkean tason funktioita (voivat saada funktion parametrina) ja inline-funktioita.[1][4]

Kotlin tulee funktionaalisen ohjelmoinnin lisäksi Javan tapaista olio-ohjelmointia: kieli tukee luokkia konstruktoreilla ja rajapintaluokkia (engl. interface).[1] Kotlinissa ei ole new-avainsanaa vaan instanssit luodaan kutsumalla konstruktoria.[1] Esimerkiksi Javan tapa:[1]

StringBuilder sb = new StringBuilder();

.. on Kotlinissa:

val sb = StringBuilder()

Kotlin yksinkertaistaa ja poistaa null-tuen standardityypeistä.[1]

Kotlin tukee C#:in tapaan laajennusmetodeja, jolloin luokkaa voidaan laajentaa uudella toiminnallisuudella perimättä siitä.[1] Kotlin tukee Javan tapaan geneerisen ohjelmoinnin ominaisuuksia (luokat, rajapinnat), jossa on kuitenkin myös eroja.[5]

Kotlinissa ei ole tukea Javan checked exceptions -poikkeuksille, joista oli hyötyä lähinnä leluohjelmissa.[1]

Koodiesimerkki

[muokkaa | muokkaa wikitekstiä]

Yksinkertainen esimerkki Hei maailma -ohjelmalla:[6]

package org.kotlinlang.play         // 1

fun main() {                        // 2
    println("Hello, World!")        // 3
}

.. jossa rivillä 1 on valinnainen pakettimäärittely.[6] Versiosta 1.3 lähtien main-funktion voi määritellä ilman parametreja (rivi 2).[6] Rivillä 3 kirjoitetaan standarditulosteeseen.[6] Puolipisteet lauseen lopussa ovat valinnaisia.[6]

Muita esimerkkejä:

// Hei maailma -esimerkki
fun main() {
  val scope = "maailma"
  println("Hei $scope!")
}

fun main(args: Array<String>) {
  for (arg in args) {
    println(arg)
  }
}

Nykyään yli 60% ammattilaisista Android-kehittäjistä käyttävät Kotlinia. Syitä Kotlinin suosioon on muun muassa parempi tuottavuus, sovelluksen laatu ja tyytyväisemmät työntekijät. Yli 95 % 1000 suosituimmasta Android-sovelluksista sisältävät Kotlin-koodia.[7] Kotlin säästää aikaa koodia kirjoittaessa vähentäen turhaa boilerplate-koodin määrää. Kotlinissa on myös hyödyliisiä vurottaisrutiineja samanaikaisten tietokantakutsujen tekemiseen, toisin kuin Javassa.[8] Kotlinissa on myös lukuisia muita ominaisuuksia, jotka kasvattavat sen suosiota Javaan verrattuna, kuten null-osoittimien turvallisuus, laaja yhteisö ja sovellusalustojen yhteensopivuus.

Kotlin on myös suosittu palvelinpuolesessa kehityksessä. Spring-ohjelmistokehys lisäsi tuen Kotlin-ohjelmointikielelle Tammikuussa 2017. Se on myös lisännyt paljon dokumentaatiota Kotlinin käyttöön ja tuen Kotlin-kohtaisille ominaisuuksille, kuten vuorottaisrutiineille.[9] JetBrains on myös itse tuottanut Ktor-ohjelmistokehyksen verkkosovelluksien rakentamiseen.[10] Kotlinia voi käyttää myös front-end - kehityksessä hyödyntäen Kotlin/JS-sovelluskehystä. Full-stack - kehittäjä voi pärjätä siis pelkästään Kotlinilla.[8]

Vuonna 2020 JetBrains piti kyselyn Kotlin-kehittäjille, josta kävi ilmi 56 prosentin kehittäjistä käyttävän Kotlinia mobiilisovelluksiin, ja 47 prosentin käyttävän sitä back-end:iin. Noin kolmas sanoin olevansa siirtymässä Kotlinin pariin toisesta kielestä. Suurin osa kehittäjistä kehittivät nimenomaan Androidille tai muuten Java Virtual Machine:lle, jättäen vain 7 % natiiviin käyttöön.[11]

  1. a b c d e f g h i j k Martin Heller: What is Kotlin? The Java alternative explained infoworld.com. 26.10.2017. Viitattu 19.2.2020. (englanniksi)
  2. Krill, Paul: JetBrains readies JVM language Kotlin 22.7.2011. InfoWorld. Viitattu 2.2.2014.
  3. Lardinois, Frederic: Kotlin is now Google’s preferred language for Android app development 7.5.2019. TechCrunch. Viitattu 27.9.2019. (englanniksi)
  4. Higher-Order Functions and Lambdas kotlinlang.org. Viitattu 19.2.2020. (englanniksi) 
  5. Generics kotlinlang.org. Viitattu 25.2.2020. (englanniksi) 
  6. a b c d e https://play.kotlinlang.org/byExample/01_introduction/01_Hello%20world (Arkistoitu – Internet Archive)
  7. Build Better Apps with Kotlin Android Developers. Viitattu 31.3.2023. (englanniksi)
  8. a b Codecademy Team: What Is Kotlin Used For? Codecademy Blog. 5.10.2021. Viitattu 31.3.2023. (englanti)
  9. The State of Kotlin Support in Spring | The Kotlin Blog The JetBrains Blog. Viitattu 31.3.2023. (englanti)
  10. Ktor: Build Asynchronous Servers and Clients in Kotlin Ktor Framework. Viitattu 31.3.2023. (englanniksi)
  11. Kotlin Programming - The State of Developer Ecosystem in 2020 Infographic JetBrains: Developer Tools for Professionals and Teams. Viitattu 31.3.2023. (englanniksi)

Aiheesta muualla

[muokkaa | muokkaa wikitekstiä]