R-ohjelmointikieli on tärkeä työkalu numeerisen analyysin ja koneoppimistilojen kehittämiseen. Koneiden tullessa yhä tärkeämmiksi tiedontuottajina kielen suosion voidaan odottaa kasvavan vain. Mutta R: llä on sekä hyviä että huonoja puolia, jotka kehittäjien tulisi tietää.
Kiinnostus kieltä kohtaan kasvaa, kuten kielen suosioindekseissä, kuten TIobe, PyPL ja Redmonk, näkyy, R ilmestyi ensimmäisen kerran 1990-luvulla ja on toiminut S-tilastollisen ohjelmointikielen toteutuksena. Huomauttaa Roger Peng, 18-vuotias R-ohjelmointiveteraani, joka opettaa R: tä sekä yliopistossa että Coursera-verkkoalustalla: "R on tilastojen alalla suosituin kieli."
"Pidän [R]: stä, koska se on erittäin helppo ohjelmoida tietotekniikan y-tasolta", Peng sanoo. Ja R on nopeutunut ajan myötä ja toimii liimakielenä eri tietojoukkojen, työkalujen tai ohjelmistopakettien kokoamiseen, Peng sanoo.
"R on paras tapa luoda toistettavia ja laadukkaita analyysejä. Sillä on kaikki joustavuus ja voima, jota etsin käsitellessäni dataa", kertoo Matt Adams, online-ohjelmointikoulutusta tarjoavan Code Schoolin datatieteilijä. "Suurin osa ohjelmista, jotka kirjoitan R: ssä, ovat itse asiassa vain projektikokoelmia."
R: n vahva pakettiekosysteemi ja etujen kartoittaminen
R: n etuihin kuuluu sen pakettiekosysteemi. "Pakettien ekosysteemin laajuus on ehdottomasti yksi R: n vahvimmista ominaisuuksista - jos tilastollinen tekniikka on olemassa, on todennäköistä, että sille on jo olemassa R-paketti", Adams sanoo.
"Sisäänrakennettu paljon toimintoja on rakennettu tilastotieteilijöille", Peng sanoo. R on laajennettavissa ja tarjoaa kehittäjille runsaasti toimintoja rakentaakseen omat työkalunsa ja menetelmänsä tietojen analysoimiseksi, hän sanoo. "Ajan myötä siihen on houkutellut paljon enemmän ihmisiä muilta aloilta", mukaan lukien biotieteet ja jopa humanistiset tieteet.
"Ihmiset voivat laajentaa sitä tarvitsematta pyytää lupaa." Peng muistuttaa R: n käyttöehtoja suureksi avuksi monta vuotta sitten. "Tuolloin, kun se ensimmäisen kerran ilmestyi, suurin etu oli, että se oli ilmainen ohjelmisto. Lähdekoodi ja kaikki siihen liittyvä oli nähtävissä."
Kaikki R: n grafiikka- ja kartoitusominaisuudet ovat Adamsin mukaan vertaansa vailla. Dplyr- ja ggplot2-paketit tietojen käsittelyyn ja piirtämiseen ovat "kirjaimellisesti parantaneet elämänlaatua", hän sanoo.
Koneoppimisessa R: n edut liittyvät lähinnä R: n vahviin siteisiin korkeakouluihin, Adams sanoo. "Kaikilla uusilla alan tutkimuksilla on todennäköisesti mukana mukana oleva R-paketti alusta alkaen. Joten tässä suhteessa R pysyy kärjessä", hän sanoo. "Caret-paketti tarjoaa myös melko hienon tavan tehdä koneoppiminen R: ssä suhteellisen yhtenäisen API: n kautta." Peng huomauttaa myös, että R: ssä on otettu käyttöön monia suosittuja koneoppimisalgoritmeja.
R: n puutteet turvallisuudessa ja muistinhallinnassa
Kaikista eduistaan huolimatta R: llä on osuus puutteista. "Muistin hallinta, nopeus ja tehokkuus ovat luultavasti R: n suurimmat haasteet", Adams sanoo. "Edistymistä näillä rintamilla on edistytty ja tehdään edelleen. Myös muilta kieliltä R: lle tulevat ihmiset saattavat pitää R: tä omituisena."
R: n perusperiaate on peräisin 1960-luvulla rakennetuista ohjelmointikielistä, Peng sanoo. "Tässä mielessä se on eräänlainen vanha tekniikka samalla tavalla kuin se alun perin suunniteltiin." Kielen suunnittelu voi joskus aiheuttaa ongelmia työskennellessä erittäin suurten tietojoukkojen kanssa, hän sanoo. Tiedot on tallennettava fyysiseen muistiin. Mutta kun tietokoneet ovat saaneet enemmän muistia, tästä on tullut vähemmän ongelma, Peng toteaa.
R-kielelle ei ollut rakennettu valmiuksia, kuten turvallisuutta, Peng sanoo. R: ää ei myöskään voida upottaa verkkoselaimeen, Peng sanoo. "Et voi käyttää sitä verkko- tai Internet-tyyppisiin sovelluksiin." R: n käyttäminen back-end-palvelimena laskujen tekemiseen oli periaatteessa mahdotonta, koska se ei ollut turvallinen Webissä, hän sanoo. Turvallisuuskysymystä on kuitenkin lieventänyt kehitys, kuten virtuaalisten säiliöiden käyttö Amazon Web Services -pilvialustalla, Peng sanoo.
Kielessä ei pitkään aikaan ollut paljon vuorovaikutteisuutta, hän sanoo. Javascriptin kaltaisten kielten on vielä täytyttävä ja täytettävä tämä aukko, Peng sanoo. Vaikka analyysi voidaan tehdä R: ssä, tulokset voidaan esittää eri kielillä, kuten JavaScript, hän sanoo.
R ei ole vain edistyneille ohjelmoijille
Silti Adams ja Peng näkevät molemmat R: n esteettömänä kielenä. "En ole kotoisin tietojenkäsittelytieteen taustasta, eikä minulla ole koskaan ollut pyrkimyksiä tulla ohjelmoijaksi. Ohjelmoinnin perusteiden tuntemus auttaa varmasti, kun lisäät R: n työkalupakkiisi, mutta en sanoisi, että se tarvitaan aloittamiseen", Adams sanoo.
"En edes sanoisi, että R on ohjelmoijille. Se sopii parhaiten ihmisille, joilla on dataan liittyviä ongelmia, joita he yrittävät ratkaista riippumatta heidän ohjelmointikykyistään", hän sanoo.