Low-code ja no-code programmeerimine

From ICO wiki
Jump to navigationJump to search

Autorid: Kerli Saarniit, Ketlin Loob, Andrus Rähni, Mikk Lahe

Sissejuhatus

Traditsiooniline programmeerimine on manuaalne protsess – see tähendab, et inimene (programmeerija) loob programmi koodimisega/programmeerimisega valitud keelega. Kuid ilma, et keegi loogikat programmeeriks, tuleb reegleid käsitsi sõnastada või kodeerida. [1]

Eesti keeles on väljendid low-code ja no-code suhteliselt uued – otsetõlkes on need siis vähese koodi vajadusega või koodivabad lahendused.[2]

Low-code

Low-code ehk vähese koodi vajadusega programmeerimine on tarkvara arenduslahendus, mis vähesel või pea olematul määral kasutatakse koodimist rakenduste ja tarkvaraliste protsesside loomiseks. Kompleksete programmeerimiskeelte asemel saab kasutada visuaalset kasutajaliidest (drag-and-drop vooplokkskeemid, visuaalsete blokkidega). Kasutajatel ei pea olema kõrgeid teadmisi programmeerimisest ega tarkvaraarendusest, et luua kasutajaliidese abil mobiili- või ärirakendusi.[3]

Low-code efekt tuleneb sellest, et väga palju tarkvarast on võimalik luua vaid hiirega erinevaid elemente liigutades. Tulemust on võimalik koheselt näha nutitelefonis või arvutis.[4]

Low-code on visuaalne lähenemine tarkvara arendusele, optimeerides kogu arendusprotsessi ning kiirendada tarnet. Low-code-iga saab abstraheerida ning automatiseerida igat rakenduse sammu.[5]

Ükski low-code / no-code platvorm ei ole seotud konkreetse operatsioonisüsteemi, kindla andmebaasiga ega programmeerimiskeelega.

Baasfunktsionaalsused (kasutaja loome, logimine, piltide haldamine) on kõikjal pea sama, erinev on ainult disain. Baasfunktsionaalsused on pandud kui visuaalsetesse blokkidesse.

No-code

No-code programmeerimisplatvormid kasutavad visuaalset arendusliidest, et võimaldada mittetehnilistel kasutajatel luua rakendusi, pukseerides (ing kl drag-and-drop) tarkvarakomponente, et luua täielik rakendus. Kasutajad ei vaja koodita rakenduste loomiseks varasemat kodeerimiskogemust ja saavad arendada põhilisi, kuid toimivaid rakendusi, kasutades visuaalset, koodita pukseerimis-arhitektuuri. Tõenäoliselt ei saa kasutaja pärandsüsteeme ümber teha ega ka väga tõhusalt kiirendada ning integreerimisvõimalused on piiratud.[3]

Erinevused ja sarnasused

Low-code No-code
Keda teenindab? Arendajaid Ettevõtte kasutajaid, lihtkasutajaid
Peamine eesmärk Arenduskiirus Kergem kasutatavus
Koodimine? Madal, kuid siiski olemas Koodimist ei ole vaja
Kohandatavus Täielik kohandatavus Eeldefineeritud malle saab kohandada
Platvormi sõltuvus Võib vabalt erinevaid platvorme vahetada Mõnede platvormide vahel lõimumine keerulisem
End-to-end arendus Kõik platvormid võimaldavad end-to-end arendust Mõnedel platvormide piiratud võimalused
Siht Järgmise generatsiooni tarkvaraarenduse tööriist professionaalsetele arendajatele Iseteeninduslik rakendus ärikasutajatele
Rakenduste komplektsus Saab luua komplektseid rakendusi Saab vaid lihtsamaid rakendusi luua
Kuluefektiivsus Kuluefektiivne ettevõtetele, kel on grupp arendajaid, programmeerijaid Kuluefektiivne ettevõtetele, kel pole otseselt IT-tiimi ega pole kõrgeid nõudmisi IT-le

