📜 ⬆️ ⬇️

The revolution is now. jetBRAINS released Meta Programming System

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

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

Working directly with the Abstract Syntactic Tree (in which any text of the program is still distilled when compiled), 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 development? It would be necessary 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 it elegantly, but of course difficult, and you need some time to learn and understand what you really do. And take, for example, a lot of frameworks and libraries, which in essence are these DSLs in narrow areas. Why not convert them into a language extension?
')
In general, everyone read and download MPS .

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

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

How to do the override method with the automatic addition of the keyword override 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 extension - here ENUMS has been added to AS
www.potapenko.com/tmp/screencasts/enums.flv

Well, the editor and what? And the fact that having studied MPS in detail, I see right now how AOP is easily added to ActionScript, as 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 cards fit in DSL.

The future is now, gentlemen!

Update! From the comments came a link 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

Source: https://habr.com/ru/post/65278/


All Articles