Pages

Wednesday, November 11, 2009

What Programmers Say


You may find it interesting to read what great hackers like ESR have to say about Python:
• Eric S. Raymond is the author of 'The Cathedral and the Bazaar' and is also the person who coined
the term 'Open Source'. He says that Python has become his favorite programming language
[http://www.linuxjournal.com/article.php?sid=3882]. This article was the real inspiration for my first
brush with Python.
• Bruce Eckel is the author of the famous 'Thinking in Java' and 'Thinking in C++' books. He says
that no language has made him more productive than Python. He says that Python is perhaps the
only language that focuses on making things easier for the programmer. Read the complete interview
[http://www.artima.com/intv/aboutme.html] for more details.
• Peter Norvig is a well-known Lisp author and Director of Search Quality at Google (thanks to
Guido van Rossum for pointing that out). He says that Python has always been an integral part of
Google. You can actually verify this statement by looking at the Google Jobs
[http://www.google.com/jobs/index.html] page which lists Python knowledge as a requirement for
software engineers.
• Bruce Perens is a co-founder of OpenSource.org and the UserLinux project. UserLinux aims to create
a standardized Linux distribution supported by multiple vendors. Python has beaten contenders
like Perl and Ruby to become the main programming language that will be supported by UserLinux.

Why not Perl?


If you didn't know already, Perl is another extremely popular open source interpreted programming language.
If you have ever tried writing a large program in Perl, you would have answered this question yourself!
In other words, Perl programs are easy when they are small and it excels at small hacks and scripts to
'get work done'. However, they quickly become unwieldy once you start writing bigger programs and I
am speaking this out of experience of writing large Perl programs at Yahoo!
When compared to Perl, Python programs are definitely simpler, clearer, easier to write and hence more
understandable and maintainable. I do admire Perl and I do use it on a daily basis for various things but
whenever I write a program, I always start thinking in terms of Python because it has become so natural
for me. Perl has undergone so many hacks and changes, that it feels like it is one big (but one hell of a)
hack. Sadly, the upcoming Perl 6 does not seem to be making any improvements regarding this.
The only and very significant advantage that I feel Perl has, is its huge CPAN [http://cpan.perl.org] library
- the Comprehensive Perl Archive Network. As the name suggests, this is a humongous collection
of Perl modules and it is simply mind-boggling because of its sheer size and depth - you can do virtually
anything you can do with a computer using these modules. One of the reasons that Perl has more libraries
than Python is that it has been around for a much longer time than Python. Maybe I should suggest a
port-Perl-modules-to-Python hackathon on comp.lang.python
[http://groups.google.com/groups?q=comp.lang.python] :)
Also, the new Parrot virtual machine [http://www.parrotcode.org] is designed to run both the completely
redesigned Perl 6 as well as Python and other interpreted languages like Ruby, PHP and Tcl. What this
means to you is that maybe you will be able to use all Perl modules from Python in the future, so that
will give you the best of both worlds - the powerful CPAN library combined with the powerful Python
language. However, we will have to just wait and see what happens.