Whiteoak in a nutshell
The Whiteoak programming language is an extension to Java that introduces a new degree of flexibility into the language.
Motivating the development of Whiteoak is the understanding that
due to extensive use of libraries, components and external data sources, the developer has limited control on how the objects in her program are created. The developer then spends a great deal of her time just gluing together systems of objects using all sorts of fancy patterns.
Whiteoak addresses this predicament by the introduction of structural types, thereby allowing abstraction over objects. This mechanism nicely complements the well known inheritance mechanism which allows abstraction over classes. Specifically, Whiteoak's key features are:
- Structural subtyping (AKA: duck typing, structural conformance)
- Introduction of default, override-able, method implementations to existing objects
- Virtual fields and constructors
- Anonymous types
- Type expressions, with mixin-like or traits-like semantics