(toiminnot)

hwechtla-tl: Nettipäiväkirja 27.03.2015

Kierre.png

Mikä on WikiWiki?
nettipäiväkirja
koko wiki (etsi)
viime muutokset


Työpaikan kirjahyllystä löytyi hämmentävä opus: "Visual programming / systems and paradigms". Se oli kirjoitettu 90-luvulla, jolloin visuaaliset käyttöympäristöt olivat kuitenkin aika uusi juttu (ainakin mainstreamissa). Siinä esiteltiin vaikka mitä visuaalisia notaatioita ihan mille sattuu, lähtien virtapiirien suunnittelukaavioista erilaisiin graafisiin tietokantakyselykieliin ja tilakonemäärittelyihin. Kaikenlaisia historiallisia kummajaisia, kuten rekursiivisia ATN-verkkoja ja unifikaatiokaarin yhdistettyjä logiikkaohjelmia, sivuttiin myös.

Ainakin tuli selväksi, että historiallisesti aika iso osa ohjelmoinnin visualisointiin kulutetusta vaivasta on käytetty aika naurettaviin asioihin, kuten vuokaavioihin. Kun ohjelmoi tarpeeksi korkean tason ohjelmointikielellä, vuokaavio ei edes kerro ohjelmastasi mitään järkevää, ja vuokaaviot ohjaavat ajattelua väärään suuntaan kunnollisesta ohjelmasuunnittelusta, koska niissä ei voi esittää kunnolla aliohjelmakutsuja vaihtelevin parametrein (eikä siis rekursioita muuten kuin samaan tapaan kuin tekstuaalisissakin ohjelmissa, eli nimiviittauksilla). Tietovuokaaviot sen sijaan edes ohjaavat huomion siihen, mikä ohjelmissa on olennaista, eli siihen, mikä tuloste syntyy, kun annetaan tietty syöte.

Monet strukturaalisen ohjelmoinnin (ks. ohjelmointiparadigmat) visuaalisista notaatioista olivat kovin samanlaisia kuin nykyisten blokkiohjelmointiympäristöjen, kuten Scratchin, syntaksi.

Ylipäänsä tuli semmoinen olo, että ohjelmien visualisointi on vähän huono keksintö. Niistä löytyy näkökulmia, joista voi kehittää kaavioita, kuten ohjelmointikielten luokkahierarkiat, mutta nämä näkökulmat eivät oikeastaan koskaan määritä niitä ohjelman toiminnan kannalta olennaisia asioita. Tietomallikaaviot ovat ehkä hyödyllisin kaaviotyyppi, jonka tiedän: niitä on oikeasti nopeampaa lukea kuin vastaavaa ohjelmakoodia (esim. skeemamäärityksiä SQL- tai RDF/Turtle-kielillä). Nekään eivät tietenkään määritä ohjelman toimintaa, ne vain auttavat ymmärtämään, mille ohjelma tekee jotain.

Muistin tämän seurauksena, että Peircehän oli kehittänyt kokonaan graafisen syntaksin predikaatti- ja modaalilogiikalle, jossa muuttujia edustivat yhteysviivat predikaattien välillä, negaatiota paksut kehät/ympyrät, konjunktiota jukstapositio ja modaliteetteja värit. Tämähän olisi ihan kelvollinen visuaalinen logiikkaohjelmointiparadigma (jopa rajoitettuna, kuten Prologin rajoituksilla).

Tarkoitan näitä:


kommentoi (viimeksi muutettu 27.03.2015 16:53)