Tabel 1. Low-code vs no-code[3]

Erinevused traditsioonilisest programmeerimisest

Kui low-code ja no-code arendusplatvormid võimaldavad nii professionaalsetel, hobitaseme arendajate kui ka arendushuvilistel kiiresti rakendusi arendada, kasutades drag-and-drop liideseid, siis traditsioonilise arenduse puhul kasutatakse tavapäraseid arenduse meetodeid. Järgnevalt tuuakse välja mõned olulisemad erinevused low-code/no-code ja traditsioonilise tarkvara arenduslahenduste vahel.

Oskused

Traditsiooniline arendus nõuab sügavamate programmeerimis- ja tarkvaraarendusalaste oskuste ning teadmiste olemasolu. Traditsioonilise tarkvara arendusviisiga kaasneb üldjuhul mitmesuguseid vahendeid ja erinevaid funktsioone, mis võimaldavad arendajatel luua väga keerulisi rakendusi. Selleks, et olla võimeline nende rakenduste kallal tegutsemiseks, on vaja omada tehnilisi ja keerukaid IT-alaseid oskusi.

Low-code/no-code arendusmudel toob programmeerimise tavainimesel lähemale, sest ei nõua sügavaid arendusealaseid teadmisi. Niisugused platvormid sisaldavad üldjuhul väheseid tööriistu ja funktsioone eesmärgiga pakkuda kasutajatele kiiret ja vaevatut tarkvaraarenduse kogemust ilma tehnilisi teadmisi omamata.

Kvaliteet

Traditsioonilise arenduse kõrgete tehniliste omaduste ja keerukuse tõttu kipub tekkima palju vigu, mistõttu võib rakenduse kasutamine liialt keeruliseks osutuda. Low-code/no-code arenduse puhul ei teki rakenduste loomisel üldjuhul vigu. See tagab loodud rakenduse sujuva ja tõrgeteta töö.

Hind

Kuigi maksumus sõltub projekti ulatusest, keerukusest ja kliendi vajadustest, on traditsioonilistel viisil tarkvara arendus väga kallis. Suurimat väärtust pakub see suurettevõtetele, kes vajavad individuaalset ehk rätsepatöö (ingl kl custom-made) lahendust, mida on raskem luua low-code/no-code platvormide abil.

Low-code/no-code platvormide kasutus on võrreldes traditsioonilistega palju odavamad. Seda peamiselt seetõttu, et Low-code/no-code platvormide puhul maksab ettevõte ainult kindlale teenusele juurdepääsu eest, mitte selle algusest lõpuni arendamise eest.

Agiilsus

Traditsioonilistel arendusplatvormidel on üldiselt keeruline konfiguratsioonisüsteem, mis muudab need vähem paindlikuks. Lisaks nõuab nende selgeks õppimine ja kasutamine nende keerukate koodide tõttu palju aega.

Seevastu low-code/no-code platvormide kasutamine on tänu drag-and-drop liidestele tunduvalt lihtsam ja kiirem. low-code/no-code platvormi abil saab koodide kirjutamise asemel kasutada joonistamismeetodeid.

Hooldus

Traditsioonilise koodimise puhul on ülalpidamine ja täiustamine suureks peavaluks, sest värskendamine nõuab muudatuste tegemiseks spetsiaalset ettevõttesisest või kolmanda osapoole arendusmeeskonda, ning mõningatel juhtudel on sellejärgselt vaja läbi viia ka kasutajate koolitamine uute muudatuste osas.

Vastupidiselt traditsioonilisele low-code/no-code platvormide eest hoolitsevad ja vastutavad platvormide omanikud. See toob suurimat kasu just väikeettevõtetele, sest niisugune mudel võimaldab neil kasutada hästi hooldatud tarkvara ilma, et nad peaksid maksma kolmanda osapoole hooldusteenuse eest või omama ettevõttesisest arendusmeeskonda.

