[Catalyst] Random thoughts on helper class generation

John Napiorkowski jjn1056 at yahoo.com
Thu Jan 30 15:32:27 GMT 2014


One of my reach goals for Catalyst6 is to have a separate project like Catalyst'Stack or some such that would be aimed at having more opinions and setup, to make it easier for newcomers to understand.  Ideally we'd have 3 or 4 non trivial but understandable and well scoped example applications that would basically be the test cases for it and they'd be there to help people get started.  Volunteers very welcomed.

I'll try to spend more time blogging about internals.  I will say that the more I see other people stepping up to take on Catalyst quests (or suggesting solid ones and taking ownership of it) the more I will feel comfortable to spend time on docs.

I know it might seem hard to get started, but two years ago I felt pretty confused but I just took on some basic tasks and over time started to feel my away around.  If you put your mind to it, choose something and be willing to chew on it for a year or so and you will also pick up the code.  For me I wanted to see better support for async in Catalyst.  There was like 5 or 6 branches all trying to do this in the repo but nothing ever got production ready.  It took a while but we now have something basic that works and didn't break back compat.  So find something about Catalyst that really bothers you and think about it.  Two bigger things that come to mind, if nothing on the quest list looks good to you, is some way to move forward on app/ctx split or migrating all the existing dispatch types to use chaining under th hood (there's code for this, t0m knows where it is, just never got enough testing).

The bigger the community of contribs are, the more information will get shared.  I know its hard for a lot of us since all the big brains have moved mostly on to other things, but we will just have to manage.  Its not going to be easy for the first bunch of us to figure all this out, but we can make it easier for the next group behind us and try to put Catalyst on a sustainable path were it remains relevant well into the future.


On Thursday, January 30, 2014 6:33 AM, Craig Chant <craig at homeloanpartnership.com> wrote:
I second Octavian's comments.

Though I still chose Catalyst over the other Perl frameworks, when you spend copious amounts of time reading docs and learning how to use the Catalyst framework, to then be questioned why you are doing something the way you are in the IIRC because it's wrong or at least outdated and not the best method, when all you are doing is following what the documentation tells you to do, is rather frustrating to say the least, and a waste of everyone's time... which then makes you wonder, how good other framework's documentation is and if that would be easier , simpler and more up-to-date.

It's not just the documentation / tutorials and how-to's either, it's even the error messages.

>> Too bad that those people don't have the necessary time for that.

That doesn't cover the cryptic, poorly written error / warning messages!

There are clearly ridiculously clever people working on this project, but I feel sometimes they need to step back for a second and think... how could I explain this to a total idiot, verbose and verbatim.... documentation, error messages, tutorial and alike, are not the place for fiendishly clever one liners!

Catalyst has a big advantage over the other frameworks other than just being an awesome piece of software and that's the community; it's friendly , accessible and a pleasure to be involved in, it's littered with seriously talented individuals at the top of their game, working in huge corporations with a vast wealth of experience and technical know-how, but the documentation lets this down and it shouldn't.

Unless of course the goal of Catalyst isn't to make it accessible to the greenest of users regardless of their technical ability?

-----Original Message-----
From: Octavian Rasnita [mailto:octavian.rasnita at ssifbroker.ro]
Sent: 27 January 2014 09:25
To: The elegant MVC web framework
Subject: Re: [Catalyst] Random thoughts on helper class generation

From: "neil.lunn" <neil at mylunn.id.au>

> On 27/01/2014 1:27 PM, John Napiorkowski wrote:
>> Neil,
>> I know the problem we have here, but honestly I think the solution is going to be more about having less stuff in Catalyst.pm rather than more...
> Hi John,
> Actually probably missed something in my intended context in the
> course of the rant.
> Couldn't agree more with that statement, truly "less is more" and I
> wasn't putting a shout out to either change 'Catalyst::Helper' or
> otherwise bloat things in 'Catalyst Core'. So I think we can agree
> that it is better to pull things out and delegate to more "generic" "add-in's".
> I have seen in some reading terms and statements such as "monolithic
> catalyst application ...", which is sadly a sad misnomer and seems
> more of an indictment on the development model of the authors than an
> actual problem of Catalyst itself.
>> That said, it doesn't help today much :)  Feel free to try a plugin and see what people think.  Is a good way to shakeout new ideas.
> So largely a position on "how many people are generally cargo culting
> the catalyst helper default files", which probably would have been a
> better title. And otherwise trying to get a feel for what other people
> were doing as typical, "App", "Controller", "View", "Model" setups.
> As for the code, that was my way of saying "here's one other way of
> doing it, what's yours?"
> If anything, the only critique here regarding the helper templates is
> that new inductees are likely to come on board and just so things as
> they are in the manual, without much thought to what is actually
> happening. Hence the reference to "getting logging set up under
> ConfigLoader", and so we show another approach. But not sure exactly
> what to do about making people think, and think differently, yet.

I think a better documentation for Catalyst *written by those who know the internals very well* would be very helpful to solve this problem.
Too bad that those people don't have the necessary time for that.

I think the fact that Catalyst has too much magic is a reason why most beginners prefer Dancer or Mojolicious.


List: Catalyst at lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/
This Email and any attachments contain confidential information and is intended solely for the individual to whom it is addressed. If this Email has been misdirected, please notify the author as soon as possible. If you are not the intended recipient you must not disclose, distribute, copy, print or rely on any of the information contained, and all copies must be deleted immediately. Whilst we take reasonable steps to try to identify any software viruses, any attachments to this e-mail may nevertheless contain viruses, which our anti-virus software has failed to identify. You should therefore carry out your own anti-virus checks before opening any documents. HomeLoan Partnership will not accept any liability for damage caused by computer viruses emanating from any attachment or other document supplied with this e-mail. HomeLoan Partnership reserves the right to monitor and archive all e-mail communications through its network. No representative or
 employee of HomeLoan Partnership has the authority to enter into any contract on behalf of HomeLoan Partnership by email. HomeLoan Partnership is a trading name of H L Partnership Limited, registered in England and Wales with Registration Number 5011722. Registered office: Pharos House, 67 High Street, Worthing, West Sussex, BN11 1DN. H L Partnership Limited is authorised and regulated by the Financial Conduct Authority.

List: Catalyst at lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/

More information about the Catalyst mailing list