Ohjelmointikielet Suomen mobiilikehityksessä 2020 -raportin ensimmäinen osa kertoo aiheesta Android Kotlin.

Ohjelmointikielet Suomen mobiilikehityksessä 2020 – Osa #1: Android Kotlin

Kotlin™ on JetBrainsin luoma ohjelmointikieli, joka on hyvin lyhyessä ajassa vallannut vaikuttavan osuuden koko Android™-sovelluskehitystyökalumarkkinasta. Projekti käynnistyi jo vuonna 2010. Ensimmäinen virallinen julkaisuversio näki päivänvalon helmikuussa 2016. 

Kotlin-tuki saapui Android Studioon vuonna 2017. Vain kaksi vuotta myöhemmin Google ilmoitti Kotlinin ohittaneen Android-kehittäjien suosiossa Javan™. Vuoden 2019 I/O-tapahtumassa Google ilmoitti lakonisesti Android-kehityksen olevan “Kotlin-first”.

Joulukuussa 2019 Google kertoi lähes 60% Top 1000 -sovelluksista sisältävän Kotlin-koodia.

Sovelluskehittäjän näkökulmasta Kotlin sisältää lukuisia erinomaisia ominaisuuksia. Kotlin on suunniteltu täysin Java-yhteensopivaksi ja sitä voi ajaa Java-virtuaalikoneen päällä. Näin ollen vanhoja Java-sovelluksia voi päivittää Kotliniin vähitellen. Lisäksi, Kotlin on moderni ohjelmointikieli jatkuvasti kehittyvine ohjelmointiparadigmoineen. Kun tätä tilannetta vertaa Android Javan nykytilaan (josta lisää alla), ei ole ihme, että niin moni on jo hypännyt Kotlinin kelkkaan.

Tätä kirjoitettaessa Kotlinin uusin versio on 1.3, johon julkaistiin pieniä päivityksiä vuoden 2019 aikana viisi kappaletta ja yksi vuonna 2020. Seuraava suurempi versiojulkaisu (1.4) saapuu arviolta keväällä 2020, eli ihan lähiaikoina. 

Kotlinin tulevaisuus ylipäänsä vaikuttaa mielenkiintoiselta. Vaikka Kotlin tunnetaan ainakin toistaiseksi lähinnä Android-ohjelmoinnista, sillä voi toteuttaa myös palvelinpään ratkaisuja. Java-virtuaalikone ei myöskään ole ainoa vaihtoehto – työn alla on myös natiivikoodiksi käännettävä versio Kotlin Native. Tämä mahdollistaisi myös iOS-sovellusten toteuttamisen Kotlinilla.

Punoksen mielipide

Mikäli uusi Android-sovellus aiotaan toteuttaa natiivikielellä, teknisestä perspektiivistä Kotlin on tätä nykyä ainoa vaihtoehto. Googlen ilmoitus Kotlin-keskeisyydestä ei jätä asiasta epäilyksen häivääkään. Android Java on yllättävänkin nopeasti matkalla kohti historian havinoita. Tästä kerrotaan lisää myöhemmässä Android Java -artikkelissamme.

Entä jos natiivikielivalintaa ei ole vielä hakattu kiveen? Miten Kotlin pärjää korkeamman tason valintaprosessissa Web-teknologiapinoja vastaan? Asiaan liittyy useita kysymyksiä: pitääkö tukea molempia alustoja, tarvitaanko edistyneimpiä rautatason tekniikoita tai vaaditaanko käyttöliittymältä äärimmilleen viritettyä vasteaikaa.

Mikäli tarkoituksena on maksimoida käyttäjäkokemus, rahapussin nyörien kireyden asemesta, ei ole Kotlinin voittanutta. Monialusta- tai Web-ohjelmointikehysten potentiaaliset säästöt eivät ole tässä tapauksessa millään tavalla osa valintaprosessia. Siinäkin tapauksessa, että sama sovellus tullaan tekemään molemmille mobiilialustoille, erillisten natiivisovellusten tekeminen ja ylläpitäminen on poikkeuksetta vaivan ja hinnan väärti.

Miten sitten kannattaa toimia vanhojen Android-sovellusten ylläpidon tai jatkokehityksen kanssa? Vastaus valitettavasti on: se riippuu. Kotlinilla voidaan jatkokehittää mitä tahansa alkujaan Javalla tehtyä Android-sovellusta. Lähinnä kyse on saatavilla olevista henkilöstöresursseista.

Mitä sarjassa on luvassa seuraavaksi?

Kiitos kun luit ensimmäisen osan Punos Mobilen “Ohjelmointikielet Suomen mobiilikehityksessä 2020” -julkaisusta!

Kyseessä on vuosittain julkaistava katsaus mobiilisovellusten toteutusteknologioihin Punoksen kokonaisnäkemyksen pohjalta.

Eri teknologioiden suosion seuraaminen on mielenkiintoista alalla työskenteleville. Asialla on myös vakavampi puoli. Teknologiatrendien seuraaminen tukee teknologiaosaamisen hallintaa niin yksittäisen työntekijän kuin koko yrityksenkin tasolla.

Koska nyt on tämän julkaisun vuosi nolla, päätavoitteena on luoda pohja pitkälle julkaisutraditiolle. Tulevina vuosina rakennetaan edellisen vuoden tietojen päälle ja tutkitaan muutostrendejä eri teknologioiden käytön suhteen.

Teknologiat

Teknologiakohtainen sisältö jakautuu kahteen osaan. Aluksi luodaan katsaus yksittäisten ohjelmointikielten ja ohjelmointikehysten elämäntilanteisiin. Yleistasoisen tilannekatsauksen jälkeen kerrotaan Punoksen mielipide kyseisestä teknologiavalinnasta.

Punoksen mielipide on yleisluontoinen ja perustuu yrityksen sisäiseen näkemykseen. Punoksen henkilöstöllä on kokonaisuutena hyvin laajalti työkokemusta ja osaamista. Järjestelmätasolla skaala ulottuu älykelloista monikansallisten organisaatioiden järeisiin ERP-järjestelmiin. Ohjelmointikielistä ja -kehyksistä ammattimainen osaaminen kattaa kaikki relevantit natiivikielet ja Web-ohjelmointikehykset.

Lopuksi

Entä mitäpä kuuluu vanhalle Androidin työjuhdalle Javalle Suomen mobiilikehityksessä? Käsittelemme tätä seuraavassa Ohjelmointikielet Suomen mobiilikehityksessä 2020 -julkaisun osassa.

Päivitys 14.7.2020: Voit myös lukea koko artikkelisarjan tyylikkäänä .pdf:nä tilaamalla sen täältä.

Kotlin on Kotlin Foundationin tavaramerkki. Android on Google LLC:n tavaramerkki. Java on Oracle Corporationin rekisteröity tavaramerkki. Swift, Objective-C, OS X ja Xcode ovat Applen rekisteröityjä tavaramerkkejä. Linux on Linus Torvaldsin rekisteröity tavaramerkki.