~/talk

Clojure Katas - Designing Data-Driven DSLs

Talkat Clojure/north 2020 · 2020-06-25..06-26· [functional-programming]
links:none on file
links:none on file
slides:none on file

Argues that libraries accept plain data structures (EDN/JSON) instead of string grammars or opaque macro/fluent APIs, so code generation, inspection and composition become easy. Gives concrete examples: regal for regex, reitit for routing (noted as fast and efficient), and a move from spec to malli because malli lets tools walk and generate forms; a homegrown tada service DSL is built and used at the company. Notes limits: more verbose, poor fit for imperative tasks (Ansible/YAML) and complex SQL features.

AI-written summary · about

  1. 0:00Start
  2. 5:47Introduction to workshop
  3. 7:14What are DSLs?
  4. 9:00The bargain of DSLs
  5. 11:43History of DSL approaches
  6. 12:58Custom syntax dsls
  7. 14:05Fluent APIs
  8. 17:31Data-driven APIs
  9. 19:26Comparing dsl approaches
  10. 22:48Advantages of data-driven
  11. 25:26The complexity tradeoff
  12. 29:05Downsides and limitations
  13. 31:41Examples in cloJure
  14. 35:47Adoption in other ecosystems
  15. 37:10Applying data-driven design
  16. 42:16Workshop task assignment
  17. 45:41Working session
  18. 48:12Review: Graph DSL
  19. 50:39Review: Byte array parser
  20. 54:33Review: Gherkin DSL
  21. 56:35Review: XSLT for EDN
  22. 58:23Review: 3D modeling DSL
  23. 59:40Review: Dominion card game
  24. 1:00:03Wrap up
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.