As I described yesterday, I tried coding agents for the first time at the beginning of this year. Like many, I was impressed by their capabilities. An agent was able to produce non-trivial functioning pieces of software for me based on natural language prompting, leaving me to wonder, like probably many of us, whether I am going to be out of work soon.

I have also had several contacts admit to me that they are considering moving away from MPS towards more mainstream languages to make use of the newly available AI capabilities. Instead of generating code from MPS, they would generate code by talking to AI.

I was left to wonder whether I should consider a different specialization. Instead of continuing to work with MPS and around its numerous quirks, should we all switch to writing Kotlin and TypeScript and go find ourselves new jobs as full-stack developers?

After some time and experience, I think I can now give the traditional answer to the title question: it depends.

I believe the recent advances in LLMs and coding agents make the weakest case for MPS even weaker: using it mainly as an expensive boilerplate generator when the domain structure is shallow. If the model is little more than a description of database entities for a CRUD application, MPS was probably not the right tool in the first place. Recent AI advances only make that clearer.

However, most of the value of MPS has never been in just generating code. MPS is most valuable when the hard part is not producing text but maintaining a model of a complex domain over time. Its utility comes from things like:

  • structure: explicitly defined concepts with typed properties, children, and references;
  • constraints, typesystem and checking rules;
  • rich projectional editing with tables, diagrams, go-to-reference navigations, including in diffs;
  • custom IDE support with actions;
  • scripting;
  • migrations;
  • generators.

AI makes boilerplate code generation less special, but it does not replace the maintenance value of explicit domain structure, executable checks, or migrations.

With MPS, you encode the domain knowledge in the language definitions and models, not in the generated code. The models and language definitions are what you maintain. With AI-generated code the knowledge moves to the generated code itself, potentially into Markdown documents, or in the worst case into the developers’ heads. The AI-written code, along with the documentation, now has to be understood, reviewed, changed, and deleted. This means that your agent had better help you reduce maintenance costs, not just generate more code faster, as James Shore argues in his article, You Need AI That Reduces Maintenance Costs.

Thus, we can say that AI narrows the case for MPS mostly by removing weak arguments for it. MPS remains relevant for complex domains where the value is in domain modeling, controlled maintenance and evolution.