Prison is a huge problem. I'm not a criminologist or a psychologist, but there is a lot of truth to the fact that most people think and behave like the people that surround them. Our solution to crime is to surround you with exclusively convicted criminals for a few years.
Worse, going to prison or even jail just wrecks your life. You lose your job, most likely your house, your family suffers hugely, and you have a black mark if you do try to get any legitimate job in the future. It requires a lot of resilience and ability to delay gratification to bounce back from that. Of course the lack of those characteristics is probably a big part of what landed the person in prison in the first place.
Prison seems pretty bad. On the other hand, there has to be some sort of deterrent to committing crime, and for the worst cases, the public simply needs to be protected from some people. You see the lack of this in SF now. The police don't act in cases of smaller misdemeanors like shoplifting or car breakins, and so they're rampant.
For people that have poor future orientation, prison isn't that great of a deterrent. If you're going to use punishment as a deterrent, it works much better if it's consistent and quickly follows the behavior to be extinguished. Being arrested and sentenced only with some probability, and perhaps days or months later just doesn't work all that well. If we take, for example, shoplifting, if potential shoplifters knew that the second they walked out the door of the store, with 100% probability, that they were going to get punched in the face and the stuff taken away from them, no one would ever do it.
I think we need to come up with punishments that are less severe, more immediate, and more certain.