Visuaalinen ohjelmointi on eräänlainen ohjelmointikieli, jonka avulla ihminen voi kuvata prosesseja kuvituksen avulla. Siinä missä tyypillinen tekstipohjainen ohjelmointikieli saa ohjelmoijan ajattelemaan kuin tietokone, visuaalinen ohjelmointikieli antaa ohjelmoijan kuvata prosessin ihmisten kannalta järkevillä termeillä.

Juuri se, kuinka suuri kuilu visuaalisen ohjelmoinnin ja perinteisen ohjelmoinnin välillä on, riippuu visuaalisesta ohjelmointivälineestä. Toisessa ääripäässä työkalu suojaa ohjelmoijan lähes kokonaan ihmisajattelun ja muistissa bittejä sekoittelevien tietokoneiden väliseltä kuilulta.

Tässä on esimerkki. Luodakseen tehtävälistan visuaalisella ohjelmointityökalulla ohjelmoija piirtää sovelluksen kulun. Tuloksena syntyvässä vuokaaviossa kuvataan näytöt, käyttäjän vuorovaikutus ja se, mitä tiedoille tapahtuu kussakin vaiheessa. Työkalu muuttaa tämän sitten ohjelmistoksi.

Kehittäjinä tiedämme, että tekstipohjaiset ohjelmointikielet keskittyvät täysin toteutukseen: kyse on täsmällisistä vaiheista, jotka tietokoneen on tehtävä luodakseen kokemuksen, jonka haluamme antaa käyttäjälle. Toki korkeamman tason kielet ja nykyaikaiset kehykset antavat meille käteviä oikoteitä. Mutta kehittäjän tehtävänä on kääntää ihmisen tarpeet prosesseiksi, jotka sopivat tietokoneen rajallisiin kykyihin.

Muut visuaaliset koodausvälineet noudattavat samoja prosesseja ja paradigmoja kuin tekstipohjainen ohjelmointi. Kuvittele, että piirtäisit luokan ja sen suhteen instansoitaviin objekteihin sen sijaan, että kirjoittaisit kaiken tekstieditoriin.

Kaikki tämä kuulostaa hienolta! Mutta, saatat kysyä, missä ovat kaikki visuaaliset ohjelmoijat? Miksi kirjoitamme yhä koodia käsin? Tarkoittaako se, että visuaalinen ohjelmointi on huono idea?

Ennen kuin vastaamme näihin kysymyksiin ja sukellamme visuaalisen ohjelmoinnin nykytilaan, meidän on ymmärrettävä, mitä visuaalinen ohjelmointi oikeastaan on: mistä se on tullut, miten se on kehittynyt ja miksi.

Löydä visuaalisten kehitystyökalujen seuraava sukupolvi

Visuaalisen ohjelmoinnin ohjelmistojen lyhyt historia

Vaikka historia näyttääkin siltä, ei ole reilua väittää, että visuaalinen ohjelmointi rajoittui 1990-luvulla pelien luomispaketteihin, multimediatyökaluihin ja tietokantoihin. Rational Software (jonka IBM osti vuonna 2003) oli jo 1980-luvun puolivälistä lähtien kehittänyt muuta kuin käyttöliittymää käyttävää Ada IDE:tä. Lisäksi he ryhtyivät myös määrittelemään ohjelmistokehitysprosessia. Työ Rational Unified Processin parissa ja siihen liittyvät ponnistelut johtivat lopulta Unified Modelling Language -mallinnuskieleen, jonka avulla oli mahdollista dokumentoida järjestelmän jokainen osa ilman, että olisi tarvinnut kirjoittaa riviäkään koodia. Se muistutti visuaalista ohjelmointia, mutta tuottamatta suoritettavia ohjelmistoja.

UML tarjosi standardoidun ja kattavan kielen oliopohjaisten järjestelmien kuvaamiseen. UML-kuume iski kuitenkin joihinkin arkkitehteihin. The Pragmatic Programmer -kirjan toinen kirjoittaja Andy Hunt kertoo eräästä ohjelmistoprojektista, jossa arkkitehti käytti kaksi vuotta UML-kaavioiden laatimiseen, ennen kuin riviäkään koodia oli kirjoitettu.

