Software development in Physics

  • Context: Physics 
  • Thread starter Thread starter tigor
  • Start date Start date
  • Tags Tags
    Physics Software
Click For Summary

Discussion Overview

The discussion revolves around the role of software development in various fields of physics, particularly focusing on programming languages used and the extent of software development practices in the discipline. Participants explore the intersection of computer programming and physics, especially in relation to career choices and specializations.

Discussion Character

  • Debate/contested
  • Technical explanation
  • Exploratory

Main Points Raised

  • One participant suggests that there is essentially no software development in physics, arguing that coding projects are often limited to libraries and lack complex structures like GUIs or object-oriented designs.
  • Another participant counters this claim, stating that significant programming exists in high-energy physics (HEP) experiments, involving large-scale object-oriented C++ projects.
  • Some participants mention the use of low-level languages such as C/C++ and FORTRAN for scientific computation, emphasizing the need for speed and stability in performance-critical applications.
  • There are mentions of programming in various contexts, including LabView and GUI-based physics simulations, challenging the notion that software development is minimal in the field.
  • One participant discusses their experience with computational condensed matter physics, highlighting the importance of algorithm design and the use of libraries, while noting a lack of GUIs in their work.
  • Another participant suggests that an object-oriented approach might be suitable if one were to develop a library for others to use.

Areas of Agreement / Disagreement

Participants express differing views on the extent and nature of software development in physics. While some argue that it is minimal and primarily involves libraries, others assert that significant programming efforts exist, particularly in specific fields like high-energy physics and computational methods. The discussion remains unresolved with multiple competing perspectives.

Contextual Notes

There are varying definitions of what constitutes software development, leading to differing opinions on its prevalence in physics. The discussion highlights the reliance on specific programming languages and methodologies, but lacks consensus on the overall landscape of software development in the field.

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 definitely 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 ·
Replies
2
Views
3K
  • · Replies 18 ·
Replies
18
Views
5K
  • · Replies 15 ·
Replies
15
Views
4K
  • · Replies 9 ·
Replies
9
Views
3K
  • · Replies 23 ·
Replies
23
Views
8K
  • · Replies 18 ·
Replies
18
Views
3K
  • · Replies 18 ·
Replies
18
Views
7K
  • · Replies 21 ·
Replies
21
Views
3K
  • · Replies 18 ·
Replies
18
Views
7K
  • · Replies 14 ·
Replies
14
Views
4K