This is the 23rd Step towards gaining the Programming Enlightenment series. If you didn’t learn the 22nd Step, read it.
Learn the trade, learn the game and speak the game.
Every domain has their own Jargon. Experts seem to speak in their own lingo, with sets of vocabulary which is particular to their domain. These are termed as Domain-Specific Language.
What is Domain-Specific Language?
You may have come across terms like Regex, Sql statements, CSS. These are some examples of DSL in software developers domain.
A Domain Specific Language (DSL) is a programming language designed specifically to express solutions to problems in a specific domain
The basic idea of DSL is a computer language that’s targeted to a particular kind of problem, rather than a general purpose language that’s aimed at any kind of software problem.
Why should we use Domain-Specific Language?
By hiding technical details, DSLs can empower users by giving them ability to adapt to systems without much technical developer.
It makes it easier to talk to target audience like developers, managers, customers or end users.
What are the types of Domain-Specific Language?
- Internal DSL:
Are general purpose programming language syntax, looking more like natural language. Eg, Ruby and Scala.
- External DSL:
They have their own custom syntax or textual or graphical expressions. It needs to be processed by tool chain like lexer, parser, generators etc. Example, XML, Unix.
TL;DR Know your language well. You don’t need to fret much about it, if you don’t know
Go to 22nd Step
Go to the 23rd path.
References:
- 97 things Every Programmer Should Know ~ Git Book
- 97 Things Every Programmer Should Know ~ Paperback
- Domain Specific Language~ Wiki
- Domain Specific Language ~ Book by Martin Fowler
- What is Domain Specific Language ~ MartinFowler.com