Juuri kun ketterä lähestymistapa oli pääsemässä vauhtiin, UML näytti mahdollistavan kaikki vanhojen ohjelmistojen rakentamistapojen huonoimmat puolet: liian paljon suunnittelua ja liian vähän toteutusta. Suoritettava UML oli yritys lisätä tuo puuttuva palanen – suoritettava ohjelmisto. Useita toteutuksia ilmestyi, mutta niillä ei ollut suurta vaikutusta maailmassa, joka oli nopeasti siirtymässä PHP:hen, Ruby on Railsiin ja muihin dynaamisiin skriptikieliin.

Mielenkiintoista on, että yksi toteutettavan UML:n muoto, joka pysyi hengissä, tuli myös Rational Softwarelta. Rational Rose on työkalupaketti ohjelmistojen luomiseen UML:n avulla ja suoritettavan koodin tuottamiseen kohdekielellä, kuten C++:lla tai Javalla.

Case-näkymä Rational Rosessa. Kuvalähde: Assignment Help

Takaisin tulevaisuuteen: The State of Visual Programming Today

Historian perusteella saatat miettiä: onko visuaalinen ohjelmointi kuollut? Visuaalisen ohjelmoinnin harrastajat kertovat, että se on kaikkea muuta kuin kuollut. Kysy heiltä: ”Mitä visuaalinen ohjelmointi on?”, ja he nimeävät ensimmäiseksi hämärän alaan liittyvän työkalun. Sitten he kertovat, että tuo työkalu on todiste siitä, että visuaalinen ohjelmointi on elossa. Sillä välin sinä etsit sitä kuumeisesti Googlesta. Tuloksena opit paitsi mainitsemastaan työkalusta myös siitä hyvin erikoistuneesta maailmasta, jossa se on olemassa.

Visuaalisella ohjelmoinnilla on epäilemättä oma roolinsa, olipa kyse sitten syntetisaattoreiden ohjelmoinnista tai siitä, että UML:n harrastajat saavat aikaan onnistumisen tunteen. Yleisohjelmistoja varten maailma on kuitenkin yksinkertaisesti liian monimutkainen mallinnettavaksi puhtaasti visuaalisesti. Kun ”koodisi” näyttää prosessorin piirikaaviolta, on ehkä aika miettiä uudelleen visuaalisen ohjelmoinnin soveltuvuutta tehtävään.

Visuaalisen ohjelmoinnin ohjelmistot ovat yleensä rajoitettuja luojansa mielikuvituksen mukaan tavalla, joka ei haittaa yleiskäyttöisiä tekstimuotoisia ohjelmointikieliä.

Ja silti Visual Basicin, Delphin ja niiden jälkeläisten kaltaiset työkalut ovat osoittaneet meille, että ohjelmistojen rakentaminen visuaalisesti voi olla valtavan tehokasta; on vain olemassa pragmaattinen kompromissi, jossa joskus käsin kirjoitettu koodi on oikea ratkaisu.

Supertähdet vs. joukkueet: Visuaalisten ohjelmointikielten uusi elämä?

Nämä ohjelmoinnin alkuajat olivat kovia, se on varmaa. Mutta yksi henkilö saattoi ymmärtää ja olla asiantuntija kaikessa, mitä tarvittiin tuon ohjelmiston luomiseen. Jos olet tarpeeksi vanha, muistele 1980-luvun ohjelmistonimikkeitä. Oli tavallista, että yhdestä ohjelmoijasta tuli brändi omana itsenään.

Sid Meier, Mitch Kapor ja Jeff Minter saavuttivat jonkinasteista mainetta luomalla tunnettuja sovelluksia tai pelejä yksin tai korkeintaan yhden muun yhteistyökumppanin kanssa. Silloin ohjelmistojen ja laitteistojen päivityssyklit kestivät vuosia. Nykyään vitsailemme, että uusi JavaScript-kirjasto ilmestyy joka päivä. On kuitenkin totta, että nykyaikainen ohjelmistokehitys etenee tahtia, jossa monet meistä eivät pysy mukana.

