Here is the full list:
Here is the full list:
On the building side we have Grunt and the less popular but still useful Jake.
Ember's property system is a DSL.
Angular's DI syntax is a DSL and as much as I love Angular there's really nothing to like about the horrible mix of ([{ that one has to use here.
Actually Ember and Angular and just about every meaningful javascript framework defines several small DSLs.
Pencil Code is an excellent learn-to-program DSL built on Iced Coffeescript.
Coffeescript's crazy syntax makes DSLs slightly more approachable than Javascript but only for a while.
Express and most server frameworks define a DSL.
Anytime you find yourself passing a non trivial config struct you're really playing with a DSL.
This is by no means a complete list.
Using DSL to describe your domain (application) is normal. One application = one domain.
Learning in addition 15 different DSLs for libraries and tools, just because it's cute, is not the way to go. Soon you will argue about the exact definition of monad instead of shipping code.
Macros are used to great effect in Lisp land. They can be used to great effect in JavaScript land, too. With great power comes great responsibility.
Does anyone know Arc well enough to point out some macros used in HN's source?