MPS sounds like something I've been wanting for several years. I'm very excited to see something real occurring in this field (although I am not a huge Java fan, which makes the "IntelliJ plugin" approach less than perfect for me, but I realize I'm in the minority there ;-)
As I've been thinking about the MPS project maintenance side of things, I came up with this question (and my apologies if it's already been asked, but a search didn't turn anything up)
Can a new language extend more than one language?
Here's why I ask (and this isn't the best possible example, but it was the first that leapt to mind): If Person A extends C++ into C+WithDelegates and Person B extends C+ into C+WithAspects, and I'd like to have CWithDelegatesAndAspects, am I going to have to manually re-implement one of them as an extension of the other, or will I be able to "extend" the two into my new language? I realize that in the general case there will be conflicts, but those conflicts can be resolved in the new language. The conflict resolution should still be less work than re-implementing one or the other languageeditor+transformation.
Basically, if languages take the place of libraries, what is the process for working with, say 5-10 different "library languages"? Libraries can coexist, because each library has to play nice and follow the rules of the common language. At worst, you've got name collisions, which can be resolved by namespaces in any modern language. But if the "library" is an extension to a language, directly modifying the structural, syntactic, and semantic graphs of the host language, then merging multiple "libraries" together is more involved. This isn't just a namespace issue. When two languages both extend the concept of "expression", which seems like it would be a reasonably common situation, some form of merging resolution will be needed.
I feel I should point out that I prefer C++ and Eiffel (with multiple inheritance) over Java and Smalltalk (single inheritance), so I tend to wonder about these things. But when the multiple inheritance involves languages, I don't think it will be possible to workaround the problem the same way you can work around it when using class libraries. Even if it can be worked around, I find the workarounds to be inelegant wastes of time -- delegation, for instance, requires duplicating the entire public interface as a set of callthrough functions. Certainly, an IDE could provide that as a form of refactoring, but it still seems wasteful. I think it will need to be addressed directly.
I also feel I should mention, hopefully without starting a flame war, that I prefer Eiffel's devoted effort to truly understand the nature of the problems with multiple inheritance, rather than C+'s "let's keep hacking on keywords until people shut up about it" approach. Unfortunately, in my real work, I need C+'s speed more than I need Eiffel's conceptual cleanliness. My point is that while multiple inheritance is a hard problem, it is not an unsolvable one, and I think that someone capable of successfully creating MPS is likewise capable of creating an elegant solution to the multiple inheritance issue as well. And no, that isn't "sucking up". As I say, I've wanted MPS for a long time, but figured it was just a pipedream. I didn't think it could actually be made. So seeing it exist, even in an EAP form, means the author is pretty impressive at making very abstract and complex systems run in the real world.