Facebook was great, then the spam came.
Twitter is great, and now the spam is here.
In order for a community to flourish it must have members. With members comes momentum and with momentum come the stupid people. This is the tricky part about preventing spam in a user-generated content community; there is no way to keep out the trouble makers without limiting the community's potential for everyone. Charge for the service and some people are left out (I would have to reconsider using Facebook if they charged). Before you knew what Twitter was or how it worked, would you have paid to use it? I did not understand Twitter at first until I used it a while then realized the value. On top of everything else, even if a community charged its users, this still would not guarantee the safety of a spam-free environment.
I do not think there is an easy fix for spam on social networks. We should probably get used to a certain degree of it. While spammers will get smarter and smarter, the only defenses we have are better anti-spam education, better spam filters on the communities, and harsh punishment when possible. I personally think that Twitter has done a good job so far to let people know about DM spam. Hopefully the developers have taken a few lessons from MySpace and the others that have lost control of the problem.