1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Physics Software development in Physics

  1. Jul 22, 2009 #1
    Greetings to all,
    I was wandering - which languages are used for physics.
    And which fields in physics use software development heavily ?
    I am curious because, for the past 10 years i developed career in computer programming. But now days i am studying physics and soon will be faced with choice of physics specialization. So, i figure the best choice should be where i can apply my programming skills.
  2. jcsd
  3. Jul 22, 2009 #2
    There is essentially no software development in physics (at least I've never heard of any). There are coding projects and such but these are often just libraries that you include. I guess it depends on your definition of software development but I've never seen a GUI or an object oriented, multi-class project or anything.

    In physics we use low level languages, the lower the better since when you're doing essentially loops that run billions of times the overhead in even the simplest codes in something like Java will make a code that could have run in 5 minutes take a week to run. Generally the two languages are C/C++ or FORTRAN (mostly 90 although there are still 77 codes kicking around). I've seen astronomers use things like Perl to write data sorting algorithms but ultimately anything that is a running on a supercomputer is going to be in C/C++ or FORTRAN.

    The name of the game in scientific computation is stability and speed so object oriented approaches are rarely used and codes are often messy hard to follow things that essentially do everything in a single file. Library dependence is bad, you have no guarantee that supercomputer X will have the package installed.
  4. Jul 22, 2009 #3

    Vanadium 50

    User Avatar
    Staff Emeritus
    Science Advisor
    Education Advisor
    2017 Award

    With all due respect, I find Maverick_Starstrider's comments so far off the mark as to make me wonder if he has any experience at all in the field.

    There is programming at scales from LabView to literally millions of lines of OO C++ (the same thing that MS said didn't exist) for large HEP experiments.
  5. Jul 22, 2009 #4
    Well you haven't looked very closely! I once heloped in the development of physics simulations using a GUI & multiple physics-related classes in Objective C. There's similar work going on in Squeak Smalltalk, right now, that looks quite interesting...
  6. Jul 23, 2009 #5
    It is hard to imagine anything today that runs without a computer... and software. Since most of software is operated by a person - it has to have some sort of Man Machine Interface.
    But not to mention the MMI , i imagine there has to be a lot of model programming and also some information processing during experiments.
  7. Jul 23, 2009 #6
    I stand corrected I suppose. I do computational condensed matter and it's all algorithm design here. Monte Carlo, exact diagonalization methods, finite element methods, density functional theory, parallel tempering, parallelization in general, etc. And there are definetly libraries like ARPACK, LAPACK, BLAS, etc. but I haven't seen a GUI since when I used to do stuff in medical physics (which was basically slapping a simple front end on matlab scripts).
  8. Jul 23, 2009 #7
    I suppose if you wanted to write a library for other people to use you'd take an OOP approach.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook