***  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
------------------------------------------------------------------------ --

Reply via email to