Hi Nick.
welcome to CodeGuru. :)
Eri523 said pretty much everything .
i would like to point out that sth about your Question number 4:
that depends on the programmer and the chore he is going...