{"id":4802,"date":"2013-02-02T01:29:59","date_gmt":"2013-02-02T06:29:59","guid":{"rendered":"http:\/\/esr.ibiblio.org\/?p=4802"},"modified":"2014-03-09T20:47:13","modified_gmt":"2014-03-10T00:47:13","slug":"is-closed-source-worth-it-for-performance","status":"publish","type":"post","link":"http:\/\/esr.ibiblio.org\/?p=4802","title":{"rendered":"Is closed source worth it for performance?"},"content":{"rendered":"<p>The following question appeared in my mailbox today:<\/p>\n<blockquote><p>\nIf 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?\n<\/p><\/blockquote>\n<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>\n<p><!--more--><\/p>\n<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>\n<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>\n<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>\n<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>\n<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>\n<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>\n<p>Could I make the open-source program go faster?  I would at least spend an hour or two looking at the possibility. <\/p>\n<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>\n","protected":false},"excerpt":{"rendered":"<p>The following question appeared in my mailbox today: 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? The answer is: it depends. I&#8217;m going to answer this one in public because it&#8217;s a useful exercise in&hellip; <a class=\"more-link\" href=\"http:\/\/esr.ibiblio.org\/?p=4802\">Continue reading <span class=\"screen-reader-text\">Is closed source worth it for performance?<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[24],"class_list":["post-4802","post","type-post","status-publish","format-standard","hentry","category-software","tag-open-source","entry"],"_links":{"self":[{"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=\/wp\/v2\/posts\/4802","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4802"}],"version-history":[{"count":3,"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=\/wp\/v2\/posts\/4802\/revisions"}],"predecessor-version":[{"id":5331,"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=\/wp\/v2\/posts\/4802\/revisions\/5331"}],"wp:attachment":[{"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4802"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4802"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4802"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}