Sobes.tech
Junior

What is imperative and declarative programming?

sobes.tech AI

Answer from AI

Imperative programming describes how to achieve the desired result, focusing on a sequence of steps to change the program's state.

Declarative programming describes what the result should be, without going into details of how exactly this result will be achieved.

Comparison:

Imperative Declarative
Core Describes steps (how) Describes the desired result (what)
Focus Changing state Describing the target state
UI Example "Take an element, change its color to blue, then move it 10 pixels down." "The element should be blue and located 10 pixels below its original position."
Language Examples C, Java, Python (often used imperatively) SQL, HTML, Prolog, React (largely), Flutter

In Flutter, UI is built declaratively: we describe how the UI should look for the current state, and the framework itself determines and performs the necessary changes to achieve this state.

Example of imperative text change in a hypothetical app:

// Hypothetical example
TextView myTextView = findViewById(R.id.my_text_view);
myTextView.setText("New text");

Example of declarative text change in Flutter:

// Inside the build method of a StatefulWidget
Widget build(BuildContext context) {
  return Text(_currentText); // _currentText is a state variable
}

// Method to change the text
void _changeText() {
  setState(() {
    _currentText = "New text"; // We simply change the state
  });
  // Flutter automatically rebuilds the Text widget to reflect the new value
}
What is imperative and declarative programming… - sobes.tech