Thursday, October 13, 2005

Rewrite this!

There is a big discussion on the magnolia mailing list about how everything should be rewritten with some great new technology. We have had the discussion for along time - and its a valid discussion, and a very interesting one. Lets have some facts:

Magnolia has originally been written by obinary (my company). On the first team were Sameer (still the core developer) and Sala. Sala wrote the GUI for 1.0. Later Sala left and Enz joined. Enz really redefined the way that Magnolia works. When he left to join Day , we were looking for the most talented developer for the task at hand - understanding what has happened so far, and bringing us up to the next level. Philipp has done a tremendous job, and he loves what he does. He has written several frameworks and knows not only Java but also .Net - he is an outstanding developer in many ways if ever I have seen one. I am honored to work with Sameer and Philipp.

Now back to the issue at hand. What we have technically is not perfect, but some parts are pretty well thought out, and we know where the weak spots are. We have the option to either move to a new technology (JSF has been a favorite candidate due to our philosophy of using standards where sensible) or further improve what we have done so far.

Now, its not all black and white. There are great technologies out there, and I have a couple of favorites myself. I would never have used JSP or JSR-170 in the first place (I love webobjects). However, both choices have proved valuable. JSP is great for templating (which is what it was made for). I am not saying there is no better stuff out there (Erik for one has done a great job of making me want to use velocity - he is really a great guy). But JSP works fine, especially if we provide the right tags to make things easy - like the simple navigation tag which lets you create lots of navigation as well as a site tree - with a simple tag and some CSS. We will keep it for templating. But for our controls (others would call them widgets) this is another matter altogether. The major point lacking (besides documentation) is validation. We could add apache commons validation to solve it, but in doing so, some effort would be needed that could otherwise be spend in introducing JSF.

But of course, everyone has his own favorite opinion. Kayle, who did some great stuff to Magnolia, finally decided that sharing his code might after all be better than maintaining it alone, certainly has a point when he asks to look at Spring. Well, these days if you don't look at Spring, people would think you are blind. It sure is great stuff. But so is Rails. Or ...

And what will it be next year? In five years? Shall we rewrite forever just to be fashionable?

Markus put it well - "... mean major efforts, binding lots of developer resources, probably cause a lot of instability for the next releases (both API wise and in terms of runtime stability, as mature, well tested code gets replaced by new code)." He also added what he thinks is missing most - documentation, versioning, locking and link management.

More than 100'000 persons have already downloaded Magnolia, that's quite an achievement. If we want to make the next 100'000 downloaders happy, we better do what Markus said instead of wasting our lives hunting for the latest trend in technology.

No comments:

Post a Comment