by Girish Venkatachalam
Girish Venkatachalam is a UNIX hacker with more than a decade of
networking and crypto programming experience.
His hobbies include yoga,cycling, cooking and he runs his own
business. Details here:
Programming languages are used to express one's idea in a way that
machines understand. Computers need to be told accurately what we have in
mind. They do not understand nuances and body language like we humans.
Consequently programming languages need a lot of precision and
painstaking effort to be told exactly what we want.
Humans work differently. The same thing when told to different people
will be interpreted differently and you will get unpredictable
reactions. Whereas in the case of computers, you will get the exact
same answer. There is a great deal of predictability and convenience in
programming languages as opposed to natural languages like English or
In the case of natural languages, we find that there is a lot of
cultural symbolism associated with language since language forms a
vehicle for expression and communication. Consequently different races
come with different approaches towards life. And the language they speak
clearly mirrors this natural leaning.
I will explain. In India you find that different states are divided on
the basis of the language they speak. Each linguistic group has a
corresponding culture and tradition associated with them.
We have a lot of similarity in the computer world too. You find that C
programmers belong to a certain category of hackers. I think without a
doubt you all will agree that the smartest programmers on earth today
are not assembly programmers or Java programmers but C programmers. I
know that people get religious about programming languages but I want to
transcend petty differences and arrive at the truth.
There is no use fighting over which language to use to solve a problem.
We sometimes find that we know only certain languages and we can think
only in those terms. This is fine but in the long run we may want to
pickup other skills and languages that make us more efficient.
After all there is always the idea of the best tool for the job in hand.
We can use any tool that serves the purpose but programming languages
determine how efficiently and quickly we solve the problem at hand.
I find that the best programming language when applied to a wide variety
of challenging problems on the Internet is C. It is called a middle
level language as you can do object oriented event based programming for
designing user interfaces with it. You also run BGP on Internet's core
routers by writing UNIX daemons in C.
But this article is not about C. This article is about perl. But I wish
to give C its rightful place. C is the most powerful language that
attracts the smartest minds into its fold. As simple as that.
I am sure nobody will get annoyed at the above observation no matter how
political you are with languages. But this statement may cause trouble.
I will still say it. C++ is different from C. It is very different from
C and I have good reason not to comment about it. I will leave it at
Having said all that we will deal solely with perl for the remaining
part of this article. Perl is the greatest language for all tasks that C
complicates. C gives fine grained control and power, but it is also time
taking to develop and error prone. We need high level languages for most
commonly encountered problems. Perl works admirably well here. Sometimes
it works much better than we can imagine.
Python and lua are excellent languages too and I am sure that Python is
much better than perl in many many respects but there is one key
The difference is CPAN. You don't have half as many modules as you have
in perl in Python. Sure, python lets you do things yourself far easier
and elegantly compared to perl. And you also have modules in python and
repositories similar to CPAN. But I repeat. There is no CPAN in any
language other than perl.
What is the big deal about CPAN?
CPAN is not just a repository of perl modules. It is much more than
that. It is a cultural entity with a powerful backend for searching,
mirroring and developing modules.
The sheer energy and commitment that goes into CPAN is phenomenal. It is
also grand testimony to the power of open source. And it clearly shows
how much people care about sharing the result of their toil with others.
You don't have CPAN in python. You don't have it in C or any other
language. There may be free libraries in Java and C++. But as I said,
it is not about the availability alone. It is about the ecosystem built
around it. CPAN has everything and much more.
I think you are getting the drift of my article. Perl is great not just
because of its intrinsic features,syntax or semantics. Perl is great
because it brought about the CPAN culture.
CPAN modules help you quickly prototype or validate your business idea.
You can write anything from quantum physics to file modification with 10
lines of perl code with the right CPAN module.
At least for the sake of tapping into the power of code reuse and open
source code sharing, please learn perl. And get comfortable with CPAN.
You will never have reason to look back after that.
If this page was useful to you, please help others find it:
CPAN master site
More Articles by Girish Venkatachalam
Have you tried Searching this site?
Unix/Linux/Mac OS X support by phone, email or on-site:
This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more. We appreciate comments and article submissions.
Publishing your articles here
Jump to Comments
Many of the products and books I review are things I purchased for my own use. Some were given to me specifically for the purpose of reviewing them. I resell or can earn commissions from the sale of some of these items. Links within these pages may be affiliate links that pay me for referring you to them. That's mostly insignificant amounts of money; whenever it is not I have made my relationship plain. I also may own stock in companies mentioned here. If you have any question, please do feel free to contact me.
Specific links that take you to pages that allow you to purchase the item I reviewed are very likely to pay me a commission. Many of the books I review were given to me by the publishers specifically for the purpose of writing a review. These gifts and referral fees do not affect my opinions; I often give bad reviews anyway.
We use Google third-party advertising companies to serve ads when you visit our website. These companies may use information (not including your name, address, email address, or telephone number) about your visits to this and other websites in order to provide advertisements about goods and services of interest to you. If you would like more information about this practice and to know your choices about not having this information used by these companies, click here.