Buzzword Buster – DSL

Definition:

A Domain Specific Language (DSL) is a programming language that’s dedicated to a particular problem domain. DSLs are often used to support domain-drive design and modelling. It’s the opposite of general purpose programming languages such as C# or Java.

Advantages:

  • Code looks like domain prose.
  • Easier to understand by everyone.
  • Easier to align with requirements.
  • More succinct (so less code is required!).

Disadvantages:

  • Hard to design, test and debug.
  • Bad API designers make even worse DSL designers!
  • Different people use different terminologies (think mobile in the UK and ‘cell’ in the US) which reduces DSL’s ability to bridge gaps in communication.

Parting thoughts..

  • Industry specific, so from a career and personal development point of view, it’s not attractive to me to specialize myself in DSLs and be locked into one industry.
  • Existing expertise and talent is hard to find (compared to general purpose languages).
  • Additional training required for people new to the industry.


Yan Cui

I’m an AWS Serverless Hero and the author of Production-Ready Serverless. I have run production workload at scale in AWS for nearly 10 years and I have been an architect or principal engineer with a variety of industries ranging from banking, e-commerce, sports streaming to mobile gaming. I currently work as an independent consultant focused on AWS and serverless.

You can contact me via Email, Twitter and LinkedIn.

Hire me.