The work on Kauri is shaping up nicely. Last week we've passed the tipping point in the ratio of drawing-board time versus actual practical coding and assembly. Our progress in both areas can be followed on the project wiki (keep an eye on the recent changes feed) and the commit history on the project svn.
It's motivating work, but apparently to some people (namely a candidate for the job vacancy we interviewed this week) it is a line of action that requires motivation: Just why are you building (yet another) framework?
The classic attitude adopted by many framework teams is using the paradox logic: "The fact so many frameworks are out there already is the absolute motivation: this proves there is no clear winner yet!". Try to read that without sensing a decent amount of ambition coming from such a statement.
The ignorant 'just because' answer actually is equally solid and unsatisfying. We believe software builders should be building software. And since we think good software builders don't repeat themselves their work is likely to end in a framework. Solve the bigger problem, right? Everybody is doing so, we're just doing it out in the open. Knowing others will be looking over our shoulders make us think double. Don't ask why fish swim.
The downright pragmatical reasoning is to be found in reading up on the details of what Kauri is about and understanding the power and flexibility of having our own code base under our hands.
oOo
Looking at the answers the conclusion to make is that "Why are you
doing ?" is the wrong question to ask. "How are you doing it?"
is where the attention should go to.
The 'how' of Kauri is about assembly and combination, about doing one thing
well, and mixing that in with the work of others. It is about participating in
the neighboring projects we work with, picking up ideas, adding our own value.
Giving in to my poetic side I would compare this multitude of open frameworks to what oceans do with coast lines. It really is about convincingly reducing mountains into rocks, pebbles, gravel, sand and finally soil: along the path there is much flexible material that allows many building purposes :-)
From this view, I would say that people who just use a framework didn't get into the web era of programming yet. A framework is not an endpoint. Its community is an entry-point to this vast organic pool of shared memes that float between all of them and helps shape a common foundation.
To this regards, yesterday we moved out our 'kauri-template' code to a new 'universe' directory. There is a statement in that directory name: there you are to find all pieces of code that have no dependencies upon Kauri as a framework, but just share the name, branding, community origin. Pieces that are in their own right useable and reusable, regardless even of Kauri itself. So even if you don't opt for the entire Kauri proposition, there might be smaller juicy framework tidbits you could (or should?) be interested in.
In the case of our templating system this is also the prime reason why we've
had to build our own. To
our finding
there was no other xml focussed templating system (in Java) that can easily be
loosened from the bigger system that produced it. We are not done on the
feature list
yet, but we are convinced we made the essential cut right: KTL is a pure
standalone templating system that will allow you to hook up your own variable
context and source-resolution, plus extend on the template tags and expression
functions.
Oh, did I mention it will efficiently process your templates?