Subject Oriented Programming

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:

Elmo is a subject-oriented programming library that addresses common problems in traditional object-oriented designs. With Elmo, application design and development can:

  • 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.

One thought on “Subject Oriented Programming

  1. Object-oriented and component-oriented systems do become bloated with complex interfaces resulting sluggish performance. But I am not sure how far all tech work around subject/aspect/agent oriented is going to solve the underlying problem. To me it sounds similar to the object oriented database theme that got the fancy of people but delivered none of its promises.

    I believe the real challenge one faces is in managing information in real life scenarios and managing it in a way that leads to easy decision making and meaningful interpretations. Ultimately it is a question of implementing logic. I must admit that most of what I read about what subject/aspect/agent oriented concepts look very foggy to me.

    The question I would like to ask is whether there is a need to do everything at the language level only. Today there is lot more besides languages. There are very easy to implement practical solutions to take advantage of the true benefits of subject oriented information management.

    We have been working this in a garage mode for about the last 10 years. We do have some alternatives to all these complicated language level modeling. I have actually registered two domains subjectsys. com and subjectoriented.com recently (was surprised that these were not already taken). Hope to demonstrate how subject oriented information management can be done effortlessly and with great performance and end user benefits. Hopefully it is not going to take too long.

Comments are closed.