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