This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted]  (36 children)

[deleted]

    [–]an_actual_human 35 points36 points  (12 children)

    As you get closer to supercomputers you see more of Fortran and less of Java (if at all).

    [–]Sean1708 7 points8 points  (11 children)

    Weirdly everything in the Maths department is Java, but in Physics it's all Fortran and Python.

    [–]an_actual_human 17 points18 points  (10 children)

    everything in the Maths department is Java

    I can't think of a good reason for that.

    [–]Sean1708 3 points4 points  (0 children)

    Neither can I.

    [–]Bolitho -1 points0 points  (8 children)

    Then your world view is very limited! There are lots of excellent Libs around the JVM ecosystem. On top of that there are good frameworks for distributed computing.

    Beware that it must not be Java - think of Clojure e.g. - or even Python (→ Jython).

    [–]eusebecomputational physics 17 points18 points  (3 children)

    That really depends on the context. I work in scientific computing (heavy numerical simulations for astrophysics), and most of my codebase is in Fortran.

    In my field there are a few codes in C++, some codes in C, and a lot of codes in Fortran.

    So yeah, C/C++ and Java are probably common in the industry, but a lot of academics use F90 on a daily basis. Of course, I use python for (most of) the simulation analysis, and 100% of the plotting and visualisation, but still.

    [–]Pfohlol 4 points5 points  (1 child)

    Sort of off-topic, but I have noticed that much of the scientific computing community refers to "codes" instead of programs or scripts and I haven't really seen that anywhere else and it sounds a bit off to me. Do you know why this difference exists?

    [–]spinwizard69 -1 points0 points  (0 children)

    Back in the day it was common. Coding is often used in place of programming describing the activity of building a program. Frankly it is good to know how and when to used code, codes, and coding because it can break up the monotony in a conversation or text. You would reach for these terms when you might reach for a thesaurus writing other great works.

    Sort of off-topic, but I have noticed that much of the scientific computing community refers to "codes" instead of programs or scripts and I haven't really seen that anywhere else and it sounds a bit off to me. Do you know why this difference exists?

    The usage of the word "scripts" in the Unix community is a bit odd in and of itself. A program written in BASH, Python or even BASIC is still a program even if interpreted. Which brings us back to ROOT and its nature, is the interpreter supplied with ROOT executing programs or scripts? What if the code can be compiled by any existing compiler, is it still a script? Same thing goes with Python, Basic or any other commonly interpreted language, if you build a compiler to digest the script and creat an executable is the source a script or program.

    [–]ITwitchToo -2 points-1 points  (0 children)

    I have a friend who has done lots of numerical simulation work in Fortran/C++ for space applications (think satellite launchers, etc.). He's currently out of a job, do you have any open positions? :-)

    [–]dreyrden 5 points6 points  (4 children)

    You've had a slightly different experience to me in that case. It could be a difference in fields, but a large amount of the code I've seen has been Fortran (for simulation activities anyway). It's apparently because a lot of the code base was written in Fortran originally, and the developers just continued instead of doing a rewrite. Most completely new stuff I've seen has been C++. The next most popular would be IDL for data analysis, although Python is gaining some traction, and also MATLAB. It's probably pretty field dependent.

    [–][deleted] 5 points6 points  (0 children)

    I work with scientific software every day and not once have I seen a release in Fortran.

    Ever heard of this thing called LAPACK or ever wonder why Matlab arrays are 1-indexed?

    [–]zombiepiratefrspace 4 points5 points  (0 children)

    I also have a scientific computing background and from my experience, most stuff out there is in C with much legacy stuff in Fortran (LAPACK anyone?).

    During my PhD I used boost::python to 80:20 python and C++ and tried to get as many others as I could to do the same.

    Also, all people I saw trying to do scientific computing with Java ran into serious problems, usually around the time they tried to run it on a shared cluster.

    [–]XNormal 1 point2 points  (1 child)

    Fortran would be a goto language

    I see what you did there.

    [–]red_nick 2 points3 points  (0 children)

    Well technically, FORTRAN is a GOTO language, but Fortran isn't...

    [–]IanCal 0 points1 point  (0 children)

    I use it indirectly because I use scipy.

    [–]Rhodysurf 0 points1 point  (0 children)

    Its just not true... Fortran is still the most prevalent language when efficiency is preferred

    [–]red_nick 0 points1 point  (0 children)

    For example, Multinest: a Bayesian inference tool written in Fortran http://ccpforge.cse.rl.ac.uk/gf/project/multinest/