Peter Norvig (formerly of NASA, now at Google) recently gave a talk titled "What to Demand From a Scientific Computing Language". It's a good talk (and not just because he explains why he's a fan of Python). I was a bit disappointed, though, by this list:
Shouldn't there be a version control system on this list? And some sort of provenance tool? OK, that's a trick question: there aren't any provenance tools in widespread use, but what about testing tools? There are lots of those, and there's even a name ("xUnit") for the whole JUnit-style family of tools across different languages. Saying "these aren't really core to scientific computing" is sort of like saying "disinfection isn't really core to surgery".
Originally posted at Software Carpentry.