Reaktiivinen ohjelmointi

Reaktiivinen ohjelmointi (reaktiivinen ohjelmointiparadigma, , RP) on ohjelmointiparadigma, jossa muuttujien arvot päivittyvät automaattisesti. Reaktiiviseen ohjelmointiin käytetään reaktiivista ohjelmointikieltä tai reaktiivisen ohjelmoinnin mahdollistavaa kirjastoa. Reaktiivinen ohjelmointi soveltuu mm. tapahtumaohjattujen ja interaktiivisten sovellusten toteuttamiseen.

Useimmissa ohjelmointikielissä käskyn "a = b + c" jälkeen muuttujien b ja c arvo voi muuttua vaikuttamatta a:n arvoon. Reaktiivisessa ohjelmoinnissa a:n arvo päivittyy b:n tai c:n muuttuessa.

Reaktiivisen ohjelmoinnin käyttökohteita ovat mm. taulukkolaskentaohjelmat ja verkkopalvelut. Monet verkkopalvelut ovat luonteeltaan asynkronisia ja tapahtumapohjaisia. Reaktiivinen ohjelmointi ratkaisee tällaisten palveluiden rakentamiseen liittyviä teknisiä ongelmia. 

Reaktiivisia ohjelmointikieliä ovat mm. Haskelliin perustuvat Fran ja Yampa sekä JavaScriptin laajennos Flapjax. Reaktiivisia ohjelmointikirjastoja ovat mm. Scala-kielelle kehitetty Scala.React sekä JavaScriptille kehitetty RxJS.

Tunnettuja reaktiivista ohjelmointia käyttäviä verkkopalveluita ovat Netflix ja GitHub.

Reaktiivinen ohjelmointi -käsitteellä saatetaan toisinaan ymmärtää muutakin kuin yllä kuvattua ohjelmointiparadigmaa. Sillä voidaan tarkoittaa sellaisen tietojärjestelmän kehittämistä, että järjestelmä on ominaisuuksiltaan reaktiivinen. Tässä tapauksessa reaktiivisuudella tarkoitetaan esimerkiksi järjestelmän kykyä toipua virhetilanteista sekä palvella käyttäjiä riippumatta kuormasta. Tällöin kyse on siis reaktiivisen sovelluksen ohjelmoinnista eikä siitä, että ohjelmointi on reaktiivista.

Lähteet

Viitteet

Aiheesta muualla
 

Ohjelmointiparadigmat