Introduzione ai Domain Specific Languages

Il libro ‘Domain Specific Languages’ di Martin Fowler: panoramica sui DSL. an open Domain Specific Language (DSL) book with software code mixing into a design flow, on a wooden desk with a laptop in the background

Un Domain Specific Language (DSL) è “un linguaggio di programmazione di espressività limitata focalizzato su un dominio particolare”. Secondo Martin Fowler, possiamo distinguere tra DSL interni ed esterni: I DSL interni sono un particolare modo di usare un linguaggio di programmazione generico. Ad esempio Rails, l’ormai famoso framework di Ruby, viene spesso visto come una collezione di DSL. I DSL esterni, al contrario, sono linguaggi separati dal linguaggio principale dell’applicazione con cui lavorano, come SQL, CSS, SASS e HTML. Un altro aspetto chiave è che il DSL permette la manipolazione di una libreria o framework, spesso riferito come modello semantico. Tra i benefici principali dei DSL, Fowler evidenzia l’aumento della produttività nello sviluppo e una migliore comunicazione con gli esperti del dominio (content engineers, product managers, ecc.).