Physics Software development in Physics

  • Thread starter Thread starter tigor
  • Start date Start date
  • Tags Tags
    Physics Software
AI Thread Summary
In physics, programming primarily utilizes low-level languages such as C/C++ and FORTRAN due to the need for speed and stability in computational tasks. While some fields, like high-energy physics (HEP), involve extensive software development, much of the work consists of libraries rather than complex object-oriented projects. There is a notable absence of graphical user interfaces (GUIs) in many physics applications, with a preference for simpler, more efficient coding practices. Discussions highlight the importance of algorithm design in computational physics, with techniques like Monte Carlo methods and parallelization being common. Overall, while software development exists in physics, it often differs significantly from traditional software engineering practices.
tigor
Messages
14
Reaction score
0
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.
 
Physics news on Phys.org
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.
 
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.
 
maverick_starstrider said:
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.

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...
 
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.
 
Vanadium 50 said:
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.

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 definately 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).
 
I suppose if you wanted to write a library for other people to use you'd take an OOP approach.
 

Similar threads

Replies
2
Views
2K
Replies
18
Views
4K
Replies
15
Views
2K
Replies
9
Views
2K
Replies
23
Views
6K
Replies
18
Views
2K
Replies
18
Views
5K
Replies
14
Views
3K
Back
Top