As the new year begins, it seems relevant to give some information on the planning for zena.
First of all and most importantly: zena is moving to Merb / Datamapper / jQuery ! We have heard the big noises made by the merb + rails fusion into rails 3 and first thought that we should wait and directly jump into “Mails” (or “Rerb”). But since we have been longing for a lighter framework for quite some time, I think we can make the move now and see how rails 3.0 coming with a sane base.
[edit] Before doing a framework update to merb we intend to first work on modularity, experimenting with merb/rails2 as we go. The lesson from all this is that if zena becomes very clear and modular (what I have always tried to do but couldn’t achieve on my own), it will not be very hard to make the move to rails 3. The goal for now is to learn merb and get the maximum of inspiration from it. Port experimenting will also help clarify the interfaces between zena and its framework.
And it’s not just about Merb vs Rails but also about Datamapper/ActiveRecord and jQuery/Prototype. ActiveRecord takes way too much power to do things and has lots of neat features that are absolutely useless in zena (for example: clever queries) since all SQL is built by the “pseudo sql” parser.
Clear benefits from DataMapper are the “Identity Map” (one object in DB = one object in memory), “laziness” (no need to load big text blob all the time) and speed (less calls to get attributes).
If we manage to do our fulltext search using Sphinx, we will also drop the last MyISAM table and move everything to InnoDB in order to fully support transactions.
The move from Prototype to jQuery is not so important. I would like to make this move because I could never wrap my head around Prototype. I first thought this was due to my bad javascript skills (which might be true). But then I found jQuery and the way it handles contexts is very much like what we do with zafu. It feels more natural and working with it might even be inspiring. So the jQuery is optional and will come last.
All these framework changes should happen before the end of February 2009.
This will be the first public stable release and is due on the first day of Spring: March the 20th 2009.
Gaspard Bucher
comments
I have started an article to clarify the steps needed for the transition and to help us understand the problems before they jump at our faces: transition to merb