Stack OverflowDave ClemmerExplainer
A Treatise on Model Oriented Programming Languages
Summary
The author developed Mo+, a model oriented programming language and IDE, which he used on enterprise projects but failed to sell to a wider audience, leading him to leave software engineering to build Viking ships. He defines a model as a hierarchical structure with a single root node and child nodes to any depth, where attributes can reference other nodes to handle non-hierarchical relationships. The post distinguishes transitional MOP, which generates code in a target language like C#, from target MOP, where the MOP language itself serves as the target. The author outlines principles for MOP languages, including customization points for managing custom code and the need for smart IDEs to handle model structure changes. He calls for research into MOP languages, believing they have significant potential especially in the current AI landscape, and invites contact from universities or businesses working on related research.
Context
The author developed Mo+, a model oriented programming language and IDE, but failed to sell the ideas to a wider audience. He left software engineering to build Viking ships but still believes in the potential of MOP languages, especially in the AI era. He calls for research and development in this area.
Takeaways
Model structures in MOP are always hierarchical with a single root node, and attributes can reference other nodes to handle non-hierarchical relationships.
Transitional MOP generates code in a target language using model oriented properties, while target MOP uses the MOP language itself as the target.
The author believes MOP languages have significant potential in the AI era and invites research from universities and businesses.
FAQ
What is the definition of a model in model oriented programming?
A model is defined by its structure and data. The structure is hierarchical with a single root node and any number of child nodes. Attributes can reference other nodes to handle non-hierarchical relationships.
What is the difference between transitional and target MOP?
Transitional MOP uses a MOP language to generate code in a target language like C#. Target MOP uses the MOP language itself as the target language, requiring a more extensive grammar and type safety.
How does a model structure handle foreign key references?
An attribute of a model structure node can refer to another node in the model structure, allowing non-hierarchical relationships like foreign keys to be represented within a hierarchical model.
Source and freshness
- Source
- stackoverflow.blog
- Published
- Added to Yomu
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.