Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Which framework I should use to my project.

by programmer.perl (Beadle)
on Mar 24, 2013 at 13:46 UTC ( [id://1025144]=perlquestion: print w/replies, xml ) Need Help??

programmer.perl has asked for the wisdom of the Perl Monks concerning the following question:

I'm new to Perl frameworks. I didn't use any of them. I know Perl and I wrote many lines of basic codes, but till now I didn't lead any big project. Now, I must decide which framework I should use to my project. Project: I want to make a site (like a Google) through which users will find needed local sites.. of course, this site has a search-engine and this engine uses the Google's PageRank technology.. This site will index the local sites (certain to one country) to its database..

How the engine recognizes the current site's country representation -- is out of scope of this topic and I will investigate it later (maybe recognizing by IP, domain..).

Besides of basic topics of Perl, I know these Perl-topics and have a bit experience of them: RegEx, Filehandles, packages, modules and CPAN, Reference/Pointers, OOP, CGI.pm, Perl-MySQL.

I read some articles about the frameworks (Catalyst, Mojolicious, Mojolicious::Lite, Dancer..) and I didn't decide which to choose, it looks like that every framework is good to a particular project and I want to know which framework suits to my project. I know that experience is more useful/helpful than a knowledge in this situation... In future, I'm planning add to my current project mail system like Gmail and I also I want to add local maps... Now, before chatting with perlmonks, I decided to use Catalyst, but my small amount of information/experience about frameworks can mislead me, what is your advice?

I'm ready to read/understand/accept your solution and experience and advises about Perl frameworks. Thanks for advice.

Update: I'm leading this project. But, I'm doing this project alone. I don't have a team.
Update: First, I'm planning experiment with Dancer, after I'll check Catalyst. How about it, is it true way? Is it not expenditure of time?

Enough code make shapes.
  • Comment on Which framework I should use to my project.

Replies are listed 'Best First'.
Re: Which framework I should use to my project.
by Your Mother (Archbishop) on Mar 24, 2013 at 20:27 UTC

    Recommendations

    • Mojolicious. Catalyst is great but probably won’t buy you anything over Mojolicious for this project and Mojolicious has a more agile, responsive, and modern code base at this point; including many stand alone tools and one-liner utilities. Dancer is fine but there is no reason to prefer it over the others or even something like Amon2.
    • Lucy, Googlish search indexing.
    • Plack/PSGI, server/code glue. All modern Perl code for the web speaks PSGI.
    • Prefer PostgreSQL to MySQL. DBIx::Class is quite complicated with a steep learning curve but it can repay you tremendously over the life of a project. NB: search indexing does not match well with relational databases and Lucy has its own index/DB. Your DB will not be used directly in searches.

    Of further interest

    I’m a few years out of the loop regarding these so I’ll just list everything that jumps out as interesting–

    Beware of any solutions that perform live queries. They range from inefficient to likely violating terms of service. Also, let users choose which they want. No IP->Geo lookups are completely bomb-proof. Accept headers can be as good or better for determining preference automatically anyway and there should always be a way for the user to choose (language, results groups, location) manually.

    Last notes: you will have to make up your own mind and if you are like most Perl webdevs unfamiliar with this stuff, you will also probably need to modernize your practices and thinking or suffer for it. In that regard, please see Modern Perl. Things like unit tests are ultimately *much* more important than the framework you pick. Examine the unit tests of various distributions to see what flavor seems the most fun/easy to you. That might help you off the fence if you’re having a hard time deciding.

      Thanks, I'll look in detail these points. Especially thanks for Lucy -- it make me more interested in this project. I'll obtain ModernPerl Book, for now I have a "Perl by Example 4th edit." (almost I read/practiced 70% of it), "Learning Perl" (finished), Definitive Guide to Catalyst (not started yet)... Before starting project, when tools are chosen, I will show all these tools for 'scanning' by perlmonks, and I'm sure they point/show best/needed ones...

Re: Recommend: which framework I should use to my project.
by Anonymous Monk on Mar 24, 2013 at 14:54 UTC

    Hi,

    Are you leading a team on this project? If so find out what expertise they have in this area. I have found it is better to use the hard earned knowledge of your team, rather than throw them in at the deep end of a system that no one is famaliar with.

    J.C,

      Yes, I'm leading this project. But, I'm doing this project alone. I don't have a team.

      Enough codes make shapes.
Re: Which framework I should use to my project.
by McA (Priest) on Mar 25, 2013 at 07:50 UTC

    Good morning,

    if I had to start a one-man web application project, I'd have a look at Dancer2. It's architecture seems good and I got the feeling that you can change parts of the main building blocks easily if you like in contrast to the Mojolicious ecosystem.

    But what I've said is just a feeling (no qualified comparison) I got while digging around in both.

    McA

Re: Which framework I should use to my project.
by rpnoble419 (Pilgrim) on Mar 30, 2013 at 22:39 UTC

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://1025144]
Approved by moritz
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (3)
As of 2024-04-16 05:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found