Skip to main content

Hva er reaktiv programmering?

Reaktiv programmering er et informatikkbegrep som beskriver egenskapene til et dataprogrammeringsspråk som er fokusert på automatisk å opprettholde tilstanden til en applikasjon som dataene som brukes i programendringen.En av hovedtrekkene i et reaktivt programmeringsspråk er at deklarerte og beregnede variabler kontinuerlig blir evaluert som andre variabler som brukes i beregningsendringen.Dette betyr at språket reagerer på endringene i tilstanden til dataene, i motsetning til å bruke mer imperative kommandoer for å administrere staten, slik mange tradisjonelle programmeringsspråk gjør.Det teoretiske resultatet av en applikasjon som bruker reaktive programmeringsfilosofier, ville være et program som kontinuerlig og automatisk endrer displayet eller andre faktorer basert på de endrede dataene som strømmer inn i programmet.Selv om flere imperative programmeringsmodeller kan brukes til å oppnå de samme resultatene som reaktiv programmering, ville målet om å skape et reaktivt språk være å ha naturlig støtte for reaktive endringer på det primitive nivået, i stedet for på et objektnivå.

Hjelp med å tydeliggjøre hvordan reaktiv programmering fungerer er å sammenligne det med imperativ programmering.Når to tall legges til på et imperativt språk, lagres resultatet av tilsetningen vanligvis på et gitt minneplass.Operasjonen finner sted i det øyeblikket kommandoen blir utført, og resultatet er koblet fra de to tallene som ble lagt til for å opprette summen.Dette betyr at hvis en av de to tallene som ble lagt til endring etter tilsetningen fant sted, ville verdien av summen ikke endres fordi den allerede er lagret i minnet og atskilt fra de originale operandene. Når et reaktivt programmeringsspråk legger tilTo variabler for å lage en sum og en av de to variablene endringer på et tidspunkt i fremtiden, da vil summen også endre seg.Dette innebærer at et reaktivt program har muligheten til å overvåke tilstanden til dataene som brukes og reagere automatisk på endringer, og potensielt endre den generelle tilstanden for hele applikasjonen.Det er flere modeller i imperativ programmering, inkludert hendelsesbasert programmering og observatørdatamodeller, som kan utføre de samme oppgavene ved å lage strukturer som overvåker dataendringer, men et reaktivt språk vil ha innebygde mekanismer for å gjøre dette. BrukenFor et reaktivt programmeringsspråk kan være i områder der sanntids tolkning av vilkårlige datastrømmer er nødvendig.Dette kan omfatte vitenskapelig visualisering, grafiske brukergrensesnitt (GUIS), eller til og med sanntidskommunikasjon der programmet stadig endres basert på at datastrømmen mottas.Det skal imidlertid bemerkes at det virkelig ikke er implementert, uavhengige reaktive programmeringsspråk.De fleste arbeidsimplementeringer av konseptet har form av eksterne biblioteker for mer tradisjonelle imperative eller funksjonelle språk.