Declarative programming in D
When term "declarative programming" is used in context of imperative languages,
it is most often associated with Domain-Specific Languages. However, it is a
more general approach with essential value of separating meaningful description
from boilerplate behavior. It is already widely used in D programs and won't be
a revelation for any experienced D users.
This talk tries to somewhat generalize this approach and popularize it as common D paradigm, as well as speculate upon possible improvements to D
reflection capabilities that can make it even more powerful.
- Define term "declarative programming" in context of this talk (and why it is applicable here)
- DSL: ctRegex and Pegged as famous examples. Most obvious example of benefits that declarative approach can give over straightforward imperative code.
- Generalize idea to any code generation based on concentrated input and description.
- Move as much useful information as possible into declarations: pros and cons over custom DSL approach.
- Overview of related D tool set, speculations about possible design patterns
- Reflection-based declarative approach: hibernated and vibe.http.rest as beneficial examples.
- Speculation: high level test coverage verification
- Speculation: why limit to declarations? Separating expression/statement reflection from AST proposal.
- Thoughts about existing issues.
Programming & open-source enthusiast. Contributor to several D projects, most notably vibe.d. D developer at Sociomantic Labs. One of Arch Linux Trusted Users.