2 ms·
You're right about DSLs; they're the greatest tool for tasks that require a formal spec. The thing is, not all tasks that users engage with need a formal sspec
by TuringTest 9y ago
You're right about DSLs; they're the greatest tool for tasks that require a formal spec.
The thing is, not all tasks that users engage with need a formal sspecification. For those, the ability to iterate and refine quickly is more valuable than having a precise description of every machine behaviour; I'm thing of things like page structure on Wikipedia (optional, and done with simple text markup); or the structure of documents in outlets like OneNote or Evernote, or attributes in Excel tables, which are all easy to re-arrange on the fly without needing a data schema.
All my examples refer to data structure. What's missing is that kind of lightweight, optional structure for behaviour. All current software, except debuggers and unit tests, expect a fully defined program to be defined before execution.
Power users need a top level loop that could execute partially specified functions over any DSL, prompting user input for the parts of the procedure not yet specified, and the capability to expand the DSLs themselves. There's nothing in the status quo like that, although environments like Hypertalk, Squeak and Excel are close, yet limited to a single DSL each.