Ask HN: Declarative vs. Imperative

2 pointsposted 4 hours ago
by KenPainter

Item id: 49815385

1 Comments

Leftium

an hour ago

Perhaps you may find like-minded folks in the functional-thinking community:

I was trying to figure out what you meant by "declarative" because CSS is declarative. (My understanding is: "declarative means you say (declare) what you want, but not how to get it." Usually SQL is the poster child of declarative languages.)

I think you're really talking about a mix of preferring data (vs actions/calculations) and DSLs (which aren't necessarily declarative)

Eric Normand has some thoughts you might appreciate:

- How a problem might take 1000 SLOC to solve directly, but only 10 SLOC with a DSL (plus up to 500 SLOC for the DSL itself; still fewer lines total) https://ericnormand.me/podcast/magical-leverage-languages

- Data vs calculations vs actions: https://ericnormand.me/podcast/what-is-an-action

---

I think data can be very powerful. For example, someone explained to me:

> I've been helping my non-tech father with Home Assistant. I've honestly been shocked with how far "community extensions" + "user configuration" can take you. Every time we hit a bug, I go "time to hit github" but without fail chatgpt and him are able to tweak a setting to get it working.

If you make your system configurable (config==data), you can skip the whole compile/build step!