Best programming language for biology students?

Niels Larsen niels at darwin.life.uiuc.edu
Sat Apr 15 19:03:15 EST 1995


It was argued here, that Visual-Basic, Visual C and C++ are good languages
for biology grad students. Michael Torok thought platform independence is
not an important issue, because the majority of operating systems in use
are Microsoft DOS/Windows. And he downplayed the importance of a language
being non proprietary.

There are maybe different kinds of biology and different preferences in
different life science disciplines. But I always see a mixture of
platforms, most notably Mac's, PC's (with either Linux, Microsoft
DOS/Windows or NT on them), and Unix workstations, and a few remaining
VAX/VMS machines. Students will move around and will have to be able to
work on different machines, so they should learn portable tools. And 
platforms change in popularity too.

Regarding proprietary tools, it is a mistake to encourage those. 1) In
these networked times, students should be able to share code with
colleagues, without asking them to pay for a certain package. 2) A class
set of Microsoft programs isnt cheap for an underfunded school either. 3)
The support of a non-proprietary package is much better than commercial
software: If some one finds a bug or has trouble, then post a detailed
report to the news group of that language (e.g. comp.lang.perl). Then
someone out there usually looks at it and posts a fix in the form of a
patch, which can then be applied to the source code right away. You dont
get that kind of support from a company, there you can wait until next
release if they even want to fix it. This is only possible because the
source code is freely available. 4) Finally, from a teaching standpoint,
there are never any 'mysteries' about how things work.  So those curious
ones who want to understand or maybe even improve the tools are free to do
so, again only because complete source codes are available.

I agree Visual-Basic is easy to learn and has no compile cycle. But it is
a less powerful language than Perl or C++, does not come with source, is 
not portable and is proprietary (and costs money). 

Without hesitation, I would choose to teach biologists Perl 5 as the first
language.  It is a clear improvement over Perl 4, except there is no book
in the store yet. Novices will spend too much time on syntax and correcting
bugs in C, and languages at that level (like Fortran, Pascal).  A student
can work by knowing only very little of the language, and still get a lot
done.  They wont be scared off by spending time figuring why something
steps around in the wrong memory or how to get pointers right.  Perl allows
a C coding-style but takes care of almost all declarations and low-level
nit-grit, and has a great suite of operators and packages.  There are many
places to get Perl 5, see the Perl FAQ (Frequently Asked Questions) in
comp.answers.

Functional programming (like Scheme, Lisp) allows free mixture of code and
data. For example, it is quite easy to write a database browser then,
because a database record could be a piece of code that not only contains a
biological figure (like a metabolic pathway) but also a description of how
it is presented. The browser would just say 'eval codepiece' and a fine
picture comes up. That way control is moved from the program into the data,
which is good. This is not unlike PostScript. But I am told this it is much
more difficult to learn than Perl, and I have little experience with
it. There are news groups comp.lang.scheme and comp.lang.lisp, as well as
many free implementations (see FAQ's under comp.answers)

The Internet is bringing 10,000's or 100,000's of spare time programmers
together, in all areas of interest. They will start forming joint projects
that could give software companies a hard time. Already, the great Linux
system runs on perhaps a million PC's, and develops very quickly (comes
with sources, run almost all Unix programs from other platforms, brings
more speed out of your PC than DOS, has faster-than-WABI DOS and (soon)
Windows emulator etc).  There is an ongoing cloning of the fine NextStep
system (they call it GnuStep), and many other interesting projects. But we
have seen nothing yet, this force of creativity will be hard to compete
with. Biologists will probably form the same kind of joint projects, but
proprietary software kind-of impedes that.

                                            Sincerely, Niels Larsen

 ________________________________________________________________________
|                                                                        |
|  Niels Larsen, PhD                 E-mail niels at darwin.life.uiuc.edu   |
|                                                                        |
|  Department of Microbiology        Phone  (217)-333-9369               |
|  University of Illinois            Fax    (217)-244-6697  (shared)     |
|  131 Burrill Hall                                                      |
|  407 South Goodwin Avenue                                              |
|  Urbana, IL 61801, U.S.A.                                              |
|  _ _ _ _ _ _ _ _ _ _ _ _ _ (work) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _  |
|                            (home)                                      |
|  1001 Ross Drive               Phone/fax  (217)-356-5451  (ans mach)   |
|  Champaign, IL 61821, U.S.A.       Phone  (217)-356-3572               |
|________________________________________________________________________|



More information about the Bioforum mailing list