Luna is here:
Object Teams embraces Java™ 8

OT/J on Java 8 is …

Composition:

The essence of object-oriented programming is to compose a system from a possibly large number of interacting classes and objects.

Since version 1.1, Java has not seen any enhancements for this task.

OT/J adds three closely related concepts:

  • Roles can be attached to a base object for dynamic specialization.
  • Roles are grouped into a Team to yield cohesive modules for use-cases & features.
  • Teams support nested inheritance for large-scale specialization.

Algorithms:

OT/J is agnostic to how algorithms are encoded (programming in the small),
but you may leverage lambda expressions from Java 8 in your OT/J programs for that touch of functional programming.

Types:

A rich type system is key for attaching semantics to the elements of your program.
  • Java 8 features …
    type annotations for expressing more properties of types,
  • JDT leverages …
    type annotations for detecting null related errors,
  • OT/J introduces …
    dependent types to express object ownership.