Thank you all for your input. Please feel free to keep this discussion going.Christopher De Vries wrote:
Roy Smith already touched on regular expressions, but as far as features go, I would say that the real difference between python and perl is not in the features, but in the philosophy.
To help aid in this discussion, the following Python and Perl philosophy links might be useful: http://c2.com/cgi/wiki?PythonPhilosophy http://www.maths.adelaide.edu.au/~cmc/tutorials/perlintro/x175.html
Now, so that I don't start another Python vs. Perl flamewar, I'd like to inform everyone that I'm about to make a few generalizations based on my experience. As should be understood implicitly, one man's experience is not the experience of everyone...
As a user of both languages, I've found that what Perl and Python programmers have in common is that they were looking for a better tool when they stumbled across their language of choice... After all, one can be productive in both languages.
What I've also noticed that people who use Perl tended to start using it as a way to make either C or shell scripting tasks easier (after all, this is Perl's original intended audience). Many of these developers have gone on to use Perl for bigger and better things, but without a lot of discipline (use strict, and a lot of work with the Exporter), Perl doesn't scale very well to large projects. My belief is that Perl's strength (TMTOWTDI) is also it's greatest weakness.
I've also noticed that Python programmers tend to be a more diverse lot. While Guido originally intended Python to be a second language for C/C++ developers, it is also quite useful as a first language. Python's philosophy is more that there should a clear understandable way to do things, and that readability counts. That is not to say you can't perform tasks in multiple ways, it is just to say that Python doesn't believe in TMTOWTDI as Perl does.
So the bottom line is this. In choosing Perl or Python, the real difference should be your mindset, and what you intend to use it for. If you want a multiparadigm programming language that offers wonderful OO support, is easy to learn, and in which you will naturally write maintainable code, choose Python.
On the other hand, if you are looking for a language to text-processing and to perform short quick shell scripting like tasks, choose Perl. While both languages can be used to perform both sets of tasks, my belief is that one should pair a language and a task by strengths rather than what can be done in each language. I hope this helps!
Michael Loritsch
I intend to use a scripting language for GUI development and front end code for my simulations in C. I want a language that can support SQL, Sockets, File I/O, and shell interaction.
I welcome any opinions on this. -- http://mail.python.org/mailman/listinfo/python-list