I've probably mentioned this before, but the other day at work I overheard two of my coworkers talking shit about homeless people, and one of them basically bragged about buying $5 McDonald's gift cards to give out instead of giving cash.
This is dangerous and dehumanizing bullshit and if you do this, you suck.
This kind of thinking comes from the idea that if you give a homeless person cash, they're going to spend it on drugs and alcohol. First of all, yeah, some of them might. That's their choice. Who are you, their parent?
Second, if you don't know what withdrawal from alcohol or a highly potent opioid feels like, fuck off with this shit. Withdrawal from alcohol can actually be dangerous. It can be deadly. Are you willing to risk lives just so you can stay up there on your high horse? Even if it's not going to be dangerous, it's awful, and they won't be able to do anything while they're in withdrawal. Many homeless people struggling with addiction have jobs. You want them to miss out on days of pay and potentially get fired? Give them cash.
Third, food isn't the only thing that people need to survive. Homeless people need socks and underwear, toiletries, menstrual products, and money for transportation. There are many things not covered by food stamps or your shitty McDonald's gift cards that are necessary for survival.
Finally, just in general, don't be a judgmental little shit. What do you know about being homeless? Oh, you've never experienced that? Then shut up and give that homeless guy a dollar. If you really want to help, fight for affordable housing, rent control, and more, stronger, and more effective welfare programs. Then fight capitalism. But mostly shut up.