Does OSGi Increase Complexity?
Is overcoming the learning curve of OSGi today, worth modularity tomorrow?
“There is a stark difference between complexity brought on by lack of tooling and platform support versus complexity associated with an ill-conceived idea,” writes Kirk Knoerschild in his latest blog post.
In his opinion, the major problem with OSGi is not the complexity of the OSGi framework, but the limited enterprise-class tooling and platform support, which can sometimes make OSGi difficult to implement.
A new technology always takes time to learn, therefore, it is bound to feel difficult at first. But, if OSGi becomes more widely adopted, it seems logical that the tooling and platform support (in addition to the supporting documentation, tutorials and blog posts, as suggested by Ian Skerrett) will increase, and more support will of course make it easier for newcomers to get to grips with OSGi.
The question Knoerschild poses is whether the struggle of overcoming the hurdles of today, is worth the gain of a modular architecture tomorrow. It seems this is a matter of personal opinion.
Knoerschild sees a correlation between OSGi, and more widely adopted technologies such as Spring, Hibernate and Hudson. All of these technologies are, arguably, challenging to implement, but their benefit in terms of creating flexible software systems is significant.
Modularity has its benefits, it just requires learning new concepts, tools, and design paradigms. “OSGi does not increase complexity;” he concludes “the very benefit of modularity is that it helps us manage complexity.”