Discuss the choice of programming language and its relation to architecture, and the design decision in these six categories:
- Allocation of responsibilities
 
- Coordination model
 
- Data model
 
- Management of resources
 
- Mapping among architectural elements
 
- Binding time decisions