Chapter 15. Future directions
This chapter covers
- Performance and parallelism
- Syntax improvements
- Standardization
- Precompiling
- FRP database applications
- Developer tools
At the time of writing, given what is possible, it’s still early days for FRP. Like characters from a Hayao Miyazaki movie, we’ll now let our hair cascade in the wind, the sun glinting in our goggles as we squint uncomprehendingly at the horizon. In this chapter, we’ll talk about some of the directions we’d like to see FRP go in.
An FRP system knows its data dependencies and can measure its usage patterns at runtime. There is enormous scope for just-in-time (JIT) compilation and live optimization based on performance characteristics measured at runtime. We think FRP could be made to run very quickly indeed.
We should also look at nontraditional computing architectures. FRP abstracts the machine away, and there may be machines that are well suited for FRP.
Precompiling FRP would be one way to improve performance, but it would also be useful for resource-constrained environments. Without switch, it should be easy to statically compile FRP code into C or for deployment on field programmable gate arrays (FPGAs). This would be useful on embedded systems, which are often used for control applications—an application domain that fits FRP well. Implementing switch would be more of a challenge but should be eminently possible.