What's the state of Perl web frameworks?

| 45 Comments

Joshua Hoblitt pounced on me in AIM this morning as soon as I opened my laptop.

Joshua Hoblitt: Here's something to put on Perlbuzz.

JH: WTF MVC framework is working this week?

Andy Lester: Sounds like an editorial in the making?

JH: Maypole is dead, Catalyst is um, well, I've never managed to finish a project with it.

JH: The documentation is SHIIITTT.

JH: And the book is one of the most crapped-on books I've ever seen on Amazon.

JH: So Catalyst is a no go for me.

JH: So what's left? Roll your own with Mason?

AL: CGI::Application?

JH: Ya, I've used it for small stuff.

JH: The kind of stuff you put in one monster .pm file so it's trivial to install.

JH: Hmm, there's MasonX::MiniMVC.

JH: And this egg thing.

AL: Can I post this chat as an article?

JH: Please do.

I've gone through a similar thought process recently. I've started looking at CGI::Application, but the work project where I was starting to use it has been derailed for a weeks.

I welcome your ideas on the state of frameworks, either in comments below, or as a guest editorial.

45 Comments

I've deployed several successful applications on catalyst for two different employers over the past three years or so. I never had trouble with the documentation.

I'm working on a couple of applications with Jifty right now. Jifty is very nice, but the documentation is negligible. I've had to turn to the source several times. It's been worth it, though, as Jifty is a pleasure to work with.

I've also played around a little with Continuity and Squatting. I'm not sure how good they'd be for Serious Business, but they're fun for small toys, at least.

For templating engines, I don't really like mason, I'm comfortable with Template::Toolkit, and I really like Template::Declare.

Considering the number of Catalyst sites out there, the documentation sucking may be a fault of the developer trying to learn it. There are countless tutorials, a fairly complete manual, and it relies on modules that also have fantastic documentation (DBIx::Class and Template Toolkit).

I still think that Catalyst is bar-none, the best, and really, the only MVC web framework in Perl that's worth anything at all. I love it so much.

Although, I came from CGI::Application, and I think pretty much everything is a step up from there at this point, at least to those who have worked with other MVC frameworks before. (/flame) :)

Also, please, for the love of God, don't make me ever use Mason again.

I beg to differ on the "only for monster .pm file/small stuff" comment regarding CGI::Application. I've successfully used it on a pretty large intranet app, using CGI::Application::Plugin::TemplateRunner to render template pages, CGI::Application::Dispatch for other parts (like delivering MS Excel dumps of database queries), authentication/authorization against Active Directory & MySQL, etc... All delivered on mod_perl as a very manageable collection of modules and templates that could easily be deployed to most Apache 2.x servers.

Catalyst is a solid framework - I've completed several projects on it. Its problem is 1) Ease of use, and 2) lack of good documentation. If a usable site could be built with just a simple, included helper script that one could then modify and create their own from, it would be in better shape. If the majority of Rockway's book could be available in code form from a simple helper script, it would be much easier to use.

I've debated writing a book for O'Reilly on Catalyst. I agree, there needs to be a better book, with a reputable publisher, on Catalyst with much better examples and use-cases, as well as a reference (I hate writing references!).

The next big thing is on it's way. :)

http://labs.kraih.com/blog/2008/09/why-mojo-wont-kill-catalyst.html



There should be a flood of new mvc frameworks based on Mojo soon.

The one web framework of choice is pretty much dead imo, long live TIMTOWTDI!

I recommend that your friend switch to PHP. It is clear that he has no understanding of programming, so he will probably fit in rather well.

It is clear that he has no understanding of programming

Thanks to Mr. Rockway for pointing out another reason that people might not be interested in getting into the Catalyst project.

This "article" seems like ridiculous flamebait. Posting a chat transcript from someone who makes unsubstantiated claims about perl projects may be a good way to expand readership with the consequence of hurting the community.

JH: WTF MVC framework is working this week?