Tänä päivänä ohjelmistoja rakentavat suurelta osin asiantuntijatiimit. Kun varhaiset kehittäjät tekivät kaiken itse, nykyaikaisessa ohjelmistokehitystiimissä saattaa olla yksi henkilö, jonka ainoa tehtävä on huolehtia CI-työkalusta. Kehittäjät viettävät kokonaisia uria keskittyen yhteen kehykseen tai alustaan. iOS-kehittäjät ovat iOS-kehittäjiä, eivät mobiilikehittäjiä. Ehkä kerran tai kaksi vuosikymmenessä web-kehittäjä saattaa vaihtaa suosikkikehystä. Hyvin harva kirjoittaa käsin assembleria ammattimaisesti.

Ei ole kyse vain siitä, että ohjelmistojen laajuus on muuttunut. Jossain määrin myös kehittäjät itse ovat muuttuneet. Ohjelmistoinsinööri on nykyään vain yksi ura muiden joukossa. Menneinä vuosikymmeninä se oli intohimo, jota harvat ihmiset harrastivat, joilla oli omistautumista opetella kokonaan uusi järjestelmä, jotta he voisivat kirjoittaa esimerkiksi Atari ST:n portin menestyneelle Amiga-pelilleen. Mutta se on ymmärrettävää: tietotekniikka ei ole enää kapea-alaista.

Tänä päivänä olemme maailmassa, jossa ohjelmistokehitys koostuu yhä monimutkaisemmista osista ja jossa kehittäjät ovat tavallisia ihmisiä, joilla on poikkeuksellisia erikoisuuksia. Tämä monimutkaisuus ja erikoistuminen sopivat huonosti noiden varhaisten työkalujen puhtaaseen visuaaliseen ohjelmointiin, mutta se tekee myös yhä vaikeammaksi rakentaa pyöreitä ohjelmistosuunnittelutiimejä.

Mikäli puhtaat visuaaliset ohjelmointiympäristöt ovat epäonnistuneet, on olemassa kokonainen välimuisti vastaavia työkaluja, jotka ottavat visuaalisen ohjelmoinnin parhaat puolet ja yhdistävät ne tekstipohjaiseen koodaukseen. Siinä missä visuaalinen ohjelmointi oli ”no-code”, nämä uudet työkalut ovat low-codea.

Työkalujen, kuten OutSystemsin, avulla kehittäjät voivat luoda ohjelmistoja visuaalisesti piirtämällä vuorovaikutusvirtoja, käyttöliittymiä ja objektien välisiä suhteita, mutta täydentämällä sitä käsinkirjoitetulla koodilla silloin, kun se on parempaa.

Tämä visuaalisen ohjelmoinnin ja tekstiin pohjautuvan ohjelmoinnin käytännöllinen yhdistelmä vastaa hyvin nykyaikaisen ohjelmistonkehitystyön tarpeisiin. Low-code-alustat vähentävät ohjelmistokehityksen monimutkaisuutta ja palauttavat meidät maailmaan, jossa yksittäinen kehittäjä voi luoda rikkaita ja monimutkaisia järjestelmiä ilman, että hänen tarvitsee opetella kaikkia taustalla olevia teknologioita.

Next Generation of Visual Programming: Visuaalinen ohjelmointi oli niin lupaavaa, eivätkä ongelmat, jotka sillä haluttiin ratkaista, ole kadonneet. Itse asiassa ne ovat ajankohtaisempia kuin koskaan.

Mutta reaalimaailman ongelmat vaativat suurempaa joustavuutta kuin mitä visuaalinen ohjelmointi voisi tarjota. Low-code ottaa tuon lupauksen ja soveltaa sitä vähentääkseen monimutkaisuutta, jota nykyaikaisessa ohjelmistokehityksessä esiintyy. Älä siis kysy ”mitä on visuaalinen ohjelmointi?”. Kysy sen sijaan, mitä on matala ohjelmointikoodi. Voit myös varata online-demon tai jopa kokeilla OutSystemsiä (se on ilmainen).

Vastaa

Sähköpostiosoitettasi ei julkaista.