Scientists Aren't Stupid: Software Is

This post originally appeared on the Software Carpentry website.

Last night, Mike Bayer (@zzzeek) tweeted:

Why are "scientists", who are so dramatically smarter than me, such dumdums when it comes to basic programming skills:

Taavi Burns (@jaaaarel) replied:

Ask @gvwilson of @swcarpentry?

So here I am, and what I want to say is:

Scientists aren't stupid: software is.

Seriously. I spent an hour and a half last night trying and failing to get Thunderbird and Dreamhost's email to play nicely together. Today, I'm wrestling with the fact that Python's multiprocessing library gets lost in infinite recursion if you try to do something crazy like, oh, I don't know, leave out the if __name__ == '__main__' check (but only on Windows). In both cases, the parties involved can explain why it does what it does, and in both cases, I just... don't... care.

So here's what I want to say to software developers who wonder why scientists are dumdums. When a scientist says "a>b doesn't work for complex numbers", it's not their fault. When a programmer says "a>b doesn't work for email messages", odds are good that it's because two standards committees didn't talk to each other, or it's a deliberate fail for backward compatibility with something written in 1997, or something like that.

The key concept here is one that Irving Reid introduced me to: learned helplessness. If something fails repeatedly, people learn that it's not worth trying to make it work again. That lesson sticks, even when circumstances change in ways that make success possible. Once someone has wasted hours trying and failing to get A, B, and C to play together nicely on their laptop—once they have spent hours figuring out why that failed, only to find that what they learned is useless when the next problem crops up—it's quite reasonable for them to stop trying, because the odds are against them succeeding without superhuman effort. As long as software conditions people to believe that, to first order, they're doomed—as long as "doubling your chance of succeeding" means raising the probability from 1% to 2%—maybe they're right to put that time into the science they wanted to be doing in the first place.

Dialogue & Discussion

Comments must follow our Code of Conduct.

Edit this page on Github