Are language workbenches a failure?
May 13, 2011 5:43 AM Subscribe
Is Model Driven Development / Language Workbenches / DSL IDEs a failure?
I thought that the later developments of MDA/MDD (involving Eclipse QVT f.i. like in OpenArchitectureware or in Borland Together, or on a different stack; MS DSL Tools) and the emergence of Language Workbenches (f.i. JetBrains MPS, Intentional Software) held a lot of promise for development of business software.
Basically increasing the level of abstraction without the downsides of conventional generators.
But years later I don't see any results of this promise. What I see is that standard applications (CRM, ERP) took that market.
So my question is: are these techniques a failure? Why? Why not? Have you done projects with any of these techniques? What's your verdict?
The context of my question is that I'm considering moving my career to that subject.
To be specific: I'm not thinking of DSLs in the sense of one-of text languages. I'm thinking of development paradigms where you can develop a DSL complete with code completion in an IDE for a client in a repeatable way. One 'generates' a DSL IDE once specifically for a family of software systems that are suitable for a specific clients environment. And then subsequently the client can use this DSL IDE to quickly develop systems.
I thought that the later developments of MDA/MDD (involving Eclipse QVT f.i. like in OpenArchitectureware or in Borland Together, or on a different stack; MS DSL Tools) and the emergence of Language Workbenches (f.i. JetBrains MPS, Intentional Software) held a lot of promise for development of business software.
Basically increasing the level of abstraction without the downsides of conventional generators.
But years later I don't see any results of this promise. What I see is that standard applications (CRM, ERP) took that market.
So my question is: are these techniques a failure? Why? Why not? Have you done projects with any of these techniques? What's your verdict?
The context of my question is that I'm considering moving my career to that subject.
To be specific: I'm not thinking of DSLs in the sense of one-of text languages. I'm thinking of development paradigms where you can develop a DSL complete with code completion in an IDE for a client in a repeatable way. One 'generates' a DSL IDE once specifically for a family of software systems that are suitable for a specific clients environment. And then subsequently the client can use this DSL IDE to quickly develop systems.
Not sure I'm answering your question, but DSLs are used regularly in Ruby projects, because Ruby makes it quite easy to create your own DSL.
Some examples: Puppet (server automation tool), Rails config filses (e.g. routes file and Gems) , RSpec/Cucumber (testing frameworks), Rake (Ruby make tool), Sinatra (web framework), XMLBuilder, etc.
I think IDE's with proper Ruby support should support any DSLs you create.
posted by Sharcho at 6:44 AM on May 14, 2011
Some examples: Puppet (server automation tool), Rails config filses (e.g. routes file and Gems) , RSpec/Cucumber (testing frameworks), Rake (Ruby make tool), Sinatra (web framework), XMLBuilder, etc.
I think IDE's with proper Ruby support should support any DSLs you create.
posted by Sharcho at 6:44 AM on May 14, 2011
Response by poster: Thank you for your feedback.
I guess the deafening lack of answers is an answer as well: people don't know about them and/or aren't interested.
Yes, Dr Dracator, abstraction leak is the major risk of generators. I was hoping that this approach minises this risk by making them into a true language including stacktraces and debugging.
Ah well. I guess I'll just dabble a bit using Eclipse.
Sharcho, I was referring to DSLs one meta level higher than the ones you are referring to.
posted by joost de vries at 6:15 AM on May 20, 2011
I guess the deafening lack of answers is an answer as well: people don't know about them and/or aren't interested.
Yes, Dr Dracator, abstraction leak is the major risk of generators. I was hoping that this approach minises this risk by making them into a true language including stacktraces and debugging.
Ah well. I guess I'll just dabble a bit using Eclipse.
Sharcho, I was referring to DSLs one meta level higher than the ones you are referring to.
posted by joost de vries at 6:15 AM on May 20, 2011
This thread is closed to new comments.
Also, most clients don't want to quickly develop many systems: They want someone else to develop one system for cheap, and then keep it running and out of the way. It's the developers who want to quickly develop many different systems in a safe, conceptually clean manner - traditional text-only DSLs cover this need admirably, and everyone should be using more of them IMHO.
That being said, there is one area where end-user-friendly DSLs under a graphical IDE reign supreme: industrial/laboratory automation with systems such as LabView. It's a platform for managing data acquisition and automation electronics, where programming is done by connecting ready-made components in a graphical environment. I understand it is hugely successful, but you have to take into account the fact that its target users are pretty sophisticated.
posted by Dr Dracator at 11:34 PM on May 13, 2011 [1 favorite]