- Computer scientist
- Computational scientist
- Software developer
One of the challenges I had when poking into the ClimateGate software dump was that those programs were written by computational scientists (the climatologists developing climate models). That was a challenge because the programs were not written to be maintainable or even understandable by anyone other than the author. They were also teeming with horrifying bugs, especially a tendency to fail utterly with the tiniest little issue in the inputs. That sort of program rarely emerges from a software development shop, even as a prototype. On the whole, I think the computational scientists could learn a great deal from both the other kinds of programmers.
Computer scientists, for me, are mostly a source of knowledge. Folks like Donald Knuth and James Gosling have, through their work, gave me the intellectual tools to be a better software developer. I've mooched a great deal from that group. Only rarely have I made any contribution at all to that body of knowledge – just a couple of email exchanges with real computer scientists where maybe I gave them an idea or helped them clarify a finding. One thing I know for sure: the best computer scientists are also great software developers, and have done a good deal of it...