Came across Elmo API while reading an article about Mulgara on devx. Here is the justification for subject orientation:
As systems become more integrated and provide diverse roles to a broader market, traditional object-oriented and component-oriented systems can become bloated with complex interfaces and behaviours that increase expenses for software maintenance. Integrated domain driven designs often require context-specific views of shared multi-dimensional resources. These resources are a challenge to model through polymorphism alone and require a higher level of concern management.
As a subject-oriented system, Elmo provides a way to group common behaviours and separate roles into unique interfaces and reusable classes. Domain models built with Elmo are simpler and are better able to express their design concept. This leads to lower maintenance costs and more flexible software.
Here is a page from the Elmo API Guide:
- Create extensions to software without modifying original source;
- Customize and integrate systems with reusable components;
- Facilitate multiple team system development by dynamically integrating independent domain-models;
- Permit decentralized design and development of concepts and behaviours;
- Simplify code by capturing design patterns into reusable behaviours;
- Maintain a 1:1 mapping between design concept and implementation.
It will be interesting to see how this is done. Plan to explore some Elmo applications.