Puppet has followed the evolution of most declarative systems such as HTML or SQL. At first, basic needs could be expressed in the declarative language, but as the nature of the work being performed became better understood, the declarative language became more powerful and could describe more complex and sophisticated results.
FORBES: Why Adopting the Declarative Programming Practices Will Improve Your Return from Technology