25.3.2022

Tekoälyavustajat koodin kirjoittamiseen: Testissä Tabnine

Markkinoilla on monia eri tekoälyavustajia koodin kirjoittamiseen. Tässä blogissa testasimme ja jaamme kokemuksia Tabninesta.

Nykypäivän markkinoilta löytyy erilaisia AI-avusteisia työkaluja koodin kirjoittamiseen. Tekoälyavusteiset työkalut koodin kirjoittamiseen auttavat ohjelmoijaa tarkistamaan koodia ja näin ollen helpottamaan ja parantamaan koodausta. Kyseisiä työkaluja ovat muun muassa GitHub Copilot, Alibaba Cloud Code AI Assistant ja Tabnine.

- Nopeesti selaamalla Tabnineä tunnuttiin kehuttavan paremmaksi. GitHub Copilot juuri saapui vasta markkinoille IntelliJ IDEA:an ja se vaatii pääsyn jonotuksen kautta. Alibaba Cloud Code AI Assistant:sta tuntuu taas löytyvän turhan vähän asiaa, sanoo Olli Raula Brightlyltä. Mietinnän jälkeen Raula päättikin ottaa testiin Tabninen.

- Tutkin mielelläni aina uusia tapoja parantaa ja mukavoittaa koodaustani. Tutustuin Tabnineen joskus vuosi sitten sattumalta. Asensin työkalun, sillä sen sai käyttöön yhdellä klikillä. Kuukausi sitten havahduin että mitähän tuo pro-versio toisi lisää siihen. Otettiin se sitten käyttöön, sanoo Raula.

Testissä Tabnine

Raula asensi ja testasi Tabninen. Hän koki, että Tabninesta oli hyötyä.

- Voin väittää että Tabninestä on hyötyä. Aika arvoin näkee tabnine pro:n mainostamia monen rivin täydennyksiä, mutta onelineritkin ovat kivoja. Pro-versio osaa tutustua omaan koodiin ja kouluttaa mallia. Ilmainen versio taas käyttää vain valmista mallia, pohtii Raula.

Tabnine ymmärtää muun muassa tekstistä ehdottaa oikeita muuttujia.Esimerkki: Jos kirjoitat fmt.Sprintln(“got mes se osaa ehdottaa valmiiksi ssage: %s”, string(message)) mikä on täysin se mitä halusinkin. Tämä koodi oli GO:ta ja Tabnine väittää, että esimerkiksi Pythonille kyseinen toimisi vieläkin paremmin.

Tabninen Pro-versio maksaa 15 dollaria kuussa, joten Raulan vertailu jatkuu vielä ilmaisen ja maksullisen Pro-version välillä. Pro-versio tarjoaa toki enemmän parempia ehdotuksia, mutta onko ne 15 dollarin arvoisia kuukaudessa, sillä ilmaisversiostakin on jo hyötyä.

- Yhteenvetona voisi sanoa että pro:lla on enemmän parempia ehdotuksia, mutta kyllä free-versiostakin on hyötyä. Asennettaessa tuo lataa tekoälymallin, ilmaisversiossa se on noin 200 megaa kun taas pro:ssa noin 600.

Vertailun vuoksi teimme konkreettisia esimerkkejä. Alla olevat esimerkit ovat erittäin proto-vaiheessa olevasta ilmalämpöpumpun ohjaussoftasta.

Esimerkit – Tabnine

Commenttien täydennykset toimii huomattavasti paremmin Pro-versiossa. Alla esimerkki siitä. Ilmaisversio ei monesti edes yritä kyseisiä täydennyksiä.

Simppeleissä if-täydennyksissä ei versioilla ole eroa:

Seuraavassa esimerkissä huomaa että molemmat tekoälyt osaisivat kyllä täydennyksen, mutta luultavasti ilmaisversiossa on rajoitettu täydennyksen pituutta.

Seuraavassa esimerkissä voi huomata, että useammasta ehdotuksesta on monesti hyötyä:

Joskus kumpikin ehdottaa kaikkea erikoista. Nopealla hakemisella emme keksineet, mistä tuo tulee. Kerrothan meillekkin, mikäli satut tietämään vastauksen:

Seuraavassa esimerkissä voi huomata, miten hienosti Tabnine kaivaa muuttujia lähdeaineistosta. Epäselväksi vielä jäi, miksi ei-tabnine ehdotuksia on enemmän Pro-versiossa.

Go:n struct tageissa on Tabninestä monesti paljonkin hyötyä. Kyseisiä tageja tulee kirjoitettua kuitenkin monta riviä kerrall. Monessa tapauksessa Tabnine osaa päätellä muuttujan tyypin sen nimestä.

Tässä kyseisessä esimerkissä on yllättävän iso ero ilmais- ja Pro-versiolla. Perus loopin luulisi oleva simppeli täydennettävä, mutta ero Pro-versioon on tässä suhteessa huima.

Yhteenveto Tabninen käytöstä

Kuten esimerkeistä huomaa, ei täydennykset ole kovin pitkiä. Pro-versiossa pitäisi olla experimenta-tuki myös monen rivin täydennyksille, mutta niitä näkee tosi harvoin.Tabninen sivuilla on esimerkkejä ja tuntuu että GO:lla tuo täydennys ei ole ihan niin hyvä, kuin esim JS:n kanssa.

GitHub Copilot mainostaa sivuillaan kokonaisten funktioiden autocompletea. Kokeilemme sitä seuraavaksi, kun sen saa Ideaan.

Monet ajatelevat, että eivät halua AI-avusteista työkalua koodin kirjoitukseen, koska se vie työn. Me emme ole sitä mieltä.

- Avointa koodia on niin paljon, että kyllä kooditekoälylle on koulutusmateriaalia eikä tämä edes jaa koodia mihinkään. Tällä ei myöskään ole apua koodauksen vaikeisiin asioihin, helpottaa vaan sitä simppeleintä asiaa, pohtii Raula.

Yhteenvetona voimme sanoa, että kaikille tästä ei ole hyötyä. Jos on nopea kirjoittamaan koodia, niin ehdotusten katselu ei nopeuta tekemistä. Jos taas koodin kirjoitusnopeus ei ole valttikortti on Tabninesta ainakin jonkin verran hyötyä. Typoja Tabnine tekee ainakin vähemmän kuin itse kirjoittaessa. Ilmainen versio on täysin ilmainen, joten ainakin sitä kannattaa edes kokeilla.

- Lisäksi ainakin minulle tuosta saa kivaa viihdettä työpäivän lomaan, saa arvailla mitähän se tälläkertaa keksii. Mielenkiinnolla myös seuraan kehitystä, Raula mainitsee.

BRIGHTLYJA AJATUKSIA