Bad programming skills = biggest hurdle to astronomy research

Click For Summary

Discussion Overview

The discussion revolves around the challenges faced in astronomy research due to programming skills, particularly in the context of handling large datasets produced by modern telescopes. Participants explore the relationship between astronomers and programmers, the quality of existing code, and the communication required to effectively analyze astronomical data.

Discussion Character

  • Debate/contested
  • Technical explanation
  • Conceptual clarification

Main Points Raised

  • Some participants argue that the sheer volume of data produced by telescopes like LSST presents significant programming challenges that need to be addressed for effective analysis.
  • Others suggest that many scientists and engineers lack strong programming skills, which complicates the development of efficient software for data analysis.
  • A viewpoint is expressed that it is not solely "bad programming" that hinders research, but rather "bad communication" between astronomers and programmers regarding data analysis needs.
  • Some participants propose that existing programs should be handed over to skilled programmers for improvement, while others caution that poorly written programs cannot simply be fixed and may require complete rewrites.
  • There is a discussion about the qualifications of those writing astronomical codes, with some noting that many are graduate students rather than professional programmers.
  • Concerns are raised about the maintainability and clarity of scientific computing code, with participants sharing experiences of difficulty in understanding and modifying existing code.
  • Some participants believe that teaching astronomers to program effectively may be more feasible than training programmers in astrophysics.

Areas of Agreement / Disagreement

Participants express a range of views on the role of programming skills in astronomy research, with no clear consensus on whether the primary issue is programming quality, communication, or the qualifications of those involved in coding.

Contextual Notes

Limitations include the potential lack of clarity in existing code, the high noise-to-signal ratio in astronomical data, and the varying levels of programming expertise among researchers.

  • #31
This seems like a good thread to ask this question but what languages would you guys say are the 'best' for writing astrophysics tyoe simulations (i.e. 3+ body problem simulations).

I began with Maple before I had any intentions to program these types of problems and have moved onto Matlab as maple isn't the best for high end computing. I have a feeling C++ would perhaps be a good shout but since I have a course on Matlab this year I'll be mainly working with that. I also find that the more I work with languages like Matlab the more I seem to understand C++ code despite never having worked with it.

I read somewhere that you should look at programming less in terms of learning a language and more in terms of learning the basics and fundementals of programming such as OOP.
 
Astronomy news on Phys.org
  • #32
This is a website I found a while back, its a great comparison of programming languages and their speed.

http://shootout.alioth.debian.org/fastest-programming-language.php

I think you're right in choosing C++ as a language, as you can see, C is minimally faster, but slightly more annoying to code at times so C++ is a happy medium. Speaking of happy medium, I tend to fall into that category when it comes to this topic, my schooling (while not finished) was for Astro-Engineering, but I now hold a job as Linux Sysadmin and have done a rather extensive amount of programming. I think what someone mentioned before its like we have to learn all over again, we've gotten so used to fast computers and not caring about efficiency, but when you are dealing with this large of numbers, it is like going back 30 years with computing power. Unfortunately, I agree that it's a vicious cycle of astronomers not being programmers and vice versa, it makes it hard to program efficiently when you don't know what you're programming, and it takes years of practice to know how to program efficiently.

while(astronomer == programmer)
{
printf(&efficient_program);
}

EDIT: Coming from a background in a variety of languages, I agree with what you said about learning the basics of programming over the language, you'll learn quickly most languages are very similar and you can adapt to them quickly.
 
Last edited by a moderator:
  • #33
Wow, very interesting link! Why is FOTRAN Intel so slow? My professors always told me to use either C/C++ or FORTRAN since they were the fastest.

FORTRAN is nice for MPI/OpenMP integration too (if you want to parallelize things). I'm sure C also has MPI/OpenMP integration, but I'm not sure if it's as fluid.
 
  • #34
jsiples said:
This is a website I found a while back, its a great comparison of programming languages and their speed.
Eh. The question raised by Simfish immediately arises on seeing stuff like that:
Simfish said:
Wow, very interesting link! Why is FOTRAN Intel so slow? My professors always told me to use either C/C++ or FORTRAN since they were the fastest.
The answer is (at least) twofold:
  1. They are combining metrics from multiple programs, some of which are not Fortran's forte. Who cares how well Fortran performs in handling strings?
  2. The programs appear to be not so well-written. Some of the so-called benchmarks are so poorly written that they don't even compile. This is a failure of the benchmarking, not of the language.
The tests in which Fortran fares very poorly are in part a reflection of the limitations of Fortran (yes, Fortran isn't so good at handling strings), but also appear to be in part due to giving the programming assignment to someone not well-versed in Fortran.

Note well: I am not a Fortran advocate. Far from it; I gladly abandoned the language a couple of decades ago. One doesn't have to be a Fortran advocate to say that those benchmarks are more than a bit suspect. That said, Fortran does not always look so bad at debian.org. In the n-body problem Fortran is the winner: http://shootout.alioth.debian.org/u32q/performance.php?test=nbody .
 
Last edited by a moderator:

Similar threads

  • · Replies 3 ·
Replies
3
Views
4K
Replies
8
Views
5K
  • · Replies 13 ·
Replies
13
Views
4K
Replies
2
Views
4K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 82 ·
3
Replies
82
Views
9K
  • · Replies 11 ·
Replies
11
Views
6K
  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 20 ·
Replies
20
Views
42K
  • · Replies 10 ·
Replies
10
Views
3K