Vad är reaktiv programmering?
Reaktiv programmering är ett datavetenskapskoncept som beskriver egenskaperna hos ett datorprogrammeringsspråk fokuserat på att automatiskt upprätthålla en applikations status då de data som används i programmet ändras. En av huvudfunktionerna i ett reaktivt programmeringsspråk är att deklarerade och beräknade variabler kontinuerligt utvärderas som andra variabler som används i deras beräkningsförändring. Detta innebär att språket reagerar på förändringarna i datatillståndet, i motsats till att använda mer nödvändiga kommandon för att hantera staten, som många traditionella programmeringsspråk gör. Det teoretiska resultatet av en applikation som använder reaktiva programmeringsfilosofier skulle vara ett program som ständigt och automatiskt ändrar skärmen eller andra faktorer baserat på de förändrade data som flyter in i programmet. Även om flera nödvändiga programmeringsmodeller kan användas för att uppnå samma resultat som reaktiv programmering, skulle målet att skapa ett reaktivt språk vara att ha infödda stöd för reaktiva förändringar på den primitiva nivån, istället för på en objektnivå.
Ett sätt att hjälpa till att klargöra hur reaktiv programmering fungerar är att jämföra den med nödvändig programmering. När två nummer läggs till på ett nödvändigt språk lagras resultatet av tillägget vanligtvis på en given minnesplats. Åtgärden sker i det ögonblick som kommandot utförs, och resultatet kopplas från de två siffrorna som lades till för att skapa summan. Detta innebär att om något av de två siffrorna som lagts till ändras efter tillägget, skulle summan inte ändras eftersom det redan är lagrat i minnet och separerat från de ursprungliga operandema.
När ett reaktivt programmeringsspråk lägger till två variabler för att skapa en summa och en av de två variablerna ändras någon gång i framtiden, kommer summan också att ändras. Detta innebär att ett reaktivt program har förmågan att övervaka tillståndet för de data som används och att reagera automatiskt på förändringar, vilket potentiellt kan ändra det totala tillståndet för hela applikationen. Det finns flera modeller i nödvändig programmering, inklusive händelsebaserad programmerings- och observatordatamodeller, som kan utföra samma uppgifter genom att skapa strukturer som övervakar dataförändringar, men ett reaktivt språk skulle ha inbyggda mekanismer för att göra detta.
Användningen för ett reaktivt programmeringsspråk kan vara inom områden där realtidsintrång av godtyckliga dataströmmar behövs. Detta kan inkludera vetenskaplig visualisering, grafiska användargränssnitt (GUI) eller till och med i realtidskommunikation där programmet ständigt förändras baserat på den dataström som mottas. Det bör dock noteras att det verkligen inte finns några helt implementerade, oberoende reaktiva programmeringsspråk. De flesta fungerande implementeringar av konceptet har form av externa bibliotek för mer traditionella imperativ eller funktionella språk.