you will get many answers.
things to consider.
what is the application?
what is the environment the system will be installed in? Class / Division?
what's used in the area / plant you work at.
local distributor location, stock, support ability.
cost of programming software & interface cables
don't forget to add 20% spares to the project, you will always want to add something.
james