> For the complete documentation index, see [llms.txt](https://docs.essential.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.essential.builders/learn/declarative-vs.-imperative-concepts.md).

# Declarative vs. Imperative Concepts

Declarative blockchains are a novel concept. In order to fully grasp what they are and why they are important, it's helpful to first understand some core principles and ideas.

This section provides background context on:

* [The differences between declarative and imperative approaches to programming](/learn/declarative-vs.-imperative-concepts/declarative-vs.-imperative-programming.md)
* [The pitfalls of imperative design in the context of blockchains](/learn/declarative-vs.-imperative-concepts/imperative-pitfalls-pt.-1-sub-optimal-outcomes.md)
* [The rising adoption of intents as a declarative design pattern in web3](/learn/declarative-vs.-imperative-concepts/early-declarative-applications-the-intent-narrative.md)

{% hint style="info" %}
This section of the docs is designed to be read sequentially. You'll get the best understanding if you go through page-by-page.
{% endhint %}

### A Note on Terminology

Throughout these docs, you will see the following words a lot:

* Declarative
* Intent; intent-centric; intent-based
* Outcome; end-result

Fundamentally, they all refer to the same concept: that interactions with blockchains should be framed and processed in terms of the user's intended outcome.

When a user submits an **intent**, they are making a **declarative** statement about what **outcome** they want on-chain.
