Re: Mojo vs Dancer Week 1 – Installer, Support and Hello World

As you may have noticed, Adam Kenedy aka Alias has started a competition between Mojolicous and Dancer.

First of all, let me say that I find this idea pretty interesting and, well, refreshing. This is an original way of evaluating software, with a rather objective point of view (Adam is not involved in Mojo development neither in Dancer’s).

The contest will be divided into rounds, which will occur once a weekend, and the first round has just happened. I’ll try to follow Adam in this project and will post a reply to every round-report he posts on his Perl journal.

Round 1:

The Dancer website seems quite a bit more enticing than the Mojo website, at least superficially. There’s evidence of more attention to some of the visual details, with more design elegance and things like source code syntax highlighting.

That’s true I tried to make a shiny website for Dancer, as the key target here is to provide a modern feeling to the visitor. But I’m aware I’m not a web designer and that could be far better that the quite amateur skin I’ve made. That’s why we’ve launched a call for volunteers for a website makeup and we’re glad we now have someone working a new design. So hopefully, the Dancer’s website will be even more attractive soon.

Clicking through the links, however, it’s clear information is still a bit thin on the ground. And the “latest release” version on the download page is behind the version on CPAN, but not by much.

The website generally has more of a “new and undeveloped” feel to it, compared to Mojo’s “mild neglect” feel.

Well, I’m not surprised you got this feeling, because that’s the reality, Dancer is a young project. It’s not even one year old. So I guess as time goes, all that “cutting-edge’ feelling will fade out.

One nice thing about the website, is that they’ve dropped a Hello World example directly on the front page for me to copy and paste.

The main target of the website is to show how simple it is to start working with Dancer, so yes, providing a “Hello World” example is mandatory here.

After some small tweaks for Perl correctness (the Dancer guys also don’t use strict of warnings…)

Well, we do use strict and warnings. Even better: Dancer imports these pragmas for you, automatically. I suppose we should say that in the documentation, even if already mentioned it in the Cookbook.

Oh, Franck already patched the documentation, so it will be shipped with the next release.

The Dancer example is smaller and simpler than Mojo example, and doesn’t make template use compulsory. Again, I can’t stand this use of non-descriptive functions to end these programs. But at least dance is cleaner and less tragic than shagadelic.

It’s a matter of personal taste I suppose wether you like or not the term “dance” to declare that your app is ready to serve. It sounded reasonable to me, but we could imagine a more serious term as an alias, like ‘start’.

Instead, for Dancer tragedy strikes during when I install it.

Because it doesn’t install. Or at least, it doesn’t install on Windows. Or perhaps it’s just my Vista machine.

A redirect test is failing with this…

t/03_route_handler/11_redirect.t …………. 1/?
# Failed test ‘location is set to http://localhost/’
# at t/03_route_handler/11_redirect.t line 36.
# got: ‘//localhost/’
# expected: ‘http://localhost/’

# Failed test ‘location is set to /login?failed=1′
# at t/03_route_handler/11_redirect.t line 44.
# got: ‘//localhost/login?failed=1′
# expected: ‘http://localhost/login?failed=1′
# Looks like you failed 2 tests of 9.
t/03_route_handler/11_redirect.t …………. Dubious, test returned 2 (wstat 512, 0×200)
Failed 2/9 subtests

I reckon Win32 support has been our Achilles’ heel recently. We did *lots* of feature additions recently, and yes, I agree, we failed at maintaining a high level of quality assurance for non-unix platforms.

That will change, as we’re entering a phase where the 1.2 release becomes closer, and then, feature additions will be blocked soon, and QA will be our priority.

The one saving grace is at least it failed quickly. While not keeping dependencies to zero, they’ve done a fairly decent job of keeping the dependency list down to a minimum.

But the most damning factor here is a look at their CPAN Testers results. These show failure rates all over the place, up and down, with some big regressions.

This kind of pattern usually suggests that Dancer is seriously lacking in their QA procedures, or a complete disregard for platforms or Perl versions other than newer Perl on their own operating systems. This makes Dancer a risky choice for me to bet on, because it means it could all go pair shaped down the line.

As I said above, QA has suffered recently because we add a lot of new features. We’re aware of that and will now focus on having a very stable release soon, so we can release and announce Dancer 1.2.

4 responses to “Re: Mojo vs Dancer Week 1 – Installer, Support and Hello World

  1. zhang

    interesting article.
    I’ve been using dancer since the 1st version, and love it more and more.
    catalyst or mojo are complicated for me.

  2. I like the dance; at the end of my code though for enterprise ready applications you might want to create an alias (no pun intended) of that called start() as you suggested.

    I like the whole image of Dancer as I can imaging lots of projects based on it with names such as “Rock Dancer” or “Flamenco Dancer”.

    I could not find a link to the Dancer web site http://perldancer.org/ from the Dancer documentation on search.cpan.org and on the other hand I’d put the documentation on the web site with the same look and feel, instead of links to search.cpan.org

  3. Chip

    I wouldn’t change the “dance” verb. When there is no room for whimsy in Perl, then it’s not Perl any more.

  4. Pingback: Re: Mojo vs Dancer Week 2 – Templates and Images | Sukria.net

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Get Adobe Flash playerPlugin by wpburn.com wordpress themes