Why aren't domain-specific languages more popular?
-
Like graphic programming languages, is a programming paradigm that had some hype and gleam at one point, but never took off. Why? Related
-
Answer:
The question is not really well defined, but I like it because it makes one think about what we are doing with the knowledge ecology. DSL's have a limited place in this ecology. The answer depends a bit on what is meant by "popularity". As someone else pointed out, we use lots of DSL's behind the scenes (especially in text-oriented environments such as Linux): PostScript, command shell languages, and so on. But they're hidden within engines, and regular expressions are embedded in general purpose languages. I think the "hype" was based on several things that didn't translate well into the world of practice: The intellectual coolness factor for language geeks - an abstract idea that languages-creating-languages could get you some kind ofcreative and productive leverage for free. The "white paper" phenomenon of pitching ideas of leverage and control to corporate management. The fantasy of making things easier for an untrained public. With respect to the third point, how many times have we seen something hyped, like "Create complex applications without writing a single line of code!" ... when the reality is, the complexity has just been moved into another, non-standard, proprietary "language" and user interface. Surprising how often people fall for this technology conceit, and it's created with the best of intentions. Net gain? More complexity. No thanks. Don't make me learn yet another language and syntax! Expecially variations of XML. That's for machines, not people. And the same goes for many DSL's. It's too hard to build the bicycle before you go for a ride. Like DSL's add drag at an awkward point in the software engineering life cycle, in the hope of achieving a payoff later in terms of adaptability to a well-defined problem domain. Similar to the critique of (and the difference between and ), DSL and MDE heavily front-load the engineering process and don't well support informal coding and prototyping. You have to design and declare too much up front before you can get things to the application stage. The functions of a DSL are (1) to provide specialized functions while (2) hiding other complexity. (1) is done fine by embedded domain specific languages, a set of features presented within a general-purpose language (also known as libraries and frameworks). (2) is too restrictive for general purpose programmers and too arcane for non-specialists. You need a team environment to use these technologies. So it makes sense these approaches are more useful in high-overhead, high-formality industrial settings, but not where most of the world's programming happens. They don't transfer well from big corporation to startup and hobby programming, and so don't score much for "popularity" Other issues Having a specialized syntax is overrated and adds to the learning curve. If you take that away you might as well use embedded library functions instead. The model or language engineering process is unwieldly when there is a need to quickly change the model to account for unanticipated new requirements in the problem domain. The user of the DSL is either locked into a fixed set of features, or confronted by a series of versions that have functional discontinuities. Layman's terms, anyone?
Jeff Wright at Quora Visit the source
Related Q & A:
- Why aren't images in Wikipedia displayed?Best solution by Yahoo! Answers
- Why aren't Youtube comments shown?Best solution by Yahoo! Answers
- What are some really good cameras that aren't expensive?Best solution by Yahoo! Answers
- Why aren't any programs opening on my computer?Best solution by Yahoo! Answers
- My notifications on Facebook aren't showing up?Best solution by en-gb.facebook.com
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.