*** For details on how to be removed from this list visit the ***
*** CCP4 home page http://www.ccp4.ac.uk ***
Having had several computer languages apparently named after me (not
just the misspelled PERL), I feel I should relate a cautionary tale
about embracing new and feature-rich languages on the reasonable
grounds that FORTRAN is dying.
As a PhD student (so long ago that John Lennon was still alive) I
embraced the problem of phase improvement and wrote an excellent
density modification program incorporating histogram equalisation,
solvent flattening and a very neat high-peak connectivity algorithm
based on ideas of Narayan Bhat. Unfortunately it was written in a
fantastic language called PL/1 which had a proper Chomsky normal
grammar, structures, definable data types and wonderful automatic type
conversion, ran on IBM 370s and on the Cray-1, and was guaranteed to
displace boring old FORTRAN within weeks. Unfortunately it didn't and
subsequent Cray versions dropped PL/1. I never could quite bring myself
to re-write my program in clunky old FORTRAN.
Beware - rumours of the death of FORTRAN may again turn out to be
exaggerated.
On 6 Dec 2005, at 10:12, Kevin Cowtan wrote:
*** For details on how to be removed from this list visit the ***
*** CCP4 home page http://www.ccp4.ac.uk ***
I am comming to the conclusion that the merits of a language (or
otherwise) are pretty much irrelevent when it comes to what is
popular.
More important issues are:
1. What are other people using?
2. What are students learning?
3. What are the libraries written in?
So for example, Objective C is probably the best native-compiled
language available(1), and yet we use C++. Why? Because C++ is the
most widely used native-compiled language in the world.
Timing is critical: I am lead to believe that Ruby is superior to
Python, and yet Python was there and was good enough when the need for
a well designed OO scripting language was there, and so it filled the
hole.
Java is the most widely used language in enterprise computing, has
awesome libraries and tool sets unavailable in any other language(2),
is a complete no-brainer for most DB and web applications, and is
widely ignored in science because for the first ten years performance
wasn't good enough for numerical applications. (It is now.)
Then we have the two schools of competing languages for MS and non MS
people: C++/C#/VB and C++/Java/Python.
What do computer science students learn? C++, Java, Python, C#, maybe
Ada. Maybe a few physics departments still teach Fortran, but I
couldn't name one off the top of my head.
What are modern tools written in? If I want to talk to databases or
web services the natural languages are Java, Python, and C++. The same
for the tools for GUI work or XML. If I ask google for libraries for
Markov chains or neural nets, the main results are Java, C#, C++, C,
and python. Some of these get Fortran wrappers in time, but even when
they do they are limited, late, and often poorly supported.
These last two points for me are critical in determining that Fortran
is a dying language. There is still a huge range of traditional
functionality available in Fortran libraries, but the new techniques
and the new programmers simply aren't there.
...
(1) To see what Objective C can do, go here:
http://www.gnustep.org/experience/Gorm.html
Basically you get all the late-binding goodness of an OO scripting
language in a full native-compiled language. Instead we're stuck with
C++/python.
(2) If your jaw is not well attached to your skull, you probably don't
want to read the list of Java projects supported by IBM and/or the
Apache foundation.
Joe Krahn wrote:
*** For details on how to be removed from this list visit the ***
*** CCP4 home page http://www.ccp4.ac.uk ***
Is Fortran re-gaining any popularity among crystallographers? It
seems that some people are finding Fortran more useful for several
reasons:
1. F2003 has some improvements that alleviate some of the pain of
using Fortran (but still has a ways to go).
2. The things that Fortran is really bad at are more often done in a
scripting language.
3. G95 and/or gfortran are making F95 and parts of F2003 widely
available.
4. C++ can be an excellent alternative, but it's extensibility leads
to a wide variety of coding styles which can make C++ rather complex
and hard to understand.
Joe Krahn
------------------------------------------------------------------------
--
Laurence H. Pearl
Section of Structural Biology, Institute of Cancer Research
Chester Beatty Laboratories, 237 Fulham Road, London SW3 6JB, UK
Phone +44-(0)20 7153 5422 : Secretary +44-(0)20 7153 5443
FAX +44-(0)20 7153 5457 : E-Mail [EMAIL PROTECTED]
------------------------------------------------------------------------
--
" Live Simply and do Serious Things .. " - Dorothy Crowfoot Hodgkin
------------------------------------------------------------------------
--