Hello, I recently started writing a game using the Reactive-banana FRP library for Haskell. I realized that there actually exist FRP libraries for several mainstream languages, so I thought I might ask here and see what the perception of this fairly new paradigm is.[1,2,3]
Okey, for those who are unfamiliar Functional Reactive Programming is a new programming paradigm invented at Microsoft Research in late 90s. It initially was meant for animation (hence, the first paper was named "Functional Reactive Animation"[4]) but has been used for games, robots, audio, GUI, etc. Essentially it introduce time-varying values called events and behaviours(also called "signals"). Events are discrete time-varying values and behaviours are the continious equaliant. For example, an event could represent a mouse click and a behaviour could represent the position of a moving ship. The difference between these and mutable data or impure function calls is that you decleare its properties when you define the event/behaviour. You do not later mutate it and when its being called its not mutating anything(except for some primitives that needs to be hooked into the pure network of events and behaviours).
So this lets you declaritivly define games, which is awesome. It makes everything much easier than having to mutate some state or pass state around(as you would have to do in functional languages). I want to ask what this community's opinion is on this new paradigm is? I personally think its really good but I just got started, and my experience in game development is not that big so I don't have much to compare to. I only know of two companies who uses FRP, so it's still a young paradigm.[5,6] Also, feel free to ask me any questions too!
1. C++ FRP library https://github.com/kentuckyfriedtakahe/sodium/tree/master/c%2B%2B
2. Java FRP library https://github.com/kentuckyfriedtakahe/sodium/tree/master/java
3. JS FRP library https://github.com/baconjs/bacon.js
4. First FRP paper http://conal.net/papers/icfp97/
5. Mobile game development company using FRP http://ipwnstudios.com/
6. Web presentation software company using FRP http://prezi.com/