Low-code arendus Traditsiooniline arendus
Definitsioon Low-code arendus on tarkvararakenduste arendamine graafilise kasutajaliidese ehk visuaalse modelleerimise abil. Traditsiooniline arendus on tarkvararakenduste arendamine käsitsi koodimise ehk programmeerimise abil.
Tööriistad Kiire rakenduste arendamise tööriistu nagu Mendix ja Appianit kasutatakse low-code veebirakenduste arendamiseks. Arendajad kasutavad veebiraamistikke ja programmeerimiskeeli veebirakenduste koodimiseks.
Koodimisalased teadmised Nõutavad minimaalsed teadmised. Low-code arendajatelt on nõutavad põhiteadmised koodimisest. Professionaalsed veebiarendajad, kellel on täiustatud koodimisoskused ja teadmised mitmest veebiraamistikust, töötavad traditsiooniliste veebirakendustega.
Arenduskiirus Low-code arendusplatvormid (LCDP) on tuntud oma kiire arengu poolest. Töötava veebirakenduse saab välja töötada 1–3 nädalaga. Traditsiooniline arendus nõuab koodimist ja selle valmimiseks võib kuluda 2–8 kuud. Kuid jõudluse osas töötab traditsiooniline paremini.
Kohandamine LCDP-platvormidega saab oma veebirakendusele lisada väga piiratud kohandusi. Traditsioonilise kodeerimisega saab veebirakendust kohandada vastavalt erinõuetele.
Agiilsus Low-code rakendused on paindlikumad, kuna saab kiiresti muudatusi teha. Uute rakenduste lansseerimised on kiiremad ning kõik vead saab tagasi pöörduda ja neid lahendada. Traditsioonilise kohandatud arenduse korral võivad muutused olla aeglased. Kuid agiilseid arendustavasid järgides võivad traditsioonilised veebirakendused olla kiiremad.
Kasutuselevõtt Low-code rakenduste juurutamine on kiire. Kuid juurdepääs on piiratud platvormidele. Sõltuvalt kasutatavatest low-code tööriistadest saab juurutada ainult toetatud platvormidele. Traditsiooniliste veebirakenduste abil saab neid vabalt juurutada mistahes ja kõikidele platvormidele.
Kvaliteet
  • Integreeritavus on piiratud
  • Skaleeritavus on piiratud
  • Jõudlus ja kiirus on standardsed
  • Reaalajas silumisega on rakendus veatu
  • Integreeritav kõikide süsteemidega
  • Kõrge skaleeritavus
  • Jõudlus ja kiirus on äärmiselt kõrged
  • Testimine ja silumine nõuavad aega
Hooldus Low-code rakendusi on suhteliselt lihtne hooldada. Kui ettevõte värskendab low-code platvormi, värskendatakse ka low-code veebirakendusi automaatselt. Nii kulutab tavahooldusele minimaalselt ressursse. Kohandatud veebirakendusi võib olla keeruline regulaarselt värskendada ja hooldada. Koodi iga kord värskendamiseks vajab spetsiaalset meeskonda.

Tabel 2. Low-code vs traditsionaalne koodimine[6]

Plussid ja miinused

Plussid [7]

  • töötab eeldefineeritud komponentidest/blokkidest
  • lihtne elementide/komponentide omavaheline seostamine
  • väike või olematu võimalus süntaksi vigadele
  • No-code platvormi puhul kuluefektiivne (ei pea omama arendustiimi)

Madalamad kulud

Low-code/no-code arendusteenustega väheneb aeg ja kulud oluliselt ning ettevõtted ei pea palkama nii palju arendajaid.

Lisaks, kui valida oma toote jaoks koodita arenduse, naudite paindlikkust, mida agiilne meetod pakub, kuna need platvormid toetavad versioonimist kõigi rakenduses tehtud muudatuste jaoks.

