3 ms·
>the ability for normal people to craft new software artifacts without the need to learn a formal programming language. The problem with that is that normal pe
by fauigerzigerk 9y ago
>the ability for normal people to craft new software artifacts without the need to learn a formal programming language.
The problem with that is that normal people often have formal requirements that software has to meet in order to be useful.
Therefore I think the secret to end-user programming is not to be less formal. It's to be less complete or less general - DSLs.
But at that point you could legitimately ask whether it's programming at all or just configuration and what was actually achieved compared to the status quo.
- TuringTest 9y agoYou'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.