> To start us off, I offer the following incomplete list of topics
> to consider:
OK, so let's start...
> * Productivity
>
> Some advocates of object-oriented languages claim a productivity
> boost awaits Fortran programmers who make the switch. A recent
> study appears to suggest otherwise (*). Will object-oriented
> languages *really* make us more productive?
>
> (*) In R. F. Boisvert, ed., Quality of Numerical Software, Assessment
> and Enhancement, Chapman & Hall, London, 1997. Anyone willing
> to summarize the relevant chapter(s)?
I have never heard of this study, but I'd like to make some comments
on the topic based on my own experience.
As usual, everything depends on the application. It is certainly not
obvious that OOP will enhance productivity for tasks like writing an
efficient linear algebra library - but that would be an interesting
topic of discussion. However, real-life programs consist of more than
just "hard-core" number crunching routines. There's stuff like I/O,
user interfaces, maybe command languages etc. And OOP is certainly a
big help for those parts.
I am working in computational chemistry, currently on molecular
modelling techniques, and until not too long ago I wrote and modified
Fortran programs (although not by choice; I'll admit that I never
liked Fortran). The programs available in the field do a good job
on the computational core, but are a pain to use. Defining what
exactly the program is supposed to do can easily be a task taking
several days, because the programs expect the user to think in terms
of the low-level data structures.
So once I had the freedom to do what I wanted, I decided to start from
scratch. My modelling system -- which of course can't rival the "big"
ones in terms of features yet -- is almost entirely
object-oriented. All the user interface, problem definition, analysis
etc. is written in Python, a high-level object-oriented language
(check http://www.python.org for details). The core calculational
routines are in plain C, with no OOP in sight, but they are also very
simple. This combination has increased my productivity enormously;
implementing and testing new methods has become a matter of hours
rather than days or weeks.
So even if OOP should turn out to be useless or inefficient for
number crunching, it is still well worth learning and applying
for everything around the core computations.
-- ------------------------------------------------------------------------------- Konrad Hinsen | E-Mail: hinsen@ibs.ibs.fr Laboratoire de Dynamique Moleculaire | Tel.: +33-4.76.88.99.28 Institut de Biologie Structurale | Fax: +33-4.76.88.54.94 41, av. des Martyrs | Deutsch/Esperanto/English/ 38027 Grenoble Cedex 1, France | Nederlands/Francais -------------------------------------------------------------------------------
This archive was generated by hypermail 2b29 : Wed Feb 20 2002 - 03:20:05 EST