Introducing lightweight reactive values to Java
Tetsuo Kamina · 2016
This paper introduces SignalJ, a lightweight extension of Java with reactive values. A reactive value is a value that can depend on other reactive values, and it is implicitly updated when the depended reactive values are updated. Each reactive value is typed with a signal type, which ensures that the dependent reactive values are functional. SignalJ also provides handlers of reactive values that are called whenever the monitored reactive value is updated. With these features, SignalJ declaratively specifies dataflows within an application in a functional manner, which enables effective implementation of reactive software. The syntax of SignalJ is almost identical to that of Java 8 except that it introduces a new modifier, signal, to represent signal types.