Lunch programs are not socialism. It is taxes used to pay for lunches, but the means of production is not owned and controlled by the government or the workers.
The main reason people are homeless (not by choice) is because they can’t hold down a job - usually because of substance abuse. So, if they are unemployed, how can they afford to pay for basic expenses associated with the house - maintenance, utilities, property taxes, insurance?
Even if someone else pays for it, people who are given something for free don’t appreciate it and, thus, don’t take care of it. So, free housing eventually become slums.