Disclaimer: I am a business application developer. The following opinion is certainly determined by my experience in corporate IT trenches. I know that there are other areas of software development. In particular, in the development of industrial and / or embedded systems, the world may look different.
I think MDSD is still too attached to code generation.
Code generation is only useful when your code contains a lot of noise and / or is very repetitive. In other words, when your code cannot mainly focus on substantial complexity, but it is contaminated with random complexity.
In my opinion, the trend in current platforms and platforms is precisely to eliminate random complexity and allow the application code to focus on significant complexity.
Thus, these new platforms / frameworks take up a lot of winds from the sails of the MDSD movement.
DSL (textual) is another trend that allows you to fully focus on significant complexity. While DSLs can be used as a source for code generation, they are not primarily associated with code generation. DSLs (especially internal DSLs) basically allow it to be opened for interpretation / execution at runtime. [runtime code generation is somewhere in the middle].
Therefore, even if DSLs are often referred to along with MDSD, I think they are indeed an alternative to MDSD. And given the current hype, they are also taking momentum from the MDSD movement.
If you have achieved the goal of ultimately removing random complexity from your code (I know this is fictitious), then you have come to a textual model of your business problem. It is impossible to simplify!
Good boxes and diagrams do not offer another simplification or increase in the level of abstraction! They may be good for visualization, but even this is doubtful. Image is not always the best view to understand complexity!
In addition, the current state of the tools used in MDSD adds another level of random complexity (I think: synchronization, difference / merge, refactoring ...), which basically negates the ultimate goal of simplification!
Take a look at the following ActiveRecord model to illustrate my theory:
class Firm < ActiveRecord::Base has_many :clients has_one :account belongs_to :conglomorate end
I do not think this can be simplified. Also, any graphical representation with boxes and lines will not be a simplification and will not offer more convenience (think about layout, refactoring, searching, great ...).