<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">Hi All,<DIV>This is probably cheating. Tough, defending Perl against this Python snob should get you riled up enough to burn up a few of those T-day calories. So help me out here. Any other good arguments for this in house discussion? The fellow I got into this with is an Assistant Professor  in the Medical Informatics program. I'd like him to get over his dislike for Perl.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>What occurs to me to say is that if you can't understand someone else's perl code, they either didn't intend you to, or they were too short-sighted to write it properly. And what I like about Perl is that I can do anything with it that needs to be done. (I usually have to ask some help from the highly vaunted perl mongers of course.)</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Tom<BR><DIV><BR><DIV>Begin forwarded message:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Helvetica" size="3" color="#000000" style="font: 12.0px Helvetica; color: #000000"><B>From: </B></FONT><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">"Aaron Cohen" &lt;<A href="mailto:cohenaa@ohsu.edu">cohenaa@ohsu.edu</A>&gt;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Helvetica" size="3" color="#000000" style="font: 12.0px Helvetica; color: #000000"><B>Date: </B></FONT><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">November 28, 2005 10:44:55 AM PST</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Helvetica" size="3" color="#000000" style="font: 12.0px Helvetica; color: #000000"><B>To: </B></FONT><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">"Tom Keller" &lt;<A href="mailto:kellert@ohsu.edu">kellert@ohsu.edu</A>&gt;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Helvetica" size="3" color="#000000" style="font: 12.0px Helvetica; color: #000000"><B>Subject: </B></FONT><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica"><B>Re: Genomics at OHSU</B></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV> <DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Tom:</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Challenges are good when they lead to interesting discussions. Here's my two cents.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">I can't argue against the fact that Perl is good for one line string manipulations. However, old-fashioned Unix tools such as sed do the same thing.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Python isn't geared towards this kind of brevity. The reason that I like Python is that it makes me more productive, and I have been able to use it as a single language</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">to do lots of things, both small and large quickly.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">I think that any Python lover (not just me) would admit that Python doesn't provide the "least characters" way of doing things. But they would also consider</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">that a low priority compared to programmer productivity, debugging time, ability to understand other's code, etc. The problem with using brevity as a measure of goodness is that it becomes irrelevent for programs of any decent size. I like Python because I have writing all kinds of complex programs (genetic optimizers, machine learning classifiers, statistical analyzers, video editors, Sudoku solvers, etc.) and months or years later I can still understand the programs that I wrote.<SPAN class="Apple-converted-space"> </SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">My gripe against Perl is that I can't make heads or tails out of someone else's code without a language manual by my side. Do you have any experience in taking and adapting someone else's largish Perl code? Perhaps your experience is different.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">That said, one should always pick an appropriate tool for the job, and if Perl works for what you're doing, great. I think that you implied that Perl is your first language, so you may want to look into another as a comparison. I like Python, but I have heard some nice things about Ruby. And of course, Java is always a good language to know something about.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">-Aaron</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV> <BLOCKQUOTE type="cite"><BLOCKQUOTE type="cite"><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Thomas J Keller &lt;<A href="mailto:kellert@ohsu.edu">kellert@ohsu.edu</A>&gt; 11/25/2005 9:30 AM &gt;&gt;&gt;</DIV> </BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Hi Aaron,</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">As you can see, once I'm given a challenge, I don't easily let it go:</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">After sending my last message, I realized there was an even shorter <SPAN class="Apple-converted-space"> </SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">perl method from the command line</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">$ perl -pe 'y/Z/5/'</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">ATGACTTGACZTTCGGATCCATG</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">ATGACTTGAC5TTCGGATCCATG</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Tom</DIV> </BLOCKQUOTE></DIV><BR></DIV></BODY></HTML>