[cgiapp] Re: Perl Certified Hosting

Mark Stosberg mark at summersault.com
Mon Sep 15 16:06:51 EDT 2008


> IMHO, once you have a nice list of modules that should be on the servers
> make sure all the linux distros and FreeBSD that are the major flavors
> used for for web servers provide those modules in their standard
> packaging system.
> 
> Then you can go to the hosting companies and it will be trivial for them to
> install all those modules regardless if they are written in C or not.

As a CPAN author and the owner of a hosting company, I see flaws with both
approaches:

- As a host, I understand cPanel's policy of not giving c-compiler access to
  users. I like it when module chains offer a pure-perl alternative.

- Having hosts provide a standard set of modules with standard versions is just
  a bad idea. YAPC featured multiple presentations on why to distribute the
  "stack" (of dependencies) with your application, and I have written about it
  myself. Indeed, it is one of the goals of Titanium.

  The reality that module upgrades can and do make incompatible changes, even
  when they aren't intended. I've done it myself, with Data::FormValidator and
  CGI::Application. So, if you tell hosts "provide CGI.pm 2.95" and then later
  tell them "Ok, the standard has been updated, now you just provided CGI.pm
  3.3", then given enough users of the system, someone's code will break in the
  upgrade.

  This just further encourages module authors to support bad API designs
  because they are backwards compatibile.

The solutions I see don't involve Perl-certified hosting:

1. Ship the dependency stack with your application. Projects like 'local::lib'
make this easier to do. search.cpan.org or some other side could automate it,
providing you a tar file of dependencies for any module you wanted, possibly
in a way that prefers Pure Perl code over XS.

2. Secure access to compiling on the target platform as needed, whether you compile
directly on the target host, on a compatible system, or find ways to avoid XS code
altogether. (Increasingly, that's my preference). 

    Mark




More information about the cgiapp mailing list