Astronomers are, for the most part, terrible programmers. This is true of the general population too, but unfortunately almost every astronomer has to actually write programs. Python and co. are probably more of a help than a hindrance as it replaces things like old-school Fortran, IDL, gnuplot and Matlab. Clever groups are starting to wise up to this and have dedicated programmers supporting astronomers, rather than…
Things are changing, slowly but surely. Those of you interested in this sort of work should check out http://rse.ac.uk/ , and also https://software-carpentry.org/ (Run a workshop! Improve the software environment around you!)
Why Astronomers Love Python [video]
11–20 of 27 posts
Re: Why Astronomers Love Python [video]
#12Astronomers are, for the most part, terrible programmers. This is true of the general population too, but unfortunately almost every astronomer has to actually write programs. Python and co. are probably more of a help than a hindrance as it replaces things like old-school Fortran, IDL, gnuplot and Matlab. Clever groups are starting to wise up to this and have dedicated programmers supporting astronomers, rather than…
I don't exactly agree with this. As a scientist myself, the term "terrible programmer" is a little bit harsh. Scientists (and the general population) are not professional programmers. If the need arises, they hire one. Scientists usually need to jot down a prototype and a model in order to see if their theory works. It's like comparing a physician with a prepper. A prepper might know how to use some first-aid methods…
Re: Why Astronomers Love Python [video]
#13Earlier quoted context omitted.
I don't exactly agree with this. As a scientist myself, the term "terrible programmer" is a little bit harsh. Scientists (and the general population) are not professional programmers. If the need arises, they hire one. Scientists usually need to jot down a prototype and a model in order to see if their theory works. It's like comparing a physician with a prepper. A prepper might know how to use some first-aid methods…
Isn't it fair to say a prepper is a "terrible trauma surgeon" in context of whether or not a professional should be brought in or not?
IF you need a real software developer for some extended work, you hire one. But to call scientists lousy programmers is like calling every driver on this earth lousy driver (in respect to Formula 1 drivers, for example).
Re: Why Astronomers Love Python [video]
#14Earlier quoted context omitted.
Things are changing, slowly but surely. Those of you interested in this sort of work should check out http://rse.ac.uk/ , and also https://software-carpentry.org/ (Run a workshop! Improve the software environment around you!)
I don't really understand this persistent "carpentry/craftsman" analogy - it seems to me software dev isn't really like a craft at all. I'd sooner stick to "software engineering".
In programming, the map is the territory, and in the time you can map out and nail down all of the unpredictable bits of a program, you could have written it already. We also don't have the luxury of physical laws. The few natural laws that do apply, the speed of light and time complexity, are so rarified and remote that they don't apply most of the time. We share more with the mathematician than the engineer, but even that comparison rings hollow.
We create programs custom built for a purpose, using rules of thumb and our own aesthetic instincts, that meet a need. Craftsman seems appropriate.
Re: Why Astronomers Love Python [video]
#15Astronomers are, for the most part, terrible programmers. This is true of the general population too, but unfortunately almost every astronomer has to actually write programs. Python and co. are probably more of a help than a hindrance as it replaces things like old-school Fortran, IDL, gnuplot and Matlab. Clever groups are starting to wise up to this and have dedicated programmers supporting astronomers, rather than…
Re: Why Astronomers Love Python [video]
#16Earlier quoted context omitted.
My understanding is that within the scientific/academic community that taking time to write good code is considered to be a black mark as you are "wasting time" which could be better spent on your main project. So writing bad code every day, means you are serious about your main line of work! Can't say I agree with this sentiment, but it is slowly changing.
One problem is that to measure a scientist's output, one typically uses their citation count, and people tend to not cite software (there are exceptions), and software based on other software does not transitively pass on those citations.
And if you go back 10 years, 9 of the top 10 articles are software programs: https://pubrank.carbocation.com/article?y=2007
Re: Why Astronomers Love Python [video]
#17Astronomers are, for the most part, terrible programmers. This is true of the general population too, but unfortunately almost every astronomer has to actually write programs. Python and co. are probably more of a help than a hindrance as it replaces things like old-school Fortran, IDL, gnuplot and Matlab. Clever groups are starting to wise up to this and have dedicated programmers supporting astronomers, rather than…
My understanding is that within the scientific/academic community that taking time to write good code is considered to be a black mark as you are "wasting time" which could be better spent on your main project. So writing bad code every day, means you are serious about your main line of work! Can't say I agree with this sentiment, but it is slowly changing.
At that level it's a brutal time/return calculation, like allowing a long trained neurosurgeon to do any of their own paper work. Far more profitable to have them constantly in surgery.
So it was: "fix that three lines of FORTRAN to change the output for 'table #17' and get back to the bench!" (egads i saw some horrific code)
Re: Why Astronomers Love Python [video]
#18Astronomers are, for the most part, terrible programmers. This is true of the general population too, but unfortunately almost every astronomer has to actually write programs. Python and co. are probably more of a help than a hindrance as it replaces things like old-school Fortran, IDL, gnuplot and Matlab. Clever groups are starting to wise up to this and have dedicated programmers supporting astronomers, rather than…
Re: Why Astronomers Love Python [video]
#19Astronomers are, for the most part, terrible programmers. This is true of the general population too, but unfortunately almost every astronomer has to actually write programs. Python and co. are probably more of a help than a hindrance as it replaces things like old-school Fortran, IDL, gnuplot and Matlab. Clever groups are starting to wise up to this and have dedicated programmers supporting astronomers, rather than…
Once I did some science. And the reason for my bad quality code is (or I hope that it was) that I used to: 1. write the code 2. get some result 3. forget it. throw it away And I have never felt any pain for maintaining that code. Until I started developing software for some business. Now the whole team has to work on the same codebase forever improving it with new features. It is totally different workflow compared t…
My test is two simple test runs, did they give me the answer I expected? Yes! Winner. Set off long running job and go home
Re: Why Astronomers Love Python [video]
#20Earlier quoted context omitted.
Once I did some science. And the reason for my bad quality code is (or I hope that it was) that I used to: 1. write the code 2. get some result 3. forget it. throw it away And I have never felt any pain for maintaining that code. Until I started developing software for some business. Now the whole team has to work on the same codebase forever improving it with new features. It is totally different workflow compared t…
The other part of not reusing code is that you tend to be pretty casual about edge cases/testing. If I know the params will be valid and the data set well formed (I made them) then I don't need to write 100 lines of checking. My test is two simple test runs, did they give me the answer I expected? Yes! Winner. Set off long running job and go home
For instance, I'm currently working on a project where I have to process 110 GB/s of radio data aggregated from 288 antennas. The data will need intensive cleaning after, so plenty of thought is put into logging the right statistics (since we have to average for 3 months to get the right data). This is where the real effort is being applied.
However, if there happens to be a missing edge case or malformed data packet, I can (and will) just cronjob a (if process hung, pkill and restart) the processor with the next bit of realtime data. Anyone who wants to reuse the algorithm will need our exact same antennas and specialized computing hardware, so why make it portable?