JetBrains, the maker of the popular IntelliJ IDEA development tool for Java, has announced a beta version of its Meta Programming System product. MPS represents a new concept of software development that implements what JetBrains refers to as the Language-Oriented Programming paradigm.
MPS has been in R&D at JetBrains’ labs in St. Petersburg, Russia, for several years and will be released as a 1.0 version in early 2009 following the beta release.
JetBrains officials said MPS is an environment for software developers to create new custom languages, extend existing languages and use them to develop programs. MPS is also an instrument for creating DSLs (domain-specific languages). Domain experts who are not familiar with programming can easily use DSLs created with MPS, JetBrains said.
Sergey Dmitriev, co-founder, president and CEO of JetBrains, started MPS as a research project in 2003. In 2004, its underlying concepts were described in an article on Language-Oriented Programming. In 2005, JetBrains opened an Early Access Program for MPS; in 2006, Dmitriev spoke with eWEEK about LOP; and since 2006 the company has been using MPS in developing some of its new products.
“Over these years, we have accumulated a lot of our own experience and gathered valuable feedback from early adopters, and this turned MPS from a research project into a mature product that we want to present to you now,” a company spokesperson said.
In an interview with eWEEK from 2006, Dmitriev said a development platform should allow developers to not only to extend an existing language, but also to easily design a whole new language and build an intelligent editor for it.
“To run programs written in such a DSL, the platform should support writing generators to any existing run-time platform-Java or .NET or whatever,” Dmitriev said. “Using such specialized DSLs allows writing programs on a much higher level, so these programs will be much more maintainable and expressive.”
Many tool makers are looking at the value of metaprogramming. For instance, Anders Hejlsberg, a technical fellow at Microsoft and creator of the C# language, said metaprogramming is “high on my list of things to attack in C#-to make it a better metaprogramming system. To open up the black box … Enterprise applications live and die by metaprogramming. There’s code generation everywhere. And the tools for doing this are terrible; we need a modern approach to that.”
JetBrains officials said the main focus of MPS is to allow creating new languages and extending existing ones as easily as possible. It enables the definition of language type systems, constraints and specialized editors to produce new, powerful and easy-to-use languages. Moreover, MPS uses a generative approach: Languages are described on a higher level, and MPS generates compilable code in other languages, particularly in Java.
“When we started working on MPS back in 2003, it was a research project that could do very little, but was a lot of fun to play with,” Dmitriev said in a statement. “However, we have always been very serious about extensively using our own products, and right now we are already using MPS to develop new products. We always carefully listen to the developer community. With MPS being very different and new, we are extremely interested in receiving valuable feedback from developers.”
JetBrains said MPS will be free for all users and a major part of its code will be open source-under the Apache license.
More information about JetBrains MPS is available at http://www.jetbrains.com/mps.