Section: New Software and Platforms
JEScala is a Scala library which implements a seamless programming model combining object-oriented, aspect-oriented, event-based and concurrent programming. Events are object members. They can be explicitly triggered as in standard event-based programming but also implicitly triggered, as join points in aspect-oriented programming. Event expressions make it possible to compose events, filter them, and alter their content. Event handlers can be registered, and unregistered, dynamically.
Concurrency can be handled without any explicit thread manipulation. By default, primitive events are synchronous but they can also be declared as asynchronous. This creates concurrency between the source of the event and its handlers. This concurrency can then be handled by composing events with the join operator and creating disjunctions of the resulting events.