The ones on CPAN that have a release in the last 12 months.

Andy Lester: Sounds like an editorial in the making?

Or a Contrast and Compare. Something productive?

JH: Maypole is dead, Catalyst is um, well, I've never managed to finish a project with it.

I've never finished an iPhone, Django or Rails app (and have played with all 3). I don't see the relation of personal performance and framework quality.

JH: The documentation is SHIIITTT.

Catalyst::Manual has a very easy to follow tutorial, with source, and the documentation of the framework is very solid. Everything user serviceable, in fact, is documented in the framework. If you want another tutorial, the wiki is a good place to look. The advent calendar entries are nice as well.

JH: And the book is one of the most crapped-on books I've ever seen on Amazon.

A 3 star aggregate rating with most of them saying that it's a nice alternate tutorial but not as good as they hoped means that either you are wrong, or you have looked at very few books on Amazon.

Even the author admits it isn't so great, it was done quickly and the publisher messed up some chapters, too. Check the errata page.

JH: So Catalyst is a no go for me.

Ok, even though your reasons simply aren't valid, constructive or in anyway helpful. That's cool, nobody wants to force anybody to use something.

JH: So what's left? Roll your own with Mason?

You haven't really searched CPAN have you?

JH: The kind of stuff you put in one monster .pm file so it's trivial to install.

Wow. That's just bad. At that point isn't it easier to just use cgi-lib.pl and have one big .pl?

JH: Hmm, there's MasonX::MiniMVC.
JH: And this egg thing.

Yes. Yes, there are. Glad you did search CPAN a bit.

Andy, I am having a hard time figuring out the entire point of this post. Is it truly meant to just start a flamewar?

Oh, FFS. If you didn't use software because you think one or several of the contributors were assholes, you'd have to write everything from scratch.

And I rather like ack.

Catalyst has been tremendously useful for a lot of us for 3 years. The documentation has improved tremendously in that period. The amount of people using it has grown a lot, looking at the mailing list traffic and the amount of people on #catalyst.

Saying "The documentation is SHIIITTT" is unhelpful and frankly, clueless. Patches are welcome. That is after all the primary method it has improved by over time.

"Thanks to Mr. Rockway for pointing out another reason that people might not be interested in getting into the Catalyst project."

I actually think that response was pretty spot on. It was a horribly unsubstantiated claim that was obviously flamebait, and you chose to publish it. You should be pretty open to responses like this, especially if you're going to publish chat logs.

While Mr. Rockway is a major -- and valuable -- contributor to Catalyst, he is not the only person in the Catalyst community, and just because you don't agree with one person shouldn't be a reason why you should avoid the system in general. If that were the case, I'd never deal with Linux again due to RMS.

As far as I can see, Catalyst is the only real game in town. It runs some pretty big concerns on the web, and has a large and active user base.

