While in theory I agree, in practice, what else can we do? Someone commits a crime, they need to be punished. Sure, we can levy fines, but if the person is rich, they just pay them and it doesn't matter to them. If they are poor they can't pay them anyway so what do we do then? If someone steals a car, we can try and get them to pay for the car, but they probably don't have enough to do it. Sure, we can garnish wages for the future, but that is just a sure fire way of keeping the poor committing crimes because even when they do make money legally afterward, they won't get it.