Reaktiivinen ohjelmointi
Reaktiivinen ohjelmointi (reaktiivinen ohjelmointiparadigma, engl. reactive programming, 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[1].
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.[2][3]
Reaktiivisia ohjelmointikieliä ovat mm. Haskelliin perustuvat Fran ja Yampa sekä JavaScriptin laajennos Flapjax.[2][4] Reaktiivisia ohjelmointikirjastoja ovat mm. Scala-kielelle kehitetty Scala.React sekä JavaScriptille kehitetty RxJS.[2]
Tunnettuja reaktiivista ohjelmointia käyttäviä verkkopalveluita ovat Netflix ja GitHub.[2]
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.[2]
Lähteet
[muokkaa | muokkaa wikitekstiä]- Bainomugisha, E. & Carreton, A. L. & Van Cutsem, T. & Mostinckx, S. & & De Meuter, W.: A survey on reactive programming. ACM Computing Surveys, 2013, 45. vsk, nro 4. Association for Computing Machinery (ACM). (englanniksi)
- Czaplicki, E. & Chong, S.: Asynchronous functional reactive programming for GUIs. ACM SIGPLAN Notices, 2013, 48. vsk, nro 6, s. 411-422. (englanniksi)
- Chydenius, Arto: Reaktiivinen ohjelmointi web-sovellusten selainpuolella (pdf) (pro gradu) 2014. A. Chydenius.
Viitteet
[muokkaa | muokkaa wikitekstiä]Aiheesta muualla
[muokkaa | muokkaa wikitekstiä]- Staltz, André [staltz]: The introduction to Reactive Programming you've been missing GitHub Gist. Viitattu 8.5.2015.