Then I realized that I was not the only one: Other people have lost their faith...
Now I realize this was all a spiritual tempest in a teacup. The wisdom was always there, you only had to listen to the right preachers:
There are more external DSLs out there than most people realize and more often than not, I see companies trying to get rid of them.
This is an interesting post by Michael Feather.
I did not know that Erlang was dropped by Ericsson (aka. open-sourced) because thy were concerned with their ability to hire and train developers.
The thing to remember about DSLs is that they are a commitment and the commitment doesn’t end when the initial implementation is done.
i have a hunch that failing with dsls for those reasons is due to lack of code transformation tools.
ReplyDeleteif you have those (easy if the dsl was designed around the tools, not vice versa), i would hope:
1. migration gets easy
2. you won't want to
p.s.
btw erlang is not a dsl to my mind.
i admit, erlang is... special.
but so are many other perfectly valid general programming languages.
is occam a dsl too, then?
these are adapted to an architectural paradigm, but not limited to a special set of problems.
One problem with crises of faith - in either direction - is a tendency to only see one side of the story. Michael Feathers does indeed say you'll end up in trouble if you don't commit to maintaining your DSL, but he also says: "If you can, it's worth doing. DSLs are powerful technology.... I like external DSLs and I think we'll see more of them."
ReplyDeleteIf you want to see some more ways to fail with DSLs, i.e. things to avoid if you want to be successful and get the benefits, take a look at our paper, which analyses 76 DSL cases from over 15 years:
Worst Practices for Domain-Specific Modeling, Steven Kelly and Risto Pohjonen, IEEE Software July/Aug 2009
http://www.metacase.com/papers/WorstPracticesForDomain-SpecificModeling.html