Subject: Re: CCL:programming language

From: Konrad Hinsen <[email-masked]>
Date: Wed, 7 Feb 2001 15:05:54 +0100

> We are a chemistry department and our first year students take a computer
> science cours learning JAVA. They told me that they don't think it is of
> any use to them.
> 
> I would like to collect opinions which programming language is most useful
> for chemists. Let's assume they are learning only one. 

Only one in the course is fine. Only one for life definitely isn't.

My criteria for a *first* language would be:

1) Simplicity: students should concentrate on programming concepts, not
   on language idiosyncracies. That rules out languages with significant
   historical ballast, such as Fortran or C++, as well as particularly
   complicated languages, such as C++ (again) or Ada, and those with weird
   syntax features, such as Perl or APL.

2) Immediate applicability: Students can rightfully expect to be able
   to apply the language they learn to the problems that will occur
   during their studies. This will be mostly data analysis, perhaps
   simple simulations, but for most of them neither Web site
   programming nor heavy number crunching.

3) Support for modern programming techniques: Even though many scientists
   don't want to admit it, modern software development techniques
   do have advantages. You may not want to teach them directly, but
   you should give the students a chance to look at them for themselves.
   So pick a language that doesn't get in the way of OOP, functional
   programming, etc.

4) Generality: Special-purpose languages, even if very convenient,
   don't make for a good introduction to programming because they are
   too limited. This rules out Matlab and friends.

5) Portability: nobody knows what platforms will be popular when these
   students graduate. Better avoid platform-specific languages, such
   as Visual Basic.

My personal choice would be Python, which has proven very useful in
general scientific tasks such as data analysis, and permits
interfacing to C, C++, and Fortran, the three most common languages
for number crunching. An additional argument is the availability of
VPython, which is the simplest 3D graphics programming environment I
know, and 3D graphics is immensely useful in many scientific domains.
-- 
-------------------------------------------------------------------------------
Konrad Hinsen                            | E-Mail: [email-masked]
Centre de Biophysique Moleculaire (CNRS) | Tel.: +33-2.38.25.56.24
Rue Charles Sadron                       | Fax:  +33-2.38.63.15.17
45071 Orleans Cedex 2                    | Deutsch/Esperanto/English/
France                                   | Nederlands/Francais
-------------------------------------------------------------------------------