in reply to Review of CGI::Alternatives
If I were to single out one Perl module that has changed the world, then this would be CGI.pm. It opened the door to write Perl software for the then-young WWW before the full impact of how WWW would change everything could have been imagined. Maybe it considerably contributed to said impact.
Occasionally I am contributing to an open source project which uses CGI.pm since its beginning (TWiki). About three years ago Lee Johnson informed the dev team about his plans, and as far as I can say, he put considerable effort into informing the public about the upcoming changes. Our project makes use of the features which are no longer available in CPAN's CGI.pm, in particular, the HTML generating stuff. Nobody wanted to spend the effort to eliminate all of that. So we could have forked a CGI::Legacy module which kept all the stuff. But actually I wasn't too happy with the HTML generating stuff because it became obvious that it is rather difficult to extend. So, instead, we decided to package a frozen version of CGI.pm together with TWiki, and eliminate that old stuff in our own time. No shouting required.
I'm used to the fact that old code needs to be changed occasionally. Compared to other languages, Perl shines when it comes to allowing for long lifetime of software with just a few changes. Nonetheless I'm trying to keep up with best practices when writing new code. As of today, I am perfectly fine with the current CGI.pm. And quite often I won't use it at all in favour of PSGI. The concept of passing variables as environment variables was a kludge at best (not Lincoln Stein's fault), and I'm glad we can now work without it.
Now, what about CGI::Alternatives? I appreciate that Lee Johnson has put some effort into showing ways to migrate from CGI.pm. He shows how to replace just the HTML generating stuff with TT, and then how to avoid direct use of CGI.pm altogether.
|
|---|