Describing it as easy to pickup is correct, I think it's harder to master since there are inefficient and efficient ways of creating solutions. I also find it difficult to keep track of what you inject into classes through metaprogramming. It's very powerful, but can grow out of control if you over use it.