I started some work trying to figure out how to write helper modules to bolt functionality on top of an existing application. This one (http://search.cpan.org/perldoc?Catalyst::Helper::AuthDBIC) bolts authentication on top of an existing application. A bit rough around the edges, but a good start on solving this particular kind of problem.

And if you think there's a problem with the docs, we want to know. We don't want pointless whining from somewhere on the sidelines (and in this case a good distance away from the sidelines).

If you didn't use software because you think one or several of the contributors were assholes, you'd have to write everything from scratch.

I didn't say anything about using software, and I didn't say that Rockway was an asshole.

Using a piece of software as big and important as a framework usually means, to me at least, becoming part of the project. I'm not just looking for a tarball, but a team, a community. I know I'm not alone in that view. The number of people who use Linux, however, means that I'm not going to have to interact with RMS, ESR or whoever else might make things unpleasant.

Given that view, it can hardly be inviting when a key member of the project team makes personal attacks on others. Who would want to join that project?

Yes, the Catalyst docs need improvement, but the whole tone of this article is completely useless.

In fact, a while back you asked _me_ what web frameworks were out there, and I said you should use Catalyst. You didn't post that transcript, which is probably good, because it's not that useful, just like this one.

Given the gratuitous flame on the community was what started the flame-war, why should the community be receptive to someone that writes flames towards it without having any significant participation in the community's official communication channels. If it's impossible to finish a Cat-based project, or the documentation is shit, why don't I see a post or patches on the mailing list or an inquiry in the channel logs?

Perhaps a minor point, but I think continuity and community count towards "should I use this or use that?" My first Catalyst app is 3 years-old this month. It still runs without change on the most current Catalyst release. That's continuity. Community means about 3/4 of the modules I used then now have much much better alternatives. I'd love to rework the guts using the newer stuff: better authentication, REST, form handling, etc. But while Catalyst has evolved and is evolving, that same community that tempts me with new juicy bits, has also kept me running. That's nice.

For what it's worth I developed a Catalyst application about 2 years ago which is still running fine. I didn't have too much trouble with documentation.

Where I struggled was with the form handling. Sure there is always more than one way to do it, but who wants to spend ages trialling umpteen billion modules to find a suitable one.

A couple of months ago I came across CGI::Application and gave it a spin. I found it a lot easier to write basically the same application.

The curious thing is, running on the same machine, the CGI::App version runs about 5 times faster than the Catalyst one doing the same things.

I'm guessing that Catalyst uses a lot more modules to achieve the same functionality.

Perhaps the new Titanium framework will get a shiny advocacy site like Catalyst to help Perl ppl show the media that PHP/Ruby aren't the only games in town.

Thanks to Mr. Rockway for pointing out another reason that people might not be interested in getting into the Catalyst project.

...

I am really at a loss for words here. You deride software projects I contribute to. You deride my book. Then you spam your writing all over the Perl community.

Don't you teach the "how to be nice to people" class at OSCON? WTF!?

But anyway, I will post my usual "you don't understand open source software" rant in the form of an analogy.

The other day, the coffee place by my house was giving away free coffee. I got a cup, but usually drink coffee with milk and sugar. For some reason, they weren't giving that away.

Instead of posting to my blog about what a sham the free coffee community is, I went home and added some sugar and milk (I was on my way home anyway). The result was a delicious cup of coffee. It cost less in time than making it myself. It cost less in money than buying it myself. I can't complain about that.

To summarize: I didn't like the free coffee as offered, so I made it better and then enjoyed it. When you get stuff for free, you can't demand anything. You are not entitled to complain.

All you can do is make it better.

Software is the same way -- you get out what you put in. If all you can put in is whining on your blog, it's not surprising that you don't finish many projects.

If people spent as much time thinking (or writing software) as they did talking, the would would be a better place.

Make the world a better place, Andy.

I'm sorry, Jon. There was no intent at hurt feelings here.

I'm can't possible deride Catalyst or your book. I haven't used Catalyst, so have nothing to say about it. I haven't read your book, so also have nothing to say about it.

Yes, I gave Joshua a platform for his perceptions and his frustrations. Yes, they happened to be inflammatory. I supposed it would have been better as an actual editorial, but be that as it may, his opinions are his opinions, whether you like them or not. He has frustrations with the Catalyst documentation and it's enough to be a deal-breaker for him. There's nothing wrong with that.

It's not reasonable to suggest that someone looking for a web framework must fix the things that he sees wrong with one of them rather than looking to find another, so I don't see how the coffee shop analogy fits. There's nothing wrong with saying "Yeah, these guys have free coffee, but I'd like to have it even easier."

Why does it have to be that someone with a different opinion doesn't understand open source, or is an idiot programmer?

I can say for certain that CGI::Application and Catalyst are valid and very workable frameworks. I know of some very large and profitable proprietary applications running on them, though that's all I'm really permitted to say.

I am also a major contributor to Jifty and am preparing to give a talk on the subject at the Pittsburgh Perl Workshop this week. I like this framework very much (which is why I contribute and am giving a talk) and know of one major proprietary site (hiveminder.com) running on it and there are others. I will disagree with tene about the quality of Jifty's docs as well. There's quite a bit there in the docs. Certainly enough to get started, but once you dig very far, you'll run into the same limitations in any framework I've ever seen with regard to docs.

If you're going to use a library (not just a web framework) to do any work for you in any language, you're either going to have to get used to the documentation being imperfect or just write your own. That's just reality. As one of my professors back in my undergrad days wisely stated frequently (and he was not teaching a class involving Perl or web frameworks), "You can never trust documentation. You must read the code."

With respect to web frameworks, given the number of positive responses in so short a time frame, I'd say, with all due respect to Joshua Hoblitt, he's wrong about the state of Perl web frameworks.

Oh, and (Jonathon Rockway)++ on the coffee analogy. Do you mind if I reuse it under the Artistic or Creative Commons or something? :)