Agiilsus

Low-code/no-code arendused võimaldavad organisatsioonidel kiiremini areneda ja muudatusi teha. Oskused, mis on vajalikud low-code/no-code arendustoodete loomiseks, on palju väiksemad kui kohandatud arendusega, kuna need pakuvad konfiguratsioonipõhist disainikogemust.

Parem riskijuhtimine

Pidevalt muutuvate eeskirjadega saavad ettevõtted nõuetele Low-code/no-code lähenemisviisi korral kiiresti muudatusi teha.

Lisaks kõik konfiguratsiooniprotsessid on antud juhul (sealhulgas koodi kirjutamine, kompileerimine ja silumine) palju kiiremad, võrreldes traditsiooniliste arendusmeetoditega.

Parem kliendikogemus

Low-code/no-code platvormid automatiseerivad mitmeid kliendikogemuse jaoks olulisi toiminguid. Rakenduste arendamise paindlikkus ja tugevad äriprotsesside funktsioonid aitavad luua paremaid rakendusi, parandades seeläbi üldist kliendikogemust.

Suurenenud tootlikkus

Low-code/no-code platvormid aitavad ületada lõhet IT- ja ärimeeskondade vahel, võimaldades neil lahendada tegelikke küsimusi, mis ettevõtet mõjutavad.

Seda lähenemisviisi kasutades saavad ärimeeskonnad luua oma rakendusi, ilma et peaksid ootama arendajaid. See välistab vajaduse keeruka koodi järele, mis suurendab juurdepääsu rohkematele meeskonnaliikmetele ja suurendab tootlikkust.

Miinused [8]

  • puudub sügavam arusaam kuidas tarkvara töötab
  • tagataust sõltub ikkagi suuresti kõrgkeele programmeerijatest

Kolmanda osapoole usaldusväärsus

Low-code/no-code arendusplatvormide puhul tuleb riskide maandamiseks ja haavatavuste eemaldamiseks enamasti lootma müüjale ning muutma värskenduste ajakava, et see ühtlustuks müüja omaga.

Kohandamise puudumine

Low-code/no-code arendusplatvormid pakuvad ettevõtetele üldiselt väga vähe võimalusi kohandatud või eritellimusel valmistatud tarkvara/rakenduste arendamiseks.

Piiratud integreerimisvõimalused

Rakenduste loomine low-code/no-code arendusplatvormile piirab arendajate integreerimisvõimalusi. See võib olla suur väljakutse ettevõtetele, kelle pärandsüsteemid on nende äritegevuse jaoks üliolulised.

Arendajate puudus

Kuna low-code/no-code arendus on ebaselge valdkond, on ettevõtetel raske leida arendajaid, kes oskaksid vähesel määral low-code/no-code arendust teha, harvadel juhtudel, kui nad seda nõuavad.

Kasutusalad

Low-code/no-code peamised kasutusalad on ettevõtetes, kus vaja luua äriprotsesse toetav arvuti- või mobiilirakendus. Põhilised elemendid on kasutajatehaldus, äriprotsesside automatiseerimine, andmehaldus, raportite loome, arvepidamine ning erinevate teenuste omavaheline seotus.

Koolilastele programmeerimise tutvustamine

Koodi tundmise oskus on tänapäeva digiajastul üks enim nõutud oskusi. Lapsed on väga loomingulised ja võimelised uusi asju õppima väga kiiresti. Pea-ees sukeldumine keerukasse programmeerimise keelde võib pigem tekitada vastakaid tundeid. Seepärast on väga hea alustada low-code või no-code platvormil. Kuna peamiselt on tegemist visuaalse ehitamisega, mis vajab vähest või mitte mingisugust programmeerimise teadmist - annab see lastele võimaluse luua rakendusi, ilma et koodi süntaksi tundmine oleks takistuseks. Lihtsama rakenduse ehitamine kasutades low-code vahendeid võtab lapsele aega umber paar tundi. See aitab neil tõsta enesekindlust ja uudishimu rakenduste arendamise suhtes. Kuna laste huvi võib olla kiire kaduma, siis on kiire tulemuse nägemine nende jaoks kindlasti väga oluline. Lisaks vähese koodi teadmisega saab laps juba ehitada mõne mängu, mida oma sõpradega jagada.[9]

