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