| In this, programs specify how it is to be done. | In this, programs specify what is to be done. |
| It simply describes the control flow of computation. | It simply expresses the logic of computation. |
| Its main goal is to describe how to get it or accomplish it. | Its main goal is to describe the desired result without direct dictation on how to get it. |
| Its advantages include ease to learn and read, the notional model is simple to understand, etc. | Its advantages include effective code, which can be applied by using ways, easy extension, high level of abstraction, etc. |
| Its type includes procedural programming, object-oriented programming, parallel processing approach. | Its type includes logic programming and functional programming. |
| In this, the user is allowed to make decisions and commands to the compiler. | In this, a compiler is allowed to make decisions. |
| It has many side effects and includes mutable variables as compared to declarative programming. | It has no side effects and does not include any mutable variables as compared to imperative programming. |
| It gives full control to developers that are very important in low-level programming. | It may automate repetitive flow along with simplifying code structure. |
| In imperative programming, the programmer is responsible for optimizing the code for performance | In declarative programming, the system optimizes the code based on the rules and constraints specified by the programmer. |
| In imperative programming, variables can be mutable. | In declarative programming, variables are typically immutable. |