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.