Enlightened Modern Perl or useful Perl?
When showing examples in Perl I have a huge problem.
On one hand, I'd like to show only really good stuff, that assumes a recent version of perl with recent modules from CPAN. That's what the so called Modern Perl or Enlightened Perl movements promote.
On the other hand I'd like to be useful to people working in the real world.
In the last week I got two requests for help. One had to parse a CSV file without using CPAN, the other one had to send e-mail from HTML form using CGI.
In both cases the people on the other end were employed by a Multinational Company. Sometimes also called MNC.
Multi Nation Company
As I understand this is basically an euphemism for a "first-world" company outsourcing their system to India or maybe some other country. The original developers are moved to other projects, or are even laid-off, while the new developers in India are left with a 10-15 years old code base. Without documentation. Without tests. Probably without a good development environment.
As I see, they are usually people with no, or little Perl experience. Even what they have is from seeing 10-15 years old horrible code-base. In many cases written by people who learned Perl on that job.
Without proper Perl training or experience, they have a very hard time.
They probably don't have the knowledge to use CPAN, and even if they learn that, will they have the power to get management allow them to use modules from CPAN?
The Dilemma
So there is my dilemma.
Shall I show the most awesome way to write web applications using the best Object Oriented system, or shall I show stuff that the majority out there can use in their current environment?
Back to basics
In order to answer that, I should go back to the basics. Why do I run the Perl 5 Maven site?
The objective is to help people get their job done while generating enough revenue for myself to make this work sustainable.
So it needs to be useful to both people who are trapped in a maintenance job with a 15 year old code base, and to people who are building new and fancy stuff and can allow themselves the latest and greatest technology.
If I am lucky, then I'll manage to help the maintenance developers to improve their code base and their work environment, so one day, they can also start to use the new and nice technology.
In a nutshell, I have to find a balance between code that is necessary to keep an old boat afloat, improving that codebase to employ the current best practices, and building new, nice and maintainable applications.