@GIDS 09 – Workshop on DSLs
Session by Venkat Subramaniam
What are DSLs?
DSLs are domain specific languages. The sole reason of their existence is to solve a single particular problem and to solve it well and better than any other general purpose language.
DSLs are not new as such. We come across a lot of examples of DSLs in our day to day coding. CSS , ANT etc. They have a purpose to their existence and it is difficult for you to make them deviate from their purpose unlike general purpose languages. And guess what. They are sooper good at their job. So DSLs make good sense.
So according to Martin Fowler , there are two types of DSLs , External and Internal. Internal DSLs are so called because they need a host language to define their look and feel. External DSLs have their own custom syntax and a parser is required to process them.
How do I get Up and Running with My Very Own DSL?
Answer is simple. You need a tool. There are some available. The best of the breed being ANTLR. If you are an eclipse fanboi then take a look at xtext. My good friend and colleague , Phaneesh blogged about bloated softwares the other day. I am glad that some powerful stuffs still come in small packages. ANTLR is all of 2.93 mb :)
Why do we need DSLs as an organisation?
As an organisation, we are looking at various new ways of development of new products and trying to better our software delivery model by changing the rules of the game.
But we need to do it faster. We have tons of code in what is generally called as legacy architecture. In my opinion , we need good DSLs written by us to get things done faster and more efficiently. I know we are taking steps in those directions. DSLs will help us a great deal.
Get the whole presentation here. And while you are at it, browse the site. Its informative.