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".