After nearly 2 years of hard work, the Qi4j Community today launched its second generation Composite Oriented Programming framework.
Qi4j is Composite Oriented Programming for the Java platform. It is a top-down approach to write business applications in a maintainable and efficient manner. Qi4j let you focus on the business domain, removing most impedance mismatches in software development, such as object-relation mapping, overlapping concerns and testability.
Qi4j’s main areas of excellence are its enforcement of application layering and modularization, the typed and generic AOP approach, affinity based dependency injection, persistence management, indexing and query subsystems, but there are much more.
The 2.0 release is practically a re-write of the entire runtime, according to co-founder Niclas Hedhman; “Although we are breaking compatibility in many select areas, most 1.4 applications can be converted with relatively few changes.”. He continues; “These changes are necessary for the next set of planned features, including full Scala integration, the upcoming JDK8 and Event Sourcing integrated into the persistence model.”
“It has been a bumpy ride to get this release out the door.”, said Paul Merlin, the 2.0 Release Manager, “but we are determined that Qi4j represents the best technological platform for Java to create applications with high business value.” Not only has the community re-crafted a remarkable codebase, but also created a brand new website, fully integrated with the new Gradle build process.
“The new website keeps the documentation in sync with the releases.”, Paul added. “All the samples in documentation are actual code being executed in our test suite. I am very proud of the work that has gone into the new site.”
We asked Niclas, “The community calls the Release 2.0 “Reductionism”. What does that mean?”
“We wanted to make all the necessary changes, which breaks compatibility, as quickly as possible and get the leanest possible Qi4j out the door. Many advanced features that are planned had to wait. We simply wanted the base platform to be available first.”, says Niclas on the topic.
So what is really New?
“Everything”, says Niclas. “For Qi4j Core, the most important change is the introduction of functional paradigm in the internal runtime. This creates cleaner code, and we’ll be able to leverage JDK8 very effectively when it will be available. The second big thing is to reduce the Qi4j Core and increase the Extensions concept to more areas than persistence and indexing. We have now added metrics and value serialization, others to come.”
And what is Next?
“Our main focus will be developper productivity. We have things such as TimeSeries, Event Sourcing support in Core, easier Assembly of Application Stacks in sight for future releases.We aim at constantly enriching the whole SDK (libraries, extensions, samples and tools) and its documentation. Another objective is to grow the core community through more open participation.”, says Paul. “Yes, there is much visionary work ahead.”, adds Niclas.
The Qi4j Community is a set of loosely coupled developers working hard to create the most exciting domain oriented application framework for the Java platform. Qi4j is licensed under the very liberal Apache License 2.0.
– Qi4j Core Team