Hollandis külastasid no-code arendajad kooliaasta alguses 12-aastaseid lapsi. Lastele anti kätte seade ja lihtne rakendus, mis koosnes tekstisisestus väljast, ühes nupust ja andmevoost. Peale töövooga tutvumist: tekstisisestus, salvestamise nupule vajutamine ja teksti kuvamine andmevoos - said kõik ülesandeks luua enda väljanägemisega WhatsApp'i või Instagram-i analoogse rakenduse. 1,5-tunnise töötoa lõpuks said kaheksast nelja lapselisest meeskonnast neli valmis oma töötava rakenduse. Töötoa korraldajad leidsid, et no-code arendamine vs traditsiooniline arendamine annab paljudele erialadele (disainerid, tootejuhid) võimaluse võtta arendaja rolli.[10]

Yamaha ProVisionaire Amp Editor

Yamaha helivõimendite sisendite ja väljundite modifitseerimiseks on no-code redaktor nimega ProVisionaire Amp Editor. Windows-baasil töötav rakendus võimaldab siduda sisendhelikanalid erinevate blokkidega (valjusus, delay, heliekvalaiser, kaja, kompressor, limitaator jpm), grupeerida kanaleid, lisada filtreid, peenhäälestada heli.[11]

DaVinci Resolve

Sarnaselt Yamaha tootele, on filmitööstuses tarkvara DaVinci Resolve, millega on võimalik filmi toormaterjalist värviparandusi teha, kasutades vooblokkskeemi lahendust.

File:Https://cdn3.volusion.com/vhf4c.qknd4/v/vspfiles/photos/DV-RESSTUD-2.jpg

Rakendused / platvormid

  • Zoho Creator - äriteabe (Business-intelligence) koostamise platvorm, kus kasutatakse no-code-i
  • Visual LANSA - mobiilirakenduste loomiseks mõeldud platvorm, mis kasutab low-code-i
  • Knack - No-code-i kasutav ärirakenduste loomiseplatvorm
  • bubble.io - no-code rakenduste arendusraamistik, mis võimaldab disainida, arendada, majutada, skaleerida rakendusi ilma koodimiseta
  • Adalo - sarnaneb bubble.io-le, sisaldab erinevaid komponente nagu video- ja audiopleier, kalender, PDF generaator, Google Maps integratsioon jpm [12]
  • WordPress - low-code sisuhaldustarkvara
  • Weebly - low-code sisuhaldustarkvara
  • Squarespace - low-code sisuhaldustarkvara
  • VOOG - Eesti low-code veebiarendusplatvorm

Ajalugu

Low-code ja no-code programmeerimine ei ole uus programmeerimise strateegia, kuid selle populaarsus on viimastel aastatel kasvanud. Kui mõista low-code ja no-code termineid nii, et need tähendavad programmeerimise lahendust, mis vähendab oluliselt koodi kirjutamiseks vajalikku pingutust. Võib väita, et esimesed kõrgetasemelised programmeerimiskeeled, sealhulgas Fortran ja COBOL[13], olid midagi ligikaudset madala koodiga platvormidele. See päästis arendajad rakenduste masinkoodi kirjutamisest.

Järgmine suur hüpe low-code ja no-code programmeerimises oli Apple'i HyperCard'i[14] väljalaskmine 1987. aastal. HyperCard oli arendusplatvorm ja raamistik, mis võimaldas programmeerijatel luua üsna keerulisi rakendusi ilma koodi kirjutamata. Nad võivad graafiliste menüüde abil määratleda liideseid ja funktsioone. HyperCard toetas ka skriptimist arendajatele, kes soovisid kooditaseme juhtimist, kuid see ei nõudnud seda. Kuigi HyperCard oli omal ajal edukas, lõpetas Apple 1998. aastal arenduse.

