{"id":3900,"date":"2015-04-24T13:04:22","date_gmt":"2015-04-24T19:04:22","guid":{"rendered":"http:\/\/www.realtimerendering.com\/blog\/?p=3900"},"modified":"2015-04-24T13:21:10","modified_gmt":"2015-04-24T19:21:10","slug":"why-not","status":"publish","type":"post","link":"https:\/\/www.realtimerendering.com\/blog\/why-not\/","title":{"rendered":"Why not?"},"content":{"rendered":"<div style=\"color: #222222;\">I like to ask researchers whether they think the release of code should be encouraged, if not required, for technical papers. My argument (stolen from somewhere) is, &#8220;would you allow someone to publish an analysis of\u00a0<i>Hamlet\u00a0<\/i>but not allow anyone to see\u00a0<i>Hamlet\u00a0<\/i>itself?&#8221; The main argument for publishing the code (beyond helping the world as a whole) is that people can check your work, which I hear is a part of this science stuff in &#8220;computer science.&#8221;<\/div>\n<div style=\"color: #222222;\"><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0<\/span><\/div>\n<div style=\"color: #222222;\">Often they&#8217;re against it. The two reasons I hear are &#8220;my code sucks&#8221; and &#8220;we&#8217;ve\u00a0patented the technique.&#8221; I can also imagine, &#8220;I don&#8217;t want those commercial fatcats stealing my code,&#8221; to which I say, &#8220;put some ridiculous license on it, then.&#8221; If the reason is, &#8220;I want to publish to enhance my resume and reputation, but I also want to keep it all secret because I&#8217;m going to make money off it,&#8221; then choose A or B, you can&#8217;t have both (or shouldn&#8217;t, in my Utopian fantasy world).<\/div>\n<p><!--more--><\/p>\n<div style=\"color: #222222;\">Don&#8217;t worry about code quality. I love &#8220;<em><a style=\"color: #1155cc;\" href=\"http:\/\/aras-p.info\/blog\/2015\/04\/01\/optimizing-unity-renderer-1-intro\/\">there are codebases that suck, and there are codebases that aren\u2019t used<\/a>&#8220;.<\/em><span style=\"color: #000000;\">\u00a0This quote was by a lead programmer on one of the best selling videogame development platforms, Unity3D; he got it from someone else. Show us the code, we won&#8217;t laugh (much). It doesn&#8217;t have to be easy to build. For example, <a href=\"http:\/\/meshlab.sourceforge.net\/\">MeshLab<\/a>, for me at least, is about impossible to build, and has (or had &#8211; they&#8217;ve improved considerably over the years) some horrific bugs, but I still appreciate that the code is available to look at. I also use the program a lot, I just reached my hundredth use of it this week.<\/span><\/div>\n<div style=\"color: #222222;\"><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0<\/span><\/div>\n<div style=\"color: #222222;\">It takes a few minutes to slap your source files onto Github and costs nothing. If you&#8217;re worried about code quality, don&#8217;t &#8211; you&#8217;re in good company, about 90% of all code on Github is crap (<a href=\"http:\/\/en.wikipedia.org\/wiki\/Sturgeon%27s_law\">Sturgeon&#8217;s Law<\/a>), including <a href=\"https:\/\/github.com\/erich666\/Mineways\">my own<\/a>\u00a0(the <a href=\"http:\/\/mineways.com\">executable of which<\/a> gets like 15,000 downloads a month). Notch&#8217;s $2.5 billion code for Minecraft <a href=\"http:\/\/madrealms.net\/forum\/general-discussion\/why-mojang-sucks-so-badly\">sucks<\/a>. Let it go.<\/div>\n<div style=\"color: #222222;\"><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0\u00a0<\/span><\/div>\n<div style=\"color: #222222;\"><span style=\"color: #000000;\">Patents: I admit to not liking most software patents, perhaps all. But that&#8217;s irrelevant, or should be. If you&#8217;re embarrassed to admit you have a patent on some algorithm, that shouldn&#8217;t stand in the way of others understanding your research &#8211; deal with your shame. The point of a patent is that you are\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Patent\"><i>revealing the process<\/i><\/a>. In return your idea is protected for a number of years. This is as opposed to a trade secret, where the process is kept quiet. A patent stops others from using your idea without paying you a licensing fee. However, your part of the bargain is to explain the idea. A trade secret risks someone reverse engineering your clever idea, for which you have little protection. Obvious, but people seem to forget that.<\/span><\/div>\n<div style=\"color: #222222;\"><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0\u00a0<\/span><\/div>\n<div style=\"color: #222222;\">I expect these arguments are entirely convincing and code publication still won&#8217;t happen, due to pride and lawyers. No one likes to show off their dirty laundry. And lawyers will see no benefit to revealing code: &#8220;What&#8217;s this &#8216;research&#8217; stuff you&#8217;re talking about? We&#8217;re making I.P. here, not research. Releasing code will increase the risk of undetected infringement by others of our I.P., or, worse yet, we might be found to be infringing on someone else&#8217;s algorithm patent.&#8221;<\/div>\n<div style=\"color: #222222;\"><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0\u00a0<\/span><\/div>\n<div style=\"color: #222222;\">Ah well, I tried. Now get off my lawn.<\/div>\n","protected":false},"excerpt":{"rendered":"<p>I like to ask researchers whether they think the release of code should be encouraged, if not required, for technical papers. My argument (stolen from somewhere) is, &#8220;would you allow someone to publish an analysis of\u00a0Hamlet\u00a0but not allow anyone to see\u00a0Hamlet\u00a0itself?&#8221; The main argument for publishing the code (beyond helping the world as a whole) [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[576,147,577],"class_list":["post-3900","post","type-post","status-publish","format-standard","hentry","category-misc","tag-code-quality","tag-patents","tag-research"],"_links":{"self":[{"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/posts\/3900","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/comments?post=3900"}],"version-history":[{"count":17,"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/posts\/3900\/revisions"}],"predecessor-version":[{"id":3918,"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/posts\/3900\/revisions\/3918"}],"wp:attachment":[{"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/media?parent=3900"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/categories?post=3900"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/tags?post=3900"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}