"Modern science relies upon researchers sharing their work so that their peers can check and verify success or failure. But most scientists still don't share one crucial piece of information - the source codes of the computer programs driving much of today's scientific progress." Pretty crazy this isn't the norm yet.

A lot of researchers provide either sources (mostly proof-of-concept Matlab code, or sometimes regular sources under some license) or executable code along with some publications. To verify results - which is almost never done, mind you - noone requires sources, a simple executable, a binary library, or a Matlab basic code would be quite enought for all intents and purposes.

And, surprise surprise, a lot of researchers will provide you with either an executable, or a library if you ask for it, others will run their algorithm on your data and give it to you. And yes, there are people who don't, but that's their prerogative.

Demangind sources for all the algorithms is much more than any of the above, and in almost all cases you just simply couldn't justify your need for it, besides saying that you want it. Well, not every day is Christmas.

What's the reason behind it? Multiple. Research and creation of proof-of-concept code for an article is _not_ software development, and it shouldn't be - unless of course the article deals with software development Also, producing such code is often a result of a lot of blood and sweat, and sometimes one requires more reason to share sources, than kindness of the heart (still, it happens from time to time). Also, some (a lot of) researchers can't afford to patent results, thus keeping the sources is a fairly good way to make stealers' work harder.

Not everything is black and white here, and most people can't see that. And the title saying "Closed source threatens science" is just plain untrue. I mean come on, it threatens it now? Didn't it threaten for decades? What is the exact nature of that thread (beacuse the simple unavailability of sources is simply not a threat)?

Also, about:

If I knew there was a publication requirement for my code, I probably would have done things like comment it better, kept better track of it, and generally put a bit more thought and effort into my code

...yes, and that's exactly what I don't want to do in a lot of cases. More often than not, the idea is far more important than the code that provides a method to test it. Implementation (yes, the code) is not the science (unless we're in algirithm design and software implementation science), an implementation is just one way of realizing the presented idea.

Also, another important issue, sometimes the software implementation of a presented method, algorithm or idea is simply not public, restircted, sometimes it can be even confidential - in such cases, demainding pubication of the sources is just simply not an option. And you'd be willing to send away good papers because of that? Right, good luck being a high impact journal.

And if an idea is so good, and there's real marketability in it, then a lot of times it evolves into a distributable software and everyone can get their hands on it.