***  For details on how to be removed from this list visit the  ***
***          CCP4 home page http://www.ccp4.ac.uk         ***



What other people is using is critical if you want your program to be
usable in 10 years time or longer. As an old-school Fortran
programmer, I'm a recent convert to C++ (and have all the enthusiasm
of a convert). I'm prepared to believe that other languages are
"better", but C++ is pretty good, and widely enough used that it seems
safe that there will be good compilers around for a long time to come.
And programming crystallography in C++ gives me access to useful
libraries such as Clipper and Cctbx, as well as CCP4.

When I first started programming, longer ago than I care to remember,
I was told by people who knew better that Fortran was a dead laguage &
that I should be using Algol68. Where is that now? Fortran is still
here, even if there are excellent reasons for using other languages
(and indeed I wouldn't now write in Fortran myself).

The best is the enemy of the good

Phil


Kevin Cowtan writes:
 > 
 > 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 is MS?

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

Reply via email to