IoT-laitteiden ohjelmointi ei ole enää vain sulautettujen järjestelmien ja C-kielen asiantuntijoiden osaamisaluetta. Uusi tutkimus osoittaa, että myös skriptikielet, kuten Pythonin eri versiot, voivat tarjota toimivia vaihtoehtoja älylaitteiden sovelluskehitykseen – vaikka suorituskyvyssä on eroja.
Esineiden internetin (IoT) laitteiden ohjelmointi ja sovellusten toteuttaminen on perinteisesti vaatinut C-kielen osaamista ja perustietoja sulautetusta järjestelmstä. Tällaisia laitteita ovat esimerkiksi älykodin termostaatit, valot ja valvontakamerat.
Tuore tutkimus osoittaa, että skriptikielet voivat helpottaa IoT-laitteiden ohjelmointia. Niitä käytetään jo laajasti useissa sovelluksissa, joten monille sovelluskehittäjille ne ovat tuttuja.
Tutkimuksessa verrattiin viittä erilaista ohjelmointikieltä, joita voi käyttää IoT-laitteiden ohjelmoinnissa. Tutkijat selvittivät kuinka paljon cpu-aikaa ja muistia kielet käyttävät erilaisissa algoritmeissä (CRC32, SHA256) sekä kuinka nopeasti ne reagoivat ulkoisiin keskeytyksiin. Tulokset auttavat valitsemaan parhaan ohjelmointikielen eri tarpeisiin. Esimerkiksi joku kieli voi kuluttaa vähemmän muistia kuin toinen, mikä voi olla tärkeää pienissä laitteissa. Tutkimuksen mukaan skriptikielet ovat toimiva vaihtoehto IoT-laitteiden ohjelmointiin, mutta niiden suorituskyky voi olla heikompi kuin perinteisempien ohjelmointikielten.
Tutkimus osoitti, että yksiselitteistä parasta ohjelmointikieltä ei ole. Sen sijaan valinta riippuu käyttötarkoituksesta. Esimerkiksi:
Statechart4IoT on hyvä valinta, kun sovellukselta vaaditaan reaaliaikaisuutta ja visuaalista ohjelmointia.
MicroPython sopii hyvin joustavuutta ja nopeaa prototyyppien rakentamista varten.
CircuitPython on paras aloittelijoille ja opetuskäyttöön.
NodeMCU on hyvä, kun laitteeseen pitää yhdistää muita ohjelmia.
Espruino on paras valinta, kun muistin kulutus on tärkeä kriteeri.
Tutkimusraportti julkaistaan ”Proceeding of IEEE 36th International Symposium on Personal, Indoor and Mobile Radio Communications (PIMRC), 2025, Istanbul”: https://pimrc2025.ieee-pimrc.org/