Ansible has none of the things that make declarative languages good, though. Good Declarative languages allow composition - Having a base object, adding properties to it, overriding others. Ansible handles none of that in it's playbook syntax or it's vars syntax. In the role and module syntax, sure, but they're turing complete anyway.
If I were them I'd sunset the old syntax in the next version, create a conversion tool that works for 90% of cases and then drop support for the old file format.
But that's what I would do, and it would probably kill the project.
As soon as people can't cut and paste Ansible 1.x roles from github into their project, Ansible would probably start to wither.[1]
That's the typical workflow. You need to do something on your linux box. You google that, find a decent Ansible solution, cut and paste a few text files maybe modify it a bit and repeat.
[1] And this s another reason declarative syntax is so awesome, because it's easy to snap roles together like lego bricks.