OSGi helps establish good practices in software development by effectively applying at a macro level these good OO practices:
- hide implementation details (design by interface contract)
- minimize dependencies (high cohesion, low coupling)
Declarative programming and in particular declarative services promote:
- extensibility (e.g. wrapping a web server)
- writing POJOs and using in a larger context
Keeping the data model and visual representation separate promotes:
- not writing too much from scratch
- maintaining the reusability of core logic
- allowing different app versions per audience
- grow or shrink app