Re: Mason 2.0 thoughts

Dave Rolsky <[email protected]> Mon, 30 Apr 2007 09:12:32 -0500 (CDT)
Newsgroups gmane.comp.web.mason.devel
Message-ID <[email protected]>
On Mon, 30 Apr 2007, Jonathan Swartz wrote:

> * I agree that it is more worthwhile to focus on the templing portions 
> of Mason for the future, and to encourage people to consider more modern 
> mvc frameworks for the controller aspects. That said, many sites will be 
> using Mason in the traditional way for a long time and this needs to be 
> fully supported.

I agree that people will be using it, but I personally don't have a lot of 
interest in this piece. I'm not likely to spend much time working on it 
after it's initial creation.

> * I'd reduce "Things to Break" to an absolute minimum. Users hate 
> gratuitous backwards incompatibilities, and we got justifiably slapped 
> for this when we broke things unnecessarily for version 1.1. If you're 
> going to break things, you have to at least compensate users for their 
> porting efforts with groundbreaking new features or architecture. We did 
> that for 1.1, but I don't see this happening again in Mason's future.
>
> For example, <%filter> is ugly and I wish it had been designed 
> differently, but is used in enough sites that we can never get rid of 
> it. object_file_extension was probably unnecessary, but what's the big 
> win in eliminating it and annoying the four users that are using it? :)

I guess my idea is that people will have Mason 1.x for a long time. Why 
bother with any big re-architecture of the codebase is we can't also make 
some real changes at the same time. The <%filter> problem is particularly 
egregious, as its been an endless source of bugs, and its behavior has 
never been all that well specified.

One possibility might be offer a backwards compatibility option that 
implements filters in terms of components with content or something.

But really, the main reason for removing some crufty old bits is to make 
the project compelling for the implementors. Personally, if I had to 
support every little bit of the existing API as part of this work, I would 
be less interested in doing it.

> * A more considerate way to do the split, IMO, is to keep the framework 
> in HTML::Mason and move the templating portion out to Template::Mason. 
> Even then, we might use some package name trickery to avoid breaking 
> current users who are depending on the HTML::Mason::* namespace, e.g. 
> HTML::Mason::Commands.

I think the Template namespace has been more or less claimed by TT, 
unfortunately. I wouldn't object to leaving the framework pieces under 
HTML::Mason, however.

> * The one advantage of $m->cache is that it automatically separates 
> caches into private namespaces based on component, whereas AFAICT, 
> Catalyst has everything writing into a global cache. It would be 
> unfortunate to lose this feature.

This would still be available in the framework side.

I don't see this being needed for the template piece, though. One thing 
I'm realizing when I use Catalyst is that I'm inclined to do more work in 
the controller before calling templates, and then I pass in more stuff to 
the view when it's called. Given this, I've been doing caching in the 
controller and controlling the namespace there. It _would_ be nice if 
Catalyst had an auto-namespaced cache, however.


-dave

/*===================================================
VegGuide.Org                        www.BookIRead.com
Your guide to all that's veg.       My book blog
===================================================*/

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/