great moments in programming
July 28th, 2007 by Lawrence David
i just lived through a great moment in programming.
this afternoon, i caught a subtle error in a 1023-line (not including comments) program whose results are about to be featured in a publication. spotting and squashing this bug not only explains one mysteriously anomalous result i’ve been getting for months, but has also likely provides a means for solving the last remaining major obstacle my analyses is facing. had this bug gone unnoticed, i’d likely have gotten a fair bit of egg on my face when i released my program to the general environmental microbiology community.
in short, i’m damn glad i found this bug.
something does still nag at me though — what’s the appropriate way to celebrate this momentous programming moment? i’m fairly certain a terrrell owens-like end-zone dance would be considered inappropriate and lead to a fine from christina’s bad-dancing monitoring commission. but, do programmer’s ever allow themselves at least a small fist-pump? a low-key yell of triumph? or how about something the kids would enjoy: a pete-weberesque crotch chop?
i ended up celebrating the way i would imagine most programmers probably do: i ate some junk food and wrote in my blog.
Yep, that sound about right Congratulations — finding those pernicious, subtle bugs can be very rewarding.
On a more general [and cynical] note, though: given how apparently subtle the bug was, do you really think anybody other than you would have spotted this ? In other words, given the general laxity with which the correctness of software is [still] being treated in the bio sciences, what are the chances anybody else would have noticed ?
you know what: i should hope that your cynicism is well-founded. i wouldn’t bet against there being at least 1 small “error in judgement” within a v1.0 behemoth algorithm.
and that’s scary — i’m not quite sure there are any mechanisms in place to prevent such bugs from getting out. it’s the usual problem: what grad student or post-doc would possibly be interested in spending time debugging already published code, when they could be instead drafting their own novel algorithms …
In my industry we have this saying when confronted about the “accuracy” of our results:
“No mistakes were found”
cheers!