You can unit test your configuration (which in ansible isn't really practical due to its dynamic nature). You can get completion in your editor...
In practice, though, you write a lot more code and have to comprehend more. Also have a look at community cookbooks, most stuff is very old.
I think chef have totally killed their community by doing that stupid EULA move. https://docs.chef.io/versions/