I too have recently rewritten CGI::App and most of its core plugins. That was not my original plan. You may remember recently I was recommending people make use of class-level initialisation and only do object-level initialisation (ie per cgiapp instance) for those things that can't be shared. However, when I looked into it more deeply (as part of a separate task) I found that support for this within plugins is quite sketchy and unreliable. CGI::App itself doesn't really support the idea in any clear way. I also thought that rearranging the code inside CGI::App would help me and others understand the flow better. So I started to refactor. But then I encountered code that is convoluted, for example a six- line subroutine that was much clearer in one line. So I started to rewrite. And then I decided the whole thing would be easier to code against as well as easier to read if I made my Stash plugin be used within CGI::App itself (much like Catalyst & Mojolicious). So then I realised I was departing from being CGI::App compatible.
That's where that story ends. As soon as you've broken compatibility you've distanced yourself from the CGI::App community and your one-man project is dead. My time wasn't wasted cos I then refactored again so that the good bits are separate extensions that can be used with CGI::App or Mojolicious. [They're close to being published; tests need to be improved and documentation needs to catch up.] I thought that my micro-framework would still fill a niche: those cases where you want the functionality of Catalyst but with a 1 MB du footprint. Unfortunately those smart people over at Mojolicious had a fabulous 2011 and can do much more than my framework and still sit inside 1 MB. So if you're still reading, my strong recommendations are: * Respect CGI::App for what it is. If you need more, go see Mojolicious::Lite and Mojolicious itself. * Ignore people like Ron & me who are tempted to do rewrites that will never have the community that CGI::App grew. Two years from now both of our frameworks will still contain more bugs and fewer working examples than CGI::App. * Ron, if you do continue with Snapp, try borrowing some of the smart ideas from Mojolicious::Lite, but * like me, I suspect you'll fall in love with Mojolicious and Snapp will just be an amusing memory. Happy coding, Nic ##### CGI::Application community mailing list ################ ## ## ## To unsubscribe, or change your message delivery options, ## ## visit: http://www.erlbaum.net/mailman/listinfo/cgiapp ## ## ## ## Web archive: http://www.erlbaum.net/pipermail/cgiapp/ ## ## Wiki: http://cgiapp.erlbaum.net/ ## ## ## ################################################################