I had an interesting conversation with Tricia Balfe from Nomos Software last week (all conversations with Tricia are interesting!).
If we are generating solutions from abstract level models, what are the attributes of a good target technology?
3 things I argued for:
A) Separate the assembly of the system components from the components themselves.
B) Full visibility of the code, one of the advantages of open source.
C) Separation of concerns.
Doubts about my convictions, unusually, occurred. Am I prioritising these because I am using Spring Framework, and these are the core strengths of Spring? The Dependency Injection of Spring means components are wired together in an independent layer. And Spring makes heavy use of Aspect Orientated Programming, which is great for separation of concerns. For me, makes it easy to assemble solutions from the widest possible choice of generation approaches.
By what attributes should a target technology be measured?