A lot of those points were discussed in a previous thread on CS, a few months ago.