Jetbrains (maker of IntelliJ IDEA) is working on a new project internally referred to as MPS (Meta Programming System), which looks very interesting. It�s based on a concept called Language Oriented Programming. Essentially, they want to make it easy to create domain specific �languages� allowing programs to be written at a higher level. In this case a language could be visual (like UML) or textual. It might be structural or declarative. Its only important that the language suits the domain. Each language would be closely tied to an editor used to manipulate the language. This domain level language would eventually be used to generate a lower level language (like Java or C#). This allows the domain specific languages to interact via the lower level languages.
In college, I was always told the next evolution in programming languages would come from natural languages. One day I would just sit down and explain in plain English what I wanted the computer to do, and it would just do it. Of course even the teacher was smiling at this point. Most business problems are hard to explain to other people without first defining 20 terms, creating a lexicon of shapes and filling a white board at least a couple times. I couldn�t imagine trying to spell out the logic in English so a human could understand it, much less a computer.
Imagine, however if the language had already defined most of your terms. Imagine a language built specifically for authoring point of sale applications. It already knows a set number of terms. It has its own editor with pre-defined flowcharting widgets, and it generates code that would be compatible with your existing Java system.
Of course creating a new language just for my problem domain is currently out of the question. In the time it would take, to write the language, I could have created the system that I wanted it to generate. That�s where MPS comes in� a framework for writing domain specific languages. It seems like a lot to ask for. I wish them luck.
For more info, check out this interview at Code Generation Network.
Labels: Programming
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home