See ajaloo unustamine on loonud arendusplatvormi müüjatele võimaluse taaselustada low-code ja no-code programmeerimises eeldus. 2014. aastal võttis Forrester Research [15] kasutusele termini "low-code". Vähem selge on see, millal sai "no-code" tehnilise kõnepruugi tavaliseks osaks, kuid see oli kindlasti juba laialt levinud kolm-neli aastat tagasi. [16]

Tulevikusuund

Low-code / no-code programmeerimine on rakenduste arendamise tulevik. Low-code / no-code programmeerimise mängivad rakenduste tarnimise kiirendamisel üha olulisemat rolli. Gartner ennustab, et 2023. aastaks on üle 50% keskmistest ja suurtest ettevõtetest võtnud ühe oma strateegilise rakendusplatvormina madala koodiga või koodita koodi ning 2024. aastaks madala koodiga platvormid vastutavad enam kui 65% rakenduste arendustegevusest. Suurimatel ja rikkamatel ettevõttel on juurdepääs parimatele tehnilistele kogemustele ja arenenumatele arendustööriistadele. Koodivabad ja madala koodiga tööriistad ühtlustavad, andes igas suuruses organisatsioonidele võimaluse oma olemasolevate ressurssidega rohkem ära teha.[17]

Viidatud allikad

  1. Mondal, Buddhadeb. "Difference between Traditional Programming and Machine learning" (12.05.2020) Kaggle. Kasutatud 02.05.2022.
  2. Granlund, Stig. "Ärilahenduste uus ajastu ehk mida ja miks peaks teadma PowerAppidest" (28.12.2021) BCS Itera. Kasutatud 02.05.2022.
  3. 3.0 3.1 3.2 "Low Code Vs No Code: What’s the difference between Low-Code No-Code." (27.08.2021). Kissflow. Kasutatud 02.05.2022.
  4. "Low-code arendus ja Mendix arendusplatvorm". Neurisium. Kasutatud 02.05.2022.
  5. "What is Low-Code?" (07.04.2022). Mendix. Kasutatud 02.05.2022.
  6. Patel, Jeel. "Which Method to Use – Low Code vs Traditional Development?" Monocubed. (08.03.2022). Kasutatud 02.05.2022.
  7. "Benefits Of Low Code / No-Code Development" Maruti Techlabs (04.02.2022). Kasutatud 02.05.2022.
  8. "Downside Of Low Code / No-Code Development" Maruti Techlabs (04.02.2022). Kasutatud 02.05.2022.
  9. Arora, Vagisha. "How To Educate Children to Code?" Planet Crust. (24.09.2021). Kasutatud 02.05.2022
  10. Krouwels, Vincent. "Why we should teach kids no-code" Tinkso. (10.09.2019). Kasutatud 02.05.2022
  11. Yamaha ProVisionaire Amp Editor Yamaha. Kasutatud 02.05.2022
  12. Adalo Marketplace Adalo. Kasutatud 02.05.2022
  13. "Why Easy Software Development Is Making Things Hard for Development Careers" (18.01.2019). Kasutatud 02.05.2022.
  14. Apple HyperCard. Wikipedia. Kasutatud 02.05.2022.
  15. Forrester Research. Wikipedia. Kasutatud 02.05.2022.
  16. "The Evolution of Low-Code/No-Code Development" (30.11.2021). Kasutatud 02.05.2022.
  17. [ https://www.outsystems.com/blog/posts/low-code-vs-no-code/ "Low-Code and No-Code: What's the Difference and When to Use What?"]. OutSystems. (08.01.2021). Kasutatud 02.05.2022.