What’s the threat?

You can often hear opinions or wonderings in the vein of: will PHP kill Perl? Will Python kill Perl? Will Java kill Perl? Will FooLang kill Perl? I don’t think anyone of them can hope to. I don’t think Perl will completely eliminate any of them either, but I think Perl’s status is secured.

Perl is too syntactically and semantically rich a language to be abandoned by all its loving users in such a haste. CPAN is also a big plus for Perl, which while being a purely technical mechanism makes Perl more suitable for some tasks than most of its other competitors. I hope to see equivalents in other languages, but it will take some time and a lot of work from some very determined individuals to get it up.

The Perl Culture has extended way beyond its use. From perl poetry to Perl golf, to the talks by Larry Wall and other of the very interesting Perl personalities. The Perl community is alive and kicking and proud of being such. While some people abandon it for Python, Ruby or whatever, most of them still think Perl is a nice language, and don’t abandon it or completely or completely antagonize it. The beauty of the Perl culture is that it’s about using the right tool for the job whether in Perl or not.

We all know 80% of the users use 20% of the features of a given program. However, as Joel Spolsky identified they often use a different set of features. Perl’s feature-set is huge, but you can survive with knowing maybe 10% or even less of it. Moreover, you can gradually learn more and more features and keep learning new ones. Perhaps only the three authors of Programming Perl know the entire feature set, and I believe even they are actively unaware of some obscure details of it. However, one always feels he’s getting closer to 100%.

The problem is that Mel is not concerned with any of it. She just wants to write a program. This program may just as effectively be written with Python or Ruby or PHP. And we should be concerned with her writing it in Perl, because otherwise, it will take her more time to get to learn Perl. As much as I care about the quality of Perl programmers (which is actually quite good) I also think we should evangelize it to many people who’ll find it useful.

Moreover, I don’t like Mel becoming one of those characters who say: “Perl? This horrible language? I’m using PHP/Python/Ruby/Java. It’s much better than Perl.” I don’t think there’s a way to exactly measure which language is “better”. Some languages are better in some regards and for some purposes than others. But Perl is much more than a language. It’s a culture and a philosophy.

Perl has a lot of potential for Mel. Alternatively, it has such for Joanna Simpson, a CEO of a Fortune 500 firm who is trying to ship her automobile-company’s new car model. I think we should even try to teach Joanna Perl, because not only will she learn how great a language it is, but it may actually be useful for her in her day for day work. Otherwise, she would tell Robert, her secretary, to sort all the files into several directories a week from now, which can otherwise be done with a 10-liner Perl script. This will leave Robert enough time to answer phone calls and play Frozen Bubble (which is written in Perl) in between: things that Perl or any other software cannot do for him.

Perl should be everywhere. Let’s not ruin the day for Mel, Joanna or Robert by a bad attitude. Remember that at a time, we were not much more educated than them. Not even old time UNIX gurus like Ken Thompson or Larry Wall can claim that, because UNIX and Perl developed based on input by many people and everyone was always surprised by new developments. While the effort was concentrated, the ideas flowed from everywhere.

Furthermore helping newbies is fun and makes you feel good. You don’t have a moral obligation to do so, but I believe you’ll find helping someone even with a trivial question even more enjoyable then getting help for something that bothered you. That’s how the open-source world works.

You may eventually find yourself in a similar situation in something else entirely, and may need help by people who are more expert than you are. During my Electrical Engineering studies I studied things that were much less straightforward to me than either Perl or UNIX (which I don’t consider easy either), and sometimes the help of the lecturers, the T.A.’s or fellow students proved crucial to understanding them. Moreover, explaining something to someone who grasps it much less than you, is the best way of learning (even better than actually experiencing with something yourself). That’s because when teaching someone, you have to think how to convey it using more basic knowledge in a structured way, and so understand it much better.