The Qi4j talk was conducted yesterday where Rickard (creator of XDoclet, Jboss App Server kernel) spoke. The project is new and brings about a radical change of coding in Java. Before that, it is stressed that Qi4j is an implementation of composite oriented programming in Java. The turn up was a disappointment to me personally since it’s rare that such a high profile speaker graces the stands here in Malaysia.

I mentioned that Qi4j’s way of programming Java is a very radical departure from conventional coding, for bad or for worse. Unlike other frameworks that tries to take on the non-invasive approach (think Spring), Qi4j imposes an odd way of coding. A great example is that if you’re coding application logic, forget about using the ‘new’ keyword, ever. That’s right, you ain’t never gonna instantiate anything. The framework does that for you. You’ll also need to drop the notion of classes as the smallest unit, and instead wrap your head around the fact that composites are which in turn are made up of fragments and mixins. Fragments in turn are domain oriented categorized advices (from the AOP term). You might be thinking WTF?! right now. Told ya, radically different from conventional programming - which I might add is object-oriented programming, not composite oriented programming.

I have not started looking at the examples yet, because frankly speaking, Qi4j is not ready for prime time. When it’s mature, Qi4j should bring along increased productivity due to the reusability of the mixins and fragments, provided enough mixins and fragments are available.

See more info on Qi4j - www.qi4j.org