I'm a 'scientific programmer' who learned how to code basically trial by fire. My background was mechanical engineering which didn't focus on coding at all other than needing to use/learn MATLAB for several classes. Went to grad school for HPC/CFD and there I was given access to our group's simulation code and was let loose to implement whatever routines I needed to simulate my problems. The shared components were th…
Simple rules for documenting scientific software
51–55 of 55 posts
Re: Simple rules for documenting scientific software
#52Earlier quoted context omitted.
I don't buy it. I've worked with very complicated systems (ads at google) and it was pretty straightforward- it's the distributed systems communicating at RPC interfaces that is hard to understand. I've also worked with quantum chemistry codes and large supercomputer codes. The ones that were difficult to maintain were just badly written. There was an article recently about Jeff Dean and Sanjay Ghemawat- one of Sanja…
How would you make, say, a fourier transform or IIR filter design accessible to people who don't know any signal processing or complex numbers? You can spend years studying these topics and their related math. Entire text books have been written on these subjects. Any one algorithm probably has multiple scientific publications, explaining how and why they work. This much information can not fit into a few code commen…
These are all software engineering things that have nothing to do with domain knowledge.
Re: Simple rules for documenting scientific software
#53Earlier quoted context omitted.
I don't buy it. I've worked with very complicated systems (ads at google) and it was pretty straightforward- it's the distributed systems communicating at RPC interfaces that is hard to understand. I've also worked with quantum chemistry codes and large supercomputer codes. The ones that were difficult to maintain were just badly written. There was an article recently about Jeff Dean and Sanjay Ghemawat- one of Sanja…
How would you make, say, a fourier transform or IIR filter design accessible to people who don't know any signal processing or complex numbers? You can spend years studying these topics and their related math. Entire text books have been written on these subjects. Any one algorithm probably has multiple scientific publications, explaining how and why they work. This much information can not fit into a few code commen…
Re: Simple rules for documenting scientific software
#54Earlier quoted context omitted.
I write scientific code for a living and my code is very difficult for anyone else to maintain. It is not because my code is badly documented or written, it is because what it does is very complex. Every module is documented why it exists and what it does and the code straightforward to read, yet the interaction of all the modules is very complex as it reflects the underlying complexity of the problem the code is sol…
I don't buy it. I've worked with very complicated systems (ads at google) and it was pretty straightforward- it's the distributed systems communicating at RPC interfaces that is hard to understand. I've also worked with quantum chemistry codes and large supercomputer codes. The ones that were difficult to maintain were just badly written. There was an article recently about Jeff Dean and Sanjay Ghemawat- one of Sanja…
It is not that the code is really complex, but the underlying problem is complex. Some things are just hard problems and no matter how skilful a developer you are, if a problem requires 10 years of full time study in a particular area you will struggle if you don't have this background.
Re: Simple rules for documenting scientific software
#55Earlier quoted context omitted.
I don't buy it. I've worked with very complicated systems (ads at google) and it was pretty straightforward- it's the distributed systems communicating at RPC interfaces that is hard to understand. I've also worked with quantum chemistry codes and large supercomputer codes. The ones that were difficult to maintain were just badly written. There was an article recently about Jeff Dean and Sanjay Ghemawat- one of Sanja…
Well all I can say is I have worked with some pretty smart developers (much better than me) who have run slam bang straight into the domain knowledge problem and have got totally stuck. They have a habit of removing critical code that they think is not required or spending a huge amount of time solving trivia. It is not that the code is really complex, but the underlying problem is complex. Some things are just hard…
I think you have bigger problems with your devs, that don't have to do with your "problem domain complexity".