Cheers.

Andy said:

It's not reasonable to suggest that someone looking for a web framework must fix the things that he sees wrong with one of them rather than looking to find another, so I don't see how the coffee shop analogy fits. There's nothing wrong with saying "Yeah, these guys have free coffee, but I'd like to have it even easier."

It's equally unreasonable to publish inflammatory community-damaging content on a blog that lists its goal as:

In fact, Perl 5 is alive and kicking, and plenty of people are using it, creating new cool stuff all the time. There's constant activity, but it doesn't get as much mindshare as some of the newer sexy languages out there. That's a shame, and we're here to fix that.



You gave a guy a platform, as such you gave him a voice, and the eyes of everybody who subscribes to perlbuzz and various links. You aren't fixing anything with this attitude.


That guy made ignorant and inflammatory comments.


You enabled it, Andy. Bad publicity is not good publicity, so stop acting like Paris Hilton.

Even if, as you called it, they were "frustrations" it should have been constructive. That is why people are pissed off at you. It isn't about not being happy with Catalyst, or the opposite. You completely missed point that Jon was making with the coffee analogy, too. Let me break this down into bullet points, since it seems necessary to get it through to you:


  1. The point isn't that it was against Catalyst, it was against open source (the spirit of).

  2. Nothing improves by being called "shitty".

  3. You're not helping anybody. I mean you, Andy. If you're not helping, you're either doing nothing or hurting. This isn't nothing.

  4. Jon said "Instead of posting to my blog about what a sham the free coffee community is, I went home and added some sugar and milk" You posted negative and inflammatory information on your blog because someone didn't get enough cream and sugar for free. Programming is HARD. That's why they have degrees for it in Universities.


And please, for the love of everything holy, change the comment format to "Convert Line Breaks". "None" is idiotic unless you post clearly to use HTML formatting.


How in the world is someone saying that the Catalyst docs are inadequate "community-damaging"?

You posted negative and inflammatory information on your blog because someone didn't get enough cream and sugar for free.

I don't think that finding the documentation to be lacking is "didn't get enough cream and sugar for free."

I'm looking at Gantry right now. I haven't tried it out yet, but the 5 minute demo is really impressive.

I have a big project in Catalyst. I think it does take a little bit of spin up time, but it is worth it for big projects.

We have to be careful to accept both the Novice and advanced programmers into our community. I think perhaps the reason fewer people are using Perl and why people are slow to adopt Catalyst over Rails is that we don't make it easy for the beginners to learn it. Comments like, "maybe he should use PHP", are taken literally by those outside the community. If we're to teach the beginners Perl, we have to cater to them, as well as the advanced developer. This means our language and frameworks have to be robust, *and* easy to begin with.

We've also got to be willing to listen to the comments like that in the chat transcript above, or we'll never know how to grow.

Andy Lester said:

How in the world is someone saying that the Catalyst docs are inadequate "community-damaging"?

