Wow, the last time I wrote about what's up with Mason was almost two years ago.
So here's the "latest" news
Soon after my last update, we released Mason 1.30, which was the culmination of development work that had been going on for about a year or so. The big focus of that release was incorporating various speed enhancements from Amazon.
Since then, the 1.3x series has seen a few more releases, with 1.36 coming any day now. This series has been entirely bug fixes or minor features, and that's not likely to change.
The main reason for this is that Mason is a pretty mature product. It works well for what it's designed to do, and as a templating system it has enough features that we're not scrambling to add a lot more. There are improvements that are worth making, but we're also concerned about backwards compatibility, so we're limited in terms of what we can change.
Historically, Mason has always been more than a templating system. A few years ago, I thought this was great, and I even extended it further with modules like Mason::WebApp.
Recently, Jon Swartz and I have both been trying out Catalyst for new apps. I like it pretty well, and I think Jon does too. We discussed the future of Mason and we both agreed that there's not much point in making Mason a better framework. Catalyst and Jifty just do a better job of this, and there's no point in trying to compete with them, especially since if you like Mason you can use it with either of them (and other frameworks as well).
However, we both still like Mason as a templating language. We talked about what a Mason 2.0 might look like, and agreed that one primary goal would be to separate the templating portion of the system from the framework portion.
I put some notes about this on the Mason HQ site at Mason20Notes. My personal preference would be to simply focus on the templating language portion, and build something suitable for use with Catalyst or Jifty. I'd also like to take this as a chance to break some backwards compatibility. However, there's still no firm plans on whether Mason 2.0 will happen, or exactly what will change.
I think that though Mason is "old" it's still pretty darn good. I haven't seen a new templating system come by that I think looks better, though I am intrigued by Jesse Vincent's Template::Declare. The Mason community is still active, primarily on the mason-users mailing list. It's also still showing up as a desired skill in jobs posted to the Perl jobs site. One interesting thing I've noticed is several UK jobs mentioning Mason, whereas a few years ago it seemed like TT2 had a lock on the UK. I don't think the total # of Mason jobs has changed greatly, but maybe they're moving around.
Ok, see you in two years or so
Yes, please (Score:1)
(A final wish for Mason 2.0: more mutable objects: fewer classes that only accept certain values on construction. That drives me nuts
mason as framework (Score:1)
<%args> $id </%args>
<%init>
my $thing = Thing->new(id=>$id)->load;
return (thing => $thing);
Text::MicroMason? (Score:1)
Re: (Score:2)
Mason 2.0 would be more than just a syntax, it'd also include things like autohandlers, component compilation, etc.
Re: (Score:1)
Ugh, no. That thing is the worst. Its error detection/recovery/reporting is utterly atrocious. Malformed templates lead to malformed generated Perl – in the best case, you get to read and debug the generated Perl, in the worst cases I’ve had,
perlflat-out segfaults. A nightmare.Re: (Score:1)
FWIW, I would like a "template" only Mason.
Re: (Score:1)
Guess why I tried it… :-) … :-(
On another point... (Score:1)
Re: (Score:2)
My round tuit supply is already quite low. I can't speak for Jon. At this point, it's more of an idea, and I don't Jon and I even agree on the exact details of the plan, so I don't see implementation starting any time real soon.
Re: (Score:1)
Re:On another point… (Score:1)
More like “we’re currently throwing mugs at the wall.”
Re: (Score:1)
screw backwards compatibility, full speed ahead (Score:1)
backward compatibility (Score:1)
I'm a big fan of backward compatibility, conservative code changes. When it comes to any interface that other people are relying on, it's not right to jerk them around.
But I wouldn't be too worried about breaking a few things, as long as there's a good motivation for it, like someone else wrote, and as long as you try to make the transition as smooth as possible and give people plenty of notice.
We had the big changes in version 1.10, where the Compiler, Interp, etc. objects seemed to come into existence.
Re: (Score:2)
We've long talked about moving the namespace to just Mason, and this seems like a good chance to do so.
Jon has talked about making a 2.0 version of the framework piece of Mason to go with the Mason 2.0 templating piece. This might be released under the HTML::Mason namespace, but the goal would be to keep the framework 100% backwards compatible. I'm not sure that doing this is even necessary. HTML::Mason 1.x will
Simpler templating & integration (Score:1)
Anyway, that's my idea.
As an additional feature to the above, it'd
Re: (Score:2)