The programming language does make a difference for bioinformatics. (From a Perl lover who knows no Python.)

Lenny Teytelman Jan 02, 2017

This isn't a technical blog post where I dive into the relative strengths of Perl and Python. That's because I know zero Python but sometimes have dreams in Perl. I learned Perl in the lab of Lincoln Stein, taught it several times as a TA in his CSHL Programming for Biologist class, and organized a similar bootcamp in Berkeley. Sure, there were others before 2001 (7K lines of Visual Basic code when I worked as a database developer and C++/JAVA as undergrad), but 99.9% of the code I wrote as a bioinformatician between 2001-2013 was in Perl. 

I've also said many times that the programming language isn't all that important. It is true that the fundamental programming concepts matter, but all else is just syntax. However, it is not true that the programming language makes no difference at all, or we would all be coding in Assembler and Fortran today. Computer languages evolve and new ones appear for good reason. The programming course I started as a graduate student at Berkeley in 2007 was in Perl the first two times we taught it, and as I left the next student instructors changed to Python. I understand that it's because Python is a better first language for a biologist who has never programmed before the class.

Two days ago, my friend Gary Lupyan, a cognitive sciences professor at Madison-Wisconsin who encourages Python use in his lab, asked me:

There were countless responses to the question (also here and under these threads). The consensus seems to be that almost everyone has switched to Python or R. The exception is people who are working with massive legacy code projects or folks like me whose fingers type Perl using muscle memory. 

Of course, there is a time barrier for someone like me to learn Python. Of course, I can do everything in Perl that you can do in Python. However, it doesn't mean that the language doesn't matter. It matters for learning, it matters for readability and reproducibility by others. Using Perl may be easier for those of us who already know it, but it seems clear from the responses above that it's not the best choice for bioinformatics today.