You know, you can be constructive in your criticism, and contribute some useful information based on somebody's issues, like:

"Catalyst is easy to get started with, but it offers so many options that some people are likely to get lost among them and have a hard time choosing the right ones for their application",

or

"The Catalyst documentation lacks a clear overview, doesn't link to the most important non-core components, and being in POD format it is good for reference, but not adequate for a manual or guide"

(and I'd like to think this is the goal of your blog). But destructive criticism, like "can't finish a project with catalyst", "docs are shit" and "everybody craps on this book", do little besides emitting some vague inflammatory value judgments and will be treated as such by the community you are criticizing.

Of course, you have the right to publish either kind on your blog, and if your goal is to troll the web framework communities, I think you've accomplished it.

There have been plenty of comments which refuted the "can't finish a project with catalyst" opinion, and quite a few which addressed the "docs are shit" one. If someone claims they haven't been able to finish a single Catalyst-based project, yet still there is a significant number of websites built with Catalyst, it doesn't speak too well of the original claimant as a web developer. By analogy, I could also claim that I haven't been able to finish a single project in .NET, would you accept that as a valid criticism of that platform? Also MSDN is shit.

I suspect you've intended this post as a subjective, light-hearted rant on Perl MVC frameworks, not to be taken very seriously. But without the appropriate disclaimer, it's no surprise that the framework communities members have come to defend their creations.

Andy Lester said:

I don't think that finding the documentation to be lacking

Sorry, but lacking of what?

The documentation is SHIIITTT

Yeah, that was a kind of constructive diagnosis.

I've been rather silently following the Catalyst movement and I've tried two incarnations of Catalyst tutorial I can remember. This, along with a lot of other documentation, advent calendars, Jonathan's book (which I found quite useful) and vibrant, helpful and friendly IRC community paints rather different picture in my eyes.

I'm astonished you "gave the platform" to someone, who apparently didn't read the title of his own blog - RTFM - before starting to rant about the project:

Catalyst is um, well, I've never managed to finish a project with it

Well, that's Catalyst fault? So I finished a project and launched it in the shared hosting. I managed to do this in two weekends and I'm not a Catalyst guru. Man, I was able to prepare some short introduction for people and they in turn was able not only to follow me, but to write their own actions, to debug them and to see them working - all these before even touching the Jonathan's book, which would have made it better and easier.

All I got was some anxiety to see it working, to grasp a code and tailor it to my needs; an ability to turn to people and ask them for help in finding my error, then to say them "thanks"; a motivation to share the knowledge I gathered, no matter how small it was.

I started with CGI scripts, using Embperl, then Apache::ASP, then Mason, then Catalyst. I had never found myself capable of admitting anything of these was "crappy" or had "shitty documentation". I just couldn't understand it at some moment. And that was definitely my fault, which I've struggled to overcome.

As a user trying out Catalyst for the first time, I can say the docs are not perfect. For example while following the tutorial I ran into this:

From:
http://search.cpan.org/dist/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/CatalystBasics.pod

The Root.pm controller is a place to put global actions that usually execute on the root URL. Open the lib/Hello/Controller/Root.pm file in your editor. You will see the "default" subroutine, which is responsible for displaying the welcome screen that you just saw in your browser. Later on you'll want to change that to something more reasonable, such as a "404" message but for now just leave it alone.

sub default :Path :Args {
my ( $self, $c ) = @_;

$c->response->body( $c->welcome_message );
}

However inside the Root.pm that was generated by Catalyst what I saw was:


sub index :Path :Args(0) {
my ( $self, $c ) = @_;

# Hello World
$c->response->body( $c->welcome_message );
}

sub default :Path {
my ( $self, $c ) = @_;
$c->response->body( 'Page not found' );
$c->response->status(404);

}

So there was some mismatch between the docs and the actual code which was generated.
That said, the docs, at least as far as I got, are pretty good at walking you through the basics. I didn't run into any deal-breaking documentation issues.

I have to say, the whole argument that "if something in the software you use is broken it is up to you to fix it" bothers me since it is potentially never ending. Should I work on bugs on my open-source MVC first or my OSS text editor? No wait I should first solve bugs in my programming language of choice, Perl? No wait I should solve bugs in GCC? Or maybe in the libraries it uses? Or in the kernel it runs on?

Somewhere you have to draw the line and get more productive rather than fixing a specific tool. People who have chosen to fix that tool are great, but they should not expect *everyone* to do the same...

I lead a small Perl shop in Bucharest, and during the last couple of years we released dozens of Catalyst projects that handled non-trivial tasks (large/popular websites, e-commerce, various intranet apps, voip/sms/hosting/whatnot administration/configuration/accounting/billing, video surveillance, just to give you an idea).

I don't have enough words to describe the level of productivity Catalyst+friends bring to the table. And to be frank, the best thing (for me at least) is the community. The level of expertise in various tech areas found in these guys and gals is impressive, and they're always willing to share it. And the community is also welcoming, you have no idea how easy it is to give back, get a commit bit or a commaint bit. You just have to be willing to help. And they baby-step you through the internals when you try to fix something.

Although it can be difficult to start learning Catalyst, the reference documentation fully covers every aspect of the API, and the tutorials and wiki content is constantly improved. I taught the basics of Catalyst/DBIC/TT to newbie Perl programmers in less than a couple of weeks and got great productivity from them with this little training. It's rather easy to learn once you get started, I guess. You, just have to be willing.

I'd like to thank both JH and AL for giving me an opportunity to express these feelings I had for a long time about Catalyst and the community. Now start coding!

Well it looks like I unintentionally started flamewar #1896795 for the day. Let me start by saying that Andy and I tend to talk about technical things in a "ranting tone" so phrases like "SHIIITTT", in the context of our dyanmic, can be translated into has "usability issues" or "doesn't adequately cover common things that a developer might want to do". Please bare that in mind that this was intended as a private conversation when I typed it. That said, I think it's healthy to have periodically have these critical conversations. What I was hoping for was an article listing all of the current and "Uber Cool" webframe works that I've happily been oblivious to for the last year.

I should also admit that I don't do much web programming. My job functions and personal interests are largely else where. So my view of the state of WebApp/MVC frameworks is that of brief snapshots taken only about once a year. On to my specific complaints about Catalyst. I had tried to use it several times but this was a couple of years ago. Perhaps things have greatly improved since then but there were problems with the documentation and I couldn't get answers to what I thought were relatively simple questions on IRC (basically I was told, don't do that). I also experienced the version of Catalyst installed from CPAN randomly being broken. Perhaps this is currently unjust but the Catalyst brand was tarnished for me years ago. Perhaps that means I'm just too stupid to program in anything other that php (which I'm not fluent in). ;) Although I will point out that I am not that only one that has gotten a bad smell from Catalyst.

Jifty looks interesting -- Thanks to tene to letting me know about it's existence.

Jifty looks interesting -- Thanks to tene to letting me know about it's existence.

For docs you'll also want to check out the example applications and talks in their svn repo. Very informative.

"Please bare that in mind that this was intended as a private conversation when I typed it."

Then why does the conversation start with "here's something to put on perlbuzz"?

"I had tried to use it several times but this was a couple of years ago."
"Perhaps this is currently unjust but the Catalyst brand was tarnished for me years ago"

For a topic entitled "state of perl web frameworks", your couple-year-old impressions don't strike me as fair criticism, Catalyst has a lot less issues now and Maypole was still alive back then.

"I also experienced the version of Catalyst installed from CPAN randomly being broken."

It's software, it breaks, randomly. If it takes you a couple years to file a complaint, it'll take us a couple years and a week to fix it.

"Although I will point out that I am not that only one that has gotten a bad smell from Catalyst"

Statistics say that you're included in a relatively small group, it happens.

Although I will point out that I am not that only one that has gotten a bad smell from Catalyst.

You should try reading the code with your brain instead of with your nose.

You should try reading the code with your brain instead of with your nose.

Thanks for clearing that up. And to think, all these years I've been doing it wrong!

Have you tried ClearPress by zerojinx. It's a liteweight MVC framework which we have been using at teh Sanger Institute for webapps that deal with New Sequencing Technology data.


Andy Brown said:

Have you tried ClearPress by zerojinx. It's a liteweight MVC framework which we have been using at teh Sanger Institute for webapps that deal with New Sequencing Technology data.

I've never ever heard of it but sure enough it even shows up on search.cpan.org if you search for "MVC". Thanks for the pointer!

Hang on a minute..

Joshua, "doesn't really do web" and hasn't even looked at Perl MVC Frameworks "for a couple of years".. that's funny because he describes Maypole as "dead" but I'm pretty sure I've made half a dozen or more releases since he likely last looked at it, not to mention deployed applications for the aviation industry using it.

Last major development burst on it was 6 months ago.

Let's have a look at Josh's CPAN directory... hang on, no updates since 11 Apr 2007, heck the last Maypole release was a year later than that - I guess all Josh's project's must be dead ?

WTF.

There is no story here Andy, only flames between two guys who are out of touch whining and posturing to each other.

Not only is it insulting to the developers within the community, it goes against the purpose of generating buzz about the good stuff happening in perl (and to be honest so does the sniping about PHP).

Is this your personal blog andy, or is it something worthwhile - a source of what's hot and happening in perl, because currently I find Zed Shaw's blog less self-centered and ranty.

Nice try to improve perl world...
I hope you will be able to redirect your last comments direction

Perl energy must not be wasted

I've been using Mason for years, and I love it. I've never seen the attraction of Maypole, Catalyst, etc. I know it's not in vogue, but I still think it rocks. All it takes is a little discipline to keep your controller classes separate from your view components and your model classes. If MasonX::MiniMVC helps with that, by all means check that out.

'What I was hoping for was an article listing all of the current and "Uber Cool" webframe works that I've happily been oblivious to for the last year.'

Well, the answer is that fairly high up the list comes recent versions of Catalyst - we've moved on a hell of a lot in the past couple years :)

'On to my specific complaints about Catalyst. I had tried to use it several times but this was a couple of years ago. '

That would explain a lot since it was just over a couple years ago that 5.70 came out, which acquired a massively expanded tutorial and has seen significant improvements to the documentation.

'I also experienced the version of Catalyst installed from CPAN randomly being broken.'

We started a major stability drive about 2.5 years ago and the rapid uptake of Catalyst since in more conservative environments indicates that the improved stability and documentation have worked for a lot of people.

'I couldn't get answers to what I thought were relatively simple questions on IRC (basically I was told, don't do that)'

That would almost certainly be an XY problem error on your part, there's a strong emphasis in the Catalyst community towards teaching people how to "do it right" rather than how to "make it work".

'Perhaps this is currently unjust but the Catalyst brand was tarnished for me years ago.'

Having established you're actually complaining about the state of the documentation as of 2.5 years ago, when yes, the docs pretty much -were- shit back then (I learned Catalyst over a year before that by reading the source :)

So, in order to decide if you'd consider it unjust, I'd invite you to take another look at modern Catalyst and its documentation. If you still find the docs massively lacking then we'd be delighted if you'd post to the catalyst-dev mailing list outlining where you got stuck so the documentation team can add it to their todo lists - but I think that while all documentation is imperfect ours now sucks a lot less than it used to.

If you aren't comfortable doing that, then feel free to mail me privately at mst (at) shadowcat.co.uk. I think the only thing that we can't fix here is if you're unwilling or unable to go back to Catalyst with an open mind due to the brand having been 'tarnished' for you, and since you don't seem to be an idiot I'm hoping that that isn't the case.

Okay, I been following Catalyst on the mailling list.

And I've visited seen sites built using it (http://www.catalystsites.com)

My thoughts are Catalyst is not for beginner, the word MVC attracks many beginners, thinking, that by using an MVC framework building an application would be as easy creating a DB inside a SQL server using trivial SQL statements.
And it's not!

MVC is not trivial, and Catalyst is not a simple or trivial framework. It's a complex framework that needs sometime to learn. I'd even suggest that it should not be your first MVC framework.

I completely agree that Catalyst is underdocumented, especially from a beginner perspective. This is why if you really want to use Catalyst, I suggest you start by learning other better documented and more beginner friendly frameworks. This is a harder longer way, but well its the only way I imagine it would work.

The folks, working on Catalyst are integrating the most interesting Perl5 (Moose, TT, DBIC) technologies into it, so expect a bright future for it. But yes at the moment it's not for beginners!

Just a quick comment about the Catalyst docs and beginner-friendliness.

I am by no means a Perl beginner and given that, I managed to get a simple web app working with Catalyst within at most half an hour by using the tutorial. That was about six months ago. And it was without having any previous hands-on experience with the MVC concept! Sure, the app was crap and horribly designed, but it was really easy to get things started for experiments.

What I'd consider difficult is picking up Perl, Catalyst, and the MVC concept in one go. But that's the case for almost all programming languages and non-trivial applications as first projects, so that's not a show-stopper.

P.S.: Horrible perlbuzz post, this is.

As far as Catalyst and beginner-friendlyness goes, I'd say it's not bad. There are some snags and some elements of the request/response chain aren't explained very well; and sometimes you need to hit the source code to find out why and how certain things work the way they do.

But...

Catalyst, once you get the hang of it, is immensely easy to work with, and allows you to focus on adding functionality, not worry about request handling and so on.

Before Catalyst I was a HTML::Mason bunny, before that I had my own framework that looked and acted a lot like CGI::Application.

Something that puzzles me a bit about this article is why neither andy nor joshua thought to look at the wiki page, you'd think Andy at least would know about it.. d'oh.

For future reference :
http://www.perlfoundation.org/perl5/index.cgi?web_frameworks

Hi Aaron,

I actually did look at the p5 wiki page but the web_frameworks page is not linked to from the top page (or at least the link isn't obvious to me).

I love and use CGI::Application because I think this is the Perl way.

I season it with Class::DBI, IO::All, Json::XS, Clearsilver C Template Library. Very good separation of design and logic, flexible, letting you to do whatever you want in a clear concise way.

I have been experimenting with mod_perl also, it works like a charm. (No benchmarks yet)

Also one could easily use the library as a prototype and write a C version for extra speed.

I also use the CGI::App logic in my Javascript and Actionscript 3 projects.

I have read in the perl6 wiki that Mark (CGI::App's writer) is working on the Perl6 version and having fun along the way :)

Joshua Hoblitt and Andy Lester,

Below is a quote from Theodore Roosevelt's speech.
"It is not the critic who counts; not the man who points out how the strong man stumbles, or where the doer of deeds could have done them better. The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood; who strives valiantly; who errs, who comes short again and again, because there is no effort without error and shortcoming; but who does actually strive to do the deeds; who knows great enthusiasms, the great devotions; who spends himself in a worthy cause; who at the best knows in the end the triumph of high achievement, and who at the worst, if he fails, at least fails while daring greatly, so that his place shall never be with those cold and timid souls who neither know victory nor defeat."

Whatsoever you say, credit always goes to the Catalyst team, and each member of the team for spending all their time and effort in building an awesome framework for all of us.

Catalyst rocks.

Leave a comment

Job hunting for programmers


Land the Tech Job You Love, Andy Lester's guide to job hunting for programmers and other technical professionals, is available in PDF, ePub and .mobi formats, all DRM-free, as well as good old-fashioned paper.