Friday, June 13, 2014

Good old Perl

What is Perl used for?

Testing, Web Applications, BioPerl.

Why?

Because it has always been used for them.

How are most Perl web applications  run?

Mod Perl.

How long more with this continue?

As long as possible. Probably many years into the future....

Where is Perl used for Web Applications and Testing? 

In the enterprise. A lot of HTML developers may have learnt PHP, and made it more popular than Perl. But for real projects, in large corporations, the choice was Perl.

What does an enterprise want?

Stability.

This is where Perl shines. It has proven itself many times over.

Companies will keep their existing applications running without change for as long as they can. If they have existing frameworks, they will continue using them for new applications. If they can copy and paste existing code, and use it in a new appliction, they will. A new technology will only be considered if it provides a compelling advantage, generally in terms of money. 

If a company has an existing framework, and does decide to use a new language or framework, then they have to start supporting two frameworks, because they are never going to have the time to translate all the existing applications to the new one. Having to support two or more frameworks or languages is bad, because it leads to increased team size, support and training costs.

So, what should Perl do?

Learn about, support, and train people in the technologies used in the enterprise. And if that means supporting Red Hat Linux, Perl 5.8 and mod_perl, then so be it. 

Continue doing that, and the next enterprise application could well be written with Dancer or Mojolicious, while reusing the existing Perl modules at that company.


4 comments:

Anonymous said...

I'm not sure I totally agree here. Clearly we should do our best to support our peers using legacy technologies, but my experience is that companies using modperl 1, old apache versions and so forth tend to think there isn't a Perl beyond that and am looking to replace Perl with something else.

I think we need to help people see clearer ways to transition from those older techs into newer things and show the clear benefits (we need to show new stuff is an order or magnitude better or better won't bite). And we need to show people there is less risk and more reward in moving from modperl and CGI type applications to Modern Perl than there would be in doing a total rewrite in node.js / ruby, $fling_of_the_day.

Nitish said...

I have seen only one Perl application rewritten in a different language, and it was rewritten in Java. The reason was because they had Java developers.

I think people are getting tired of using the fling of the day, only to see it change to something else in a few years. Better to stick to what you know.

Steven Haryanto said...

Warning, lots of out-of-date (mis)information :)

Nitish said...

Thanks for the comment John.

If a programmer from an older $fling_of_the_day wants to write an application in the latest $fling_of_the_day, Perl should just ignore them. It is almost impossible to make them change their minds.

When I see a programmer who switched to Ruby on Rails a few years back talk about how Ruby has no future, and that everything is moving to JavaScript, I know that I can never convince him to use Perl. And I won't waste any time or effort in doing so.

But people who have invested in Perl already, and have Perl people, so far, I haven't seen anyone like wanting to switch to a new language.