There was a lengthy discussion on this at LinkedIn, and I'm going to largely repeat my comments from there. You'll get a lot of different opinion on this because:
- it's a religious issue (i.e. comes down a lot to subjective judgements and personal experience), and
- there's a lot of possible considerations for language choice in bioinformatics courses: teachable to people who aren't just going to be programmers and may not have programmed before, has a lot of useful libraries, has a community behind, good for quick and dirty / one off scripting solutions, useful for web development, etc.
- What "bioinformatics" means to one person and another can be quite different. I'm a bioinformaticist, you're a computational biologist, you're a genomicist and you just do a few stats ...
So a few thoughts about different languages:
Old school compiled languages, e.g. C/C++: No. Learning curve too high, no good for quick-and-dirty problems, weak in web development. Relatively little bioinformatic work happening here. Not a good place to start.
Java: Lots of libraries and BioJava is pretty damn good. But it's not a great first language, and always feels a bit "heavy" when I'm trying to do solve a small problem. Still, I expect to see a lot of development in this area with the JVM enabled languages like Jython, JRuby, Groovy, where you can script and still use the Java libraries. Not for novices.
Perl: was the undisputed choice for bioinformatics 10 years ago but that lead has evaporated. Quirky, opaque and write once. The whole Perl 6 morass doesn't help. I think you can do better. Still, there's a lot of code here and a lot of the older significant tools are written in this (e.g. GBrowse etc.)
Ruby: I've got a love-hate relationship with Ruby. There's a lot of Good Stuff there, and the web development is excellent. People seem to like learning Ruby too. But there are a few quirks in the language and BioRuby is still a work in progress. Still, a lot of enthusiasm here.
Python: this is where the weight of attention is. BioPython has really come along in the last few years and many of the newer, excellent tools (e.g. Galaxy) are written in it. Easy to learn, kind to beginners, big community, good scientific computing support (IPython, NumPy, etc.). There's an odd aspect or two I wish was developed more (I'd really like anonymous closures and better functional programming) but you couldn't go wrong here.
Javascript: many people rave about what a great language JS is, and there are occasional feints at doing bioinformatics in it. But while you _can_ do work in it, _should_ you? Nope.
R: A lot of ecologists & mathematical biologists use R, and it's got graphics & visualization to die for. The IDE is great for beginners as well, allowing packages to easily be installed locally. I confess to a bit of a blindspot with R (some of the syntax is a bit weird), but this could be the right choice for the right group of students.
I'm surprised no one asked you so far: how many hours is the course? That might have a huge impact on the suggestions (teaching proper programming vs. some quick hacks).
Ohh and the main purpose of this course is not to learn them programming. But to make them understand enough about what programming can do so they will ask somebody for help or decide to learn when appropriate.
Here is a relevant thread from Ask Metafilter, in which I recommend Python.
Absolutely, that is in fact why we do Perl now. It is just a very quick introduction. Total contact hours 6, total workload about 20.
Then you might also want to consider http://www.taverna.org.uk/, which makes you get used to train of thought without any actual programming.
Actually with Taverna you're doing visual programming. Most people only learns 2 or 3 textual programming and they innocently recommends them everywhere.
You should choose the language with less semantic gap for your audience. If you want your students copy and paste code, then you may teach them any language, if you want to make them to think, then choose a language which doesn't bother you. Don't buy problems for free. Choose the language with less keywords, less syntatic sugar, less unnecessary concepts to learn. Research to find the most human-oriented language.