Foreign aid should be exactly that, aid for specific things that need fixing that countries can’t handle on their own. It shouldn’t be a bribe for favors, routine payouts to countries that don’t need our money, or attempts to “convince” others to be like us. We shouldn’t be running social programs in countries like China that can afford to do them on their own. Except for humanitarian aid in the event of a natural disaster no US aid should go to nations that are openly hostile to us.
What about helping underdeveloped countries? Help for those nations should be directed towards making the country self-sufficient, and that requires some political stability. Countries that are locked in long term civil war or centuries-old tribal conflict must stabilize themselves before they can reach that goal. What if most of the aid gets siphoned off by corrupt government officials or local warlords? In some cases you may have to admit that external aid can’t help a nation until the people who live there stop killing each other. Money cannot impose peace but it can buy more weapons of war. Even our efforts to improve health in some nations are unwanted to the point that health care workers are murdered. Let’s send those workers where they are wanted and bring them home alive.
2016 Update: The president of “poor” South Africa acquired a new luxury plane for himself and up to 300 guests at a cost of around $200 million. We gave SA $571 million last year. We can cut $200 million from our aid next year. Point made.