[Catalyst] RFC: The paradox of choice in web development

Octavian Râsnita orasnita at gmail.com
Sun Feb 15 20:31:00 GMT 2009


From: "Jay Kuri" <jayk at ion0.com>
> I think it's a mistake to try to compete with Rails for the newbie.
> Some large percentage of newbies will never do anything more than
> occasional tinkering if they stick with web development at all.  We
> have limited resources and we don't want to waste our time there.  To
> make Catalyst accessible to the rails-like newbie, we have a TON of
> work to do and it's the wrong direction, in my opinion.

I think most of Catalyst users agree with this.

I think Catalyst shouldn't target the market of small personal web sites 
stored on free web servers, or on $5/month web servers.

But I also think Catalyst shouldn't target only the very big sites like 
Amazon or Ebay, but all the software companies that create web applications 
for their clients, but of course, the serious software companies, not those 
that have 1 or 2 developers.

We should find why those companies prefer using DotNet and Java even for web 
sites, and try to show them that Perl/Catalyst is better.

Most of them prefer Java/DotNet because they can find more programmers that 
know those languages, and we can't do anything to show them that there are 
many Perl programmers also, because there aren't, but we can show them that 
the productivity of Perl/Catalyst is much bigger than of Java/DotNet, so 
they won't need to hire so many programmers and finally they will be more 
efficient.

Most of the software companies, or simple programmers know very well that 
Perl is a language very hard to maintain, because it is not strict, and each 
programmer can have its own way of doing things, and this is true.
But at least we can show that Catalyst is not Perl, like that kind of Perl 
used in CGI scripts, but it is a "language" object oriented, it can reuse 
the code very easily and it is very clear and because of this... easy to 
maintain.

It wouldn't be bad if the next Catalyst book would have a section for "Good 
practice" and for "Recommended modules", or even better, if these sections 
would be promoted on the Catalyst's web site.
That section shouldn't list a single module for a single operation, but 
there could be 2, or 3 modules with clarifications for when it is helpful to 
use one of them and when to use the another, but not let the users to choose 
from tens of modules of the same kind on CPAN.

Another advantage of using Java/DotNet is that now most of the existing 
software companies already have their own created libraries that can be used 
on all their projects, so the productivity would be bigger if they would 
continue to use those languages.
But we can show that most of the modules they've made, probably higher level 
libraries that help them to connect to HTTP and FTP servers, send email, do 
authentication, and other things, already can be done with modules from 
CPAN.

But if we just tell the world about how "great" CPAN is and nothing more, it 
would be a disadvantage, because they will really see how great CPAN is, and 
they won't know what's good for them in there, and if the combination of 
modules they found is a good one that really works without having problems 
in the future.

I know a few people that started to learn perl very few years ago, but 
they've started to learn to create CGI scripts, of course, because almost 
all the Perl books teach that, at least as an example, and this is not ok, 
because if they'll pass to Ruby, they would start immediately to create Ruby 
on Rails apps, and if we compare Perl's CGI with Ruby on Rails... it is very 
clear who wins.

Maybe what I think it would be a good idea might be too aggressive, but I 
think we should also tell the potential Perl/Catalyst programmers what to 
not do, something like:

"The list of books that you should not read, because they are outdated:"
and
"The list of CPAN modules you shouldn't use because they are not good:"
or
"Don't create CGI scripts, because they are slow, hard to maintain and 
require too much work"

and put a very short explanation about why it is not good for them to do 
those things (and others).

And of course, we should also show what the users should preferably do.

This way, there are bigger chances that there will appear if not just a 
single way, at least a limited numbers of ways to create programs with perl, 
and not an infinite number like now, and if someone will see that a certain 
site made with Perl is not working fine, he might also see that there was a 
warning for not making the site that way, because it is not recommended, and 
the site doesn't work fine not because it is made in Perl, but because it 
doesn't follow some recommendations.

I think that this way of using negative and positive recommendations is the 
only good way, because otherwise, nobody will convince all the perl 
programmers not to create new CPAN modules, and reinvent the wheel.

Octavian




More information about the Catalyst mailing list