I'd rather a less materialistic, more personal way to give charity: have a poor hungry person at home and give them food, give a poor man's child basic education, give time towards making a shelter for the homeless. And the likes.
But, no! They'd rather have the money, of course.
Now, could this mean I do not like giving away my money? Let me make it clear - That's true.
I think money is impersonal. (Again) I don't feel like I did a good deed by giving away money. And, if the whole point of charity is to provide help to the needy, then I think the help should be (more) permanent.
PS: These thoughts do not pertain to Zakat.