On Mon, Mar 23, 2009 at 9:07 AM, Louis-David Mitterrand
<vindex+lists-modp...@apartia.org> wrote:
One of our customers is doing a detailed review of a mason/modperl ERP
app we've built for them since 2001. Prodded by some buzzword-compliant
consultants they are expressing concerns that the app's underlying
technologies - perl, modperl and mason - are becoming obsolete. They
feel that a web application framework must have 'rails' or some other
buzzword in its name.

I believe that the right developers can make good sites with Rails,
but Ruby is a risky choice compared to Perl.  It has a much smaller
base of developers and hasn't been used for any large websites except
the notoriously unreliable twitter.com.

RoR is very good for simple web apps, and most web apps start as simple
apps, but it is much more difficult to develop an application made with RoR
if you'll need it to do complicated things.

But their main argument is that perl is declining as a web developement
language. Also they rightly feel that competent perl developers are
becoming harder to find.

This is true. Less and less programmers use perl, and in most parts of the
world it is hard to find competent perl programmers.
I know that this could be finally the most important point for a company
owner, because he might don't care which of the language is better if he
would need to pay more for finding programmers, or can't find at all.

What arguements could I use to address these concerns and convince them
that their initial investement in perl is still safe and won't be
obsolete in 10 years?

There are fewer and fewer perl programmers because perl is not promoted by a
company like 37 Signals, or Zend, or Sun, or Microsoft, and there are
already some very well written books for teaching perl, so the perl
programmers don't need other books to learn perl basics, so the editors
don't like that, and unfortunately almost all the perl books that teach
about how to create a web app teach about the old CGI style which is not a
good style anymore.

A new perl programmer doesn't know what he should do to make a good
application in perl, because there are no books that helps him to decide
what framework or perl modules to choose, so he doesn't know if the best
solution is Catalyst framework, or CGI::Application, or Mason, or Gantry or
another framework, he doesn't know if the templating system he should start
learning is Template-Toolkit, or HTML::Template, or Mason, or something
else, or if he should use an ORM like DBIx::Class, or Rose::DB or better use
just DBI. When a new perl programmer will want to learn to use the OOP style
of programming, there would be no book to tell him to use Moose or Mouse,
but he will be taught only to use the old style and there could be many such
examples.

So the programmer would be surely confused, and prefer to use a unique-style
language like Python or Ruby, but this doesn't matter that they are better.
Maybe Python is better than Perl for creating desktop apps and interacting
with the OS, especially under Windows, but not for creating web apps.

When the beginners compare the languages, they compare what the installation
packages offer them, but well.... perl doesn't offer too much. Perl is good
if we consider many other good-written modules that can be found on CPAN.

Some advantages of perl are:
- Catalyst framework is much better than the frameworks that can be used in
Python, Ruby and PHP, and it has very many advantages from the flexibility
of the dispatcher, the ease of use (even though it might not be easy to
learn it), the possibility of using more templating systems, more ORMS, more
form processors, more type of authentication/authorization modules..
- Although it might not be so elegant, Mason offers a very high flexibility
for creating templates.
- DBIx::Class ORM offers very many features and it can work very well with
Catalyst, and HTML::FormFu form processor.
- There are more form processors that can be used in a perl project, and
some of them create even the Javascript code used for client  side
validation.
- There are modules that can be used for including JS widgets that use AJAX
in a perl app, some of them don't even require to know Javascript.
- There are more modules that can be used for creating custom wikis included
in an app.
- Even Movable Type app for blogging is made in perl, and from I've recently
seen from a matrix that compares the blog apps, it is much better than
WordPress.

So my second question is, what perl web development framework should we
recommend to our client?

I found that Catalyst framework creates a much more elegant web app than
Mason. Of course, if the developer insists, he can create bad code with any
language or any framework.

Octavian


Reply via email to