Archive for the ‘Qi4j’ Category


Saturday, June 9th, 2012


From the webpage:

What is Qi4j™?

The short answer is that Qi4j™ is a framework for domain centric application development, including evolved concepts from AOP, DI and DDD.

Qi4j™ is an implementation of Composite Oriented Programming, using the standard Java 5 platform, without the use of any pre-processors or new language elements. Everything you know from Java 5 still applies and you can leverage both your experience and toolkits to become more productive with Composite Oriented Programming today.

Moreover, Qi4j™ enables Composite Oriented Programming on the Java platform, including both Java and Scala as primary languages as well as many of the plethora of languages running on the JVM as bridged languages.

Introducing Qi4j™

Qi Qi4j™ is pronounced “chee for jay”. This website is out of scope to explain the many facets and history of Qi, so we refer the interested to read the lengthy article at Wikipedia. For us, Qi is the force/energy within the body, in this case the Java platform. Something that makes Java so much better, if it is found and channeled into a greater good.

We strongly recommend the background article found in the introduction.

Covering Qi4j in part because Emil Eifrem covers it in his “kicking ass” slides on Neo4j.

But also because I like domain oriented design.

Software should fit a domain and not have domains tormented to fit software.

That does create problems with what to standardize and what to enable to be unique. Not everyone can afford one-off software.

My suggestion would be to standardize the interchange of data to enable competition between unique capabilities of software, so long as it write back to a standard format.

From entries at the website it appears that Qi4j is emerging from a period of dormancy. Now would be a good time to contribute to the project.