This repository has been archived on 2017-04-03. You can view files and clone it, but cannot push or open issues/pull-requests.
blog_post_tests/20130202012959.blog

16 lines
3.0 KiB
Plaintext

Is closed source worth it for performance?
<p>The following question appeared in my mailbox today:</p>
<blockquote><p>
If a certain program (that you need) was proprietary, and its open-source counterpart was (currently) 40% slower. Which would you use, the open-source one or the proprietary one?
</p></blockquote>
<p>The answer is: it depends. I&#8217;m going to answer this one in public because it&#8217;s a useful exercise in thinking about larger tradeoffs.</p>
<p><span id="more-4802"></span></p>
<p>The first subsidiary question I&#8217;d have to ask myself is, how much does that 40% speed increase matter? If the answer is &#8220;not much&#8221; (say, because even the &#8216;slower&#8217; program runs pretty fast, or because even though it&#8217;s noticeably slower I won&#8217;t use it often) then I&#8217;ll use the program I can read the source code for. Because what if I trip over a bug, or need to extend what the program does to get my task finished?</p>
<p>The more general point here is that by using the closed-source program I&#8217;m giving up some significant options, including (a) asking the open-source program&#8217;s maintainers for help, and (b) fixing or enhancing it myself. There is a tradeoff between the value of those options and the value of the additional performance which I have to evaluate on the facts in each case. (And yes, valuing these open-source options highly is based on the assumption that help is effectively unavailable from the maintainers of the closed-source program. Sadly, this is usually the case.)</p>
<p>From now on, then, we&#8217;re only talking about the case where that 40% is really important. Let&#8217;s consider a couple of easy subcases.</p>
<p>It might be the case that what these programs do is very simple and well-defined, so it&#8217;s easy to verify that they&#8217;re functionally equivalent except for speed. If that&#8217;s the case, my risk of getting locked in by the closed-source program is low &#8211; so I&#8217;ll go right ahead and use the closed-source one, knowing I can fall back to the open-source program at any time.</p>
<p>It might also be the case that buying faster hardware will make the open-source program fast enough for my purposes. Hardware is cheap and the benefits from improving it extend across a broad range of tasks, so I&#8217;d probably rather upgrade my hardware than accept the risks of using the closed-source program.</p>
<p>Another easy case is when the closed-source program jails my data, so I cannot examine or modify it with other tools. It is hard for me to imagine any scenario in which I would swallow that for a mere 40% performance boost. Forget it; no sale.</p>
<p>Could I make the open-source program go faster? I would at least spend an hour or two looking at the possibility. </p>
<p>Beyond these the decision process starts to get more difficult. I don&#8217;t think I can utter a completely general rule for when I will use closed-source software, but I hope I have illuminated some of the tradeoffs.</p>