In [The Tale of J. Random Newbie][artu], Eric S. Raymond make a very good example of what desesperate me most with Windows and other black-box programming: the inability to lookup what’s going wrong. I see myself and others doing so so often in my short career that now, most of the time, if the components I try doesn’t work already, I build one myself without even trying to debug it. Trying to workout a work around for the _bug_ is often as long as building the component entirely. And that’s a good thing if you find about it at the beginning of the project! Often, the particular bug appears only after you have used the library deeply and have to continue to do so or waste a couple of months of work time by simply throwing it out.
For all this reason, I often find that black-box programming cost much more than open-source programming, and the possibility to use opensource tools in my work is a big asset to decrease the time spent on a contract.