The revolution is now. jetBRAINS released Meta Programming System

    MPS is out , gentlemen! And it is strange that on this occasion, the Internet is somehow still quiet. After all, we are dealing with a real revolution in the world of software engineering. Apparently, as in the case of the transition to OOP, the transition to LOP will be slow and painful.

    What kind of revolution and what kind of LOP, you ask? About Language Oriented Programming is very well written in English here , about MPS itself here . In short, the idea itself is simple - everyone has long been familiar with the concept of DSL (Domain-Specific Languages), we take it to a new level and get a tool for creating new, expanding existing ones and with a convenient custom IDE for development in these languages.

    Working Directly with the Abstract Syntax Tree(into which any text of the program is still distilled during compilation), and not with text, MPS allows you to create non-text editors or use all sorts of interesting controls when editing text programs. And most importantly, how often would you like to expand your favorite language with new designs to speed up development? I would have to expand the grammar of the language, but what if someone else came up with another extension and both of them would break the grammar? MPS allows you to do this gracefully, but of course it's complicated, and it takes some time to learn and understand what you are really doing. And take, for example, a lot of frameworks and libraries, which in essence are these DSLs in narrow areas. Why not convert them into an extension of the language?

    In general, everyone read and download MPS .

    What side am I here and why am I happy about this event? Because the wonderful person who showed me MPS some time ago is Yevgeny Potapenko . And for a long time he has been writing an interesting ActionScript 3 editor on this system, and over and over again he has been amazed by interesting screencasts (sperms from Ivan Dembitsky, I hope he is not very angry with me for this):

    Templates for getters / setters and fields
    www.potapenko. com / tmp / screencasts / templates.flv

    How to make the override method with the automatic addition of the override keyword and navigation
    www.potapenko.com/tmp/screencasts/override.flv

    Method / Variable / Field
    Naming Assistant www.potapenko.com/tmp/ screencasts / naming.flv

    The main feature of the editor is language expansion - here ENUMS added to AS
    www.potapenko.com/tmp/screencasts/enums.flv

    Well, the editor and what? And having studied MPS in detail, right now I can see how AOP is easily added to ActionScript, how the Spring-like IoC framework with configuration via XML files is converted into a simple DSL. Even my helper classes for creating video players and simple business card sites fit in DSL.

    The future is now, gentlemen!

    Update! From the comments, a link arrived to the Russian text (translation of the previous link in English, as I understand it) about LOP.
    http://www.rsdn.ru/article/philosophy/LOP.xml

    Also popular now: