Rather than emphasizing how to do something, declarative programming focuses on what needs to be done - you describe what should be accomplished and the program handles the specific procedures. The main advantages are that it's easy to read and write. However, a disadvantage is that it can be difficult to control all the underlying flow, making it less suitable for system-level applications like embedded systems.
One tragedy of programming is that declarations must be made in the opposite order of execution, the reverse of dependency. And this problem is not solved by hoisting. Code Readability
Declarative Programming Method

Seonglae Cho