The Source for Java Technology Collaboration
User: Password:



Stephen Montgomery

Stephen Montgomery's Blog

Java vs Perl for Bioinformatics - Calling Cab 28

Posted by smontgom on March 02, 2004 at 04:23 PM | Comments (6)

Teaching programming to biologists is one of the key challenges of bioinformatics educators. A few weekends ago, when several dozen bioinformaticians from across Canada organized to discuss curriculum and educational practice, this was certainly an issue of contention. How do you rapidly give a novice computer user the experience and wherewithal to design and write computer programs? Furthermore, how do you teach them about programming without intimidating them? These questions invariably brought up debate as to which programming language is the easiest and most fruitful for a biologist to learn. While temporarily pitting the Perl camp against the Java camp provided some humorous levity, the underlying issue was more serious as the choice in introductory language should provide most 'accidental programmers' with a serviceable understanding of the concepts of good programming and appreciation for using the right tool for any particular job. Fortunately, before any blood was shed, we considered this expertise to be language-neutral. Both languages offered the quick and 'dirty' methods of managing and transforming bioinformatics data. Both had the potential to cover the introductory concepts for programming. What we realized was missing was an introduction that was general enough to be language neutral but with a focus on resource identification. Students, regardless of the field, need to be introduced to the concepts in conjunction with information on what is the right language for a particular job and how to access the larger amount of information available on the Internet. Most students that I have had experience with will be stuck once they have reached a debugging error that they do not understand. Anyone who is reading this article on the Internet is likely more than familar with Google (what I consider as one of the most powerful debuggers and automatic code generators available). Educators teaching crash courses in programming need to present the simple skills which most of us apply when encountering 'show-stopping' programming errors. This ability with a better understanding of how to set-up a programming problem will undoubtedly lead to less instances of "programming in anger".

A few of us were reflecting on this debate immediately afterwards on our way to the pub. The cab driver overheard that we were programmers and inquired what languages we used. The response was, "mostly Perl and Java". To which he replied, "What about real languages?" Incidentally, he offered us C debugging advice if we called up his cab, number 28.


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • re: Calling Cab 28
    Cab driver/C programmer? Before we start putting the boot in, let's remember those photographs circulated after the dot-com bust of panhandlers holding up signs that read "Will code in Java for food"...

    Posted by: drlaszlojamf on March 03, 2004 at 05:31 AM

  • Perl or Java? Nay! Thrice I say NAY!
    Python would be the easiest to teach AND use.

    Posted by: robertx on March 03, 2004 at 05:45 AM

  • Perl or Java? Nay! Thrice I say NAY!
    I have seen a lot of interest for Python in bioinformatics circles. If we could steer this interest towards Jython, we might have the best of both.

    Posted by: johnreynolds on March 03, 2004 at 07:53 AM

  • Its a hard task
    Thinking in the biological sciences and computer science are quite different.

    I say don't bother teaching. You can teach someone how to hack some software, or point and click with visual basic or jbuilder, but you can't teach elegant problem solving.

    I liken it to graphic design and computer programming. Usually they two separate entities and ways of thinking, and it is rare to find one with skills in both.

    I have had to USE and write wrapper software around "bioinformatics" based tools, and they were ALL poorly designed, lacked quality and had terrible error messages.

    One of the worst was "Fatal Error: Good luck finding the bug" in a perl program for RNA secondary structure prediction.

    I say either formally train in both, or you shouldn't be doing it!

    A hack isnt a program :)

    Posted by: joecole on March 03, 2004 at 08:41 PM

  • "What about real languages?"
    "What about real languages?" -- no wonder he's driving a cab.

    Posted by: parmenion0 on March 04, 2004 at 01:04 AM

  • I think that people in bioinformatics are interested in learning what it is relevant and what it takes to most effectively do their work. I have written the article Introduction to Data Modeling for Physiology: The Human Endocrine System to demonstrate data modelling concepts for medical and biosciences specialists and I used Java. I would be interested in getting some feedback from people specializing in these areas. Biosciences are becoming increasingly quantitative and it is hard to see people in this area doing much without getting data collected and being analyzed into software.

    Posted by: alexamies on April 04, 2006 at 11:14 PM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds