JetBrains, maker of the popular IntelliJ IDEA Java tool set, announces the beta version of its Meta Programming System for application development. JetBrains' MPS encourages the use of DSLs and code generation. MPS also implements the Language-Oriented Programming paradigm for building enterprise applications.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
platformJava 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 sourceunder the Apache
license.
More information about JetBrains MPS is
available at http://www.jetbrains.com/mps.