Perl Web Frameworks

There is a wide range of available Perl frameworks indicating that Perl is not dead. That's good. The only problem is to choose a good framework for own needs.

An overview of the most Perl Web frameworks helps to make a decision. I'd like to comment on the three best in my opinion. I've briefly looked at other frameworks too, but from other reviews I've read before, and from other information (that some of them are not easy to extend, opinionated, have limited applicability, and so on) I decided to narrow the set of candidates to the following three.

Catalyst

Catalyst is the king among other frameworks in terms of flexibility and extensibility. There are also many Web application like e.g. Foorum built on it. So it's the natural first choice to try. That I did. And left unsatisfied. After messing with the installation of a large set of modules, I'd never like to repeat the same experience if I'll change my shared hosting provider sometime. So I was forced to evaluate other frameworks.

Mojolicious (Perl on Rails)

I was already intrigued after reading its initial announcement from the primary author of Catalyst and its first review two moths ago. So now I was tempted to try it, and I must say that I'm impressed. Mojolicious and its foundation Mojo have no dependency chain like Catalyst has, no black magic, just pure Perl that means great fun again.

The only problem is that it's still under active development, so it's not recommended to use it in production environments. From what I can see, there are problems with FastCGI support currently, and there are no enough documentation and examples.

MasonX::MiniMVC

MiniMVC is a very lightweight MVC framework based on Mason. Actually it can be treated as a Controller built on top of Mason views. And this is good. Mason is a very powerful engine that from the MVC's point of view lacks controller and model parts. There are many already available Perl packages for the model part, and MiniMVC provides the missing piece for the controller part.

Conclusion

It seems the most optimal choice for the moment is to build new Web applications using MiniMVC, because for the time when Mojo will be ready for the production use it will very easy to move Mason templates to its view part since Mojo supports the HTML::Mason template engine.

I hope Mojo will eventually provide most of the features of such powerful MVC frameworks as Ruby on Rails and its derivatives in other languages like CakePHP, etc.