Requirements of a DSL engine

time to read 1 min | 124 words

Getting a DSL to work for a single file is fairly easy. Getting it to work in a real application is much harder. There are quite a few scenarios that you need to deal with irrespective of the DSL itself.

Those issues include:

  • Caching - compilation is expensive
  • Batch compilation - see above, also very important
  • Error handling - we can probably do at least some work here to make it easier. At the very least, output something like compilation exception would give us the nice yellow page with the error, compiled output, etc.
  • Automatic refresh - when the file changes, we can invalidate the cache and load from the file again.
  • IoC integration ?

What else do you think is needed?