Modern Web Application Development with Perl
modernperl.net
modernperl.net
Just like Node is Twisted in Python or EventMachine in Ruby.
So it's not exactly a new technique, "just" a new technology bringing a lot of fresh air. :)
I don't think anything like Mojolicious exists in other programming languages. It's a mix of a lot of concepts, while still being standalone, while still providing everything you need and while still being fast. I think everyone that isn't forced to use something else should give it a try (maybe even reimplement something in a different language), because I never saw a quicker way to get where you want.
It does pride itself as a batteries-included, modular framework. And one that doesn't pull in loads of dependencies. Which I can appreciate on one hand, on the other, you do reinvent a lot of stuff that would be on CPAN.
(But, well, looking at the dependency list of Moose alone…)
I count 18 direct dependencies, 2 of which are core. If you look at the full expanded deps list at http://deps.cpantesters.org/?module=Moose it's not many more, especially since most of the 2nd (or more) order deps are core modules like ExtUtils::MakeMaker, Test::More, etc.
For extra added irony, a bunch of the Moose deps are tiny modules we extracted from Moose or Class::MOP in order to make their functionality availability _without having to install Moose_. This includes Class::Load(::XS), Package::Stash(::XS), Devel::GlobalDestruction, Package::DeprecationManager, Eval::Closure, and Dist::CheckConflicts.
Had we just note bothered to break things up we'd have to deal with a lot less complaining.
I just meant that I can understand the desire. We programmers try to make code clear and concise (hopefully), so that we can better keep the system in our heads. Apply this on a larger scale, and you often get reinvented wheels and proprietary solutions. "Other people's code" is often used as a curse.
Hey, my day job involves Catalyst and Moose heavily, and I wouldn't ever want to go back to enterprise Java. So if I came of as "fuddy", I'm sorry.
I often forget the trailing colon in conditionals in Python the same way that I almost always include a trailing comma after the final element of a list in JavaScript.
I don't have these problems in Haskell.
The page reads like a "me too" of web development. The term "Modern Perl" sounds like it will be innovative and different from other options on other platforms. I would love a compelling reason to use Perl again! But I never see one. The innovation is happening elsewhere. Calling things "modern" doesn't make them that.
The combination of Moose, Catalyst, Plack, and DBIx::Class is unbeatable for me. Throw in Dist::Zilla, perlbrew, and cpanminus and I'm almost unstoppable. That's my preference, but the difference between this and pre-modern Perl feels to me like the difference between writing client-side JavaScript by hand and using jQuery.
In 2007 you had Catalyst and DBIx::Class with much less maturity.
Maybe you want to see more amazing new ideas that have never been done before (and that's fine), but even if these things are only incremental inventions or syncretized ideas (and Moose alone is more than that), the combination is very powerful.
That combination is all the more powerful when it takes advantage of the entire CPAN ecosystem.