Update: Dive Deep Into Python Vs Perl Debate – What Should I Learn Python or Perl?
The debate of Python vs Perl is age old and we are not continuing this debate. Actually the author feels that the debate is very much meaningless. Both Python as well as Perl are used widely as scripting language. Both of them has its own Pros and Cons over other. We are discussing both the Programming Languages their features, pros, cons and a lot more.
About Python
Python is a general purpose high level Programming Language was developed by Guido van Rossum. Python is best known for its highly readable codes that lets you achieve lot of things in very few lines of code.
Features of Python
- FOSS (Free and Open Source Software)
- OOPS (Object Oriented Programming Language)
- Imperative i.e., computation in terms of statements
- Functional Programming i.e., computation in terms of Mathematical functions
- Procedural Programming i.e., step-by-step Programming
- Often used as scripting Language
- Community based Development
- Exceptional Handling, implemented
- Support for garbage collection and Memory Management.
- Current version Python 2.7.6
About Perl
Perl is a general purpose High Level Programming Language was developed by Larry Wall. Perl stands for Practical Extraction and Reporting Language.
Features of Perl
- Dynamic Programming Language
- Useful for Graphical Programming
- Often used in scripting, and one of the Platform to create tools for System Administration
- Network Programming, Bioinformatics and Finance are its other area of Application.
- Camel, the symbol of perl is not officially declared.
- Procedural Programming
- Perl borrows a lot of features from programming languages like c, Lisp, AWK, sed, etc.
- Often used as glue language, working between two distinct interface.
- Often implemented as a core interpretor.
Pros and Cons of Python
Pros of Python
- Easy to learn for newbies.
- Programming Language seems designed
- Best for Small task with the help of predefined and keywords and commands.
- Great Object Oriented Approach
- cleaner Syntax
Cons of Python
- Force programmer to follow certain convention
- Codes wont work if indentation is incorrect
Pros and Cons of Perl
Pros of Perl
- Looks like Shell Language
- Follows Traditional Approach by using Braces for functions and Loops.
- Extremely Powerful Programming Language
- Versatile
- More Multi-purpose Language
- Mature Language
- Can be Imperative, Procedural, Functional or Object Oriented, depends upon need.
Cons of Perl
- Many ways to achieve same result, means unreadable code, which in turn means untidy code
- As scripting, it is slower for a lot of tasks.
- Object Oriented not implemented well
- Creates problem when the codes are larger say more than 200 Lines.
- Argument Handling is poor
- Not Portable
- No Interpretor Shell
- Ugly Libraries
Conclusion
The debate of Perl vs Python is very much religious. As a Developer one must choose his tool carefully. It is all about the task and the tool best suited for both of the above programming language has different goal and comparing them is a unfruitful task.
In this article we have not supported and/or rejected, any programming language neither can anyone do it. We Just tried our best to cover the right thing and avoid any controversy.
That’s all for Now. Provide us with your valuable Feedback in our comment section. I’ll be coming up with Interview Series articles soon. Till then Stay Tuned, Healthy and connected to Tecmint.
To state that Perl has issues for code size > 200 lines illustrates the immaturity of the author. I have written industrial quality programs in Perl incorporating thousand of lines spread out across dozens of modules.
Although this article is very old, it still pops up in Google searches on the “Perl vs Python” conundrum. For the love of God, please don’t EVER treat this article seriously, folks! It’s not only badly written (that English…), but also full of rubbish. The author has obviously no idea about either of the languages and should do some serious research before writing. Frankly, an utter disgrace to tecmint.com :|.
@Andy,
Thanks for your opinion, and we do respect it, yes I do agree that the article is outdated and haven’t been updated since long time, but now we are taking it on high priority and will soon update this article with latest stuff about Python vs Perl..
I am very sorry for throwing a tantrum previously, I had a tough day then :/. To be a bit more specific, the problem with this article is not merely that it’s outdated, but that many of the listed points are simply not true and have been mentioned by others already in 2014. For instance, both Perl and Python have an Interpreter mode. Then, you cannot say that Perl is slower, because it’s a scripting language. Python is also a scripting language and suffers similarly. That’s why I wrote one should do proper research before writing an article entitled “The Truth of Python and Perl”.
Wait, Perl is so far portable, because it is ANSI C and is available for a wide range of machines and OS. Someones say that this is the most Portable Scripting Language because it is the oldest Scripting Language…
Python -> RAD/Team Work
Perl -> Critical Systems/Sysadmin
But you are right, Perl has ugly Libraries on CPAN, on other Hand, Python has so far useful Libraries.
what precisely is meant by “ugly libraries” ?
imho, CPAN is the silver bullet – Perl programs don’t need to be large at all .. because just about everything you need done has already been published on CPAN. Your program tends to be simple glue more times than not.
Python has awesome math/scientific libraries, and in this space it outshines Perl.
Yes, Perl has a poor (Function) Argument Handling, because it has no true Real Subroutine Signatures, but it change in Perl 6. And yes, Perl isn’t suitable for a team work, seems so far Hardcore put 20 Perl programmers to work without a good standard coding style, even ‘use strict’ try it… So, in the OO, the MOP try to resolve it.
Apparently the author of this article has never worked with Perl.
Every CON point mentioned is wrong.
I suggest he read the following article.
http://www.drdobbs.com/open-source/why-i-use-perland-will-continue-to-do-so/240148364
I disagree that the two items you list as cons for python are actually cons. I think they are big pros.
One more article where a so called programmer who do not have sufficient knowledge of a language tend to give some really flimsy reasons to run it down. “Interpretor” is how you spell it?? Really??
Perl may not be as popular as Python, but it’s a great language.
A LOT of big organizations use Perl to this date and will continue to do so.
Another so called expert talking nonsense! Some points:
“Many ways to achieve same result, means unreadable code, which in turn means untidy code” No this is down to lazy/incompetent programming. Perl is much more forgiving as a language so you can get away with more. More choice means less constraint.
“As scripting, it is slower for a lot of tasks.” This is Python vs Perl so this point is irrelevant!
“Object Oriented not implemented well”. It’s not as nice as Python but core OO in Perl works perfectly well and is still easy to use. There are also good frameworks that help streamline things,
“Creates problem when the codes are larger say more than 200 Lines.” Nonsense. I have written 20K programs without issue. In fact this is a weakness of Python, which does not support data privacy, whereas Perl does.
“Argument Handling is poor” Well he had to get something right!
“Not Portable” Nonsense. Just as portable, if not more so than Python. Python does have issues with being less mature as a language and so often requiring one to upgrade Python in order to get a script working.
“No Interpretor Shell” Nonsense, perl -d – Ctrl-D.
“Ugly Libraries” Nonsense. Most have OO interfaces these days.
If you want a more informed comparison look here at my blog:
http://coosoft.wordpress.com/2013/02/24/the-perl-vs-python-debate/
Tony.
Tecmint folks,
Could someone please give us a headstart into learning perl and python scripting languages. I am a DBA and i do a lot of automation of Oracle DBA tasks using shell scripts. But I read a couple of years ago that some 100-200 lines of shell script code is just a few lines of code in perl for automation. I did set out to learn perl from the basics but could not follow through and apply it in real world (Oracle DBA world). I would appreciate if someone could post articles on the basics/intermediates of perl and python so folks like me can improvise from there.
~
Nawaz
As regards perl just google for DBI and DBD::Oracle (the Database modules)
I fully support you, Sam. Perl is very fast, maybe fastest in scripting languages. But for refactoring Perl is not so good as Python.
This is a horrible article, the author has no idea about perl. Let me go through the supposed ‘cons’:
Many ways to achieve same result, means unreadable code, which in turn means untidy code — Good I say, this promotes creativity
As scripting, it is slower for a lot of tasks. — What?
Object Oriented not implemented well — OO in perl is fine, it has 10+ OO frameworks
Creates problem when the codes are larger say more than 200 Lines. — Flat out lie, I know plenty of perl programs that are 10k+ lines
Argument Handling is poor — how so?
Not Portable — How? where does python run that perl can’t? Perl interpreter is less than 50kb. Python interpreter is 1+mb. Clearly python could never run on an embedded system with less than 1mb of ram…
No Interpretor Shell — more lies, just type ‘perl -d’
Ugly Libraries — beauty is in the eye of the beholder…
Thanks for leaving this rebuttal. I thought the article was slanted too far toward Python when the Camel was listed as a “feature.”
I am a fan of Python but forced to use Perl. Waiting for admin’s reply for the above comment.