AnthonyThis may be an unpopular or outmoded opinion, but I am frequently against sharing source code in empirical computer science research. I believe we should communicate our work largely in natural language and mathematics, and I believe anyone interested in replicating our observations should implement the ideas we've expressed on their own. I think we severely degrade what replication tells us otherwise; I also think we narrow the scope of what we're able to discover.<br><br>Why? Because I view source code as analogous to a chemist's lab equipment. I put my computational gear together in a certain way, run my experiments with it, record my results, and report it all in natural language, math, and possibly pseudocode if it's warranted. By analogy, a chemist sets up their gear, lab, reagents and whatnot in their particular way, runs their experiments with all that, and reports their results. If another chemist wants to try replicating these results, they do not ask the 1st chemist to ship over their lab gear and reagents (at least, I hope they don't). Rather, they set up their own lab in their own way, make or obtain their own reagents, and then replicate the procedure the 1st chemist shared. If they observe something similar it's evidence that the 1st chemist's ideas are sound; if they observe something different, that might be an interesting discovery!<br><br>I think we should strive for this in computer science as well. If I give you my source code and you run it, then all you're really testing is whether or not I baked an assumption about my execution environment into my experiment. That's boring! At this point we can minimize the risk of that with technologies like <code>nix</code>, virtual machines or containers and CI/CD pipelines. If instead you implement what I wrote in my report yourself and run it, then you're testing the <i>ideas</i> I'm expressing. That's exciting! If just from an idea you can implement code that does something that I did with code I separately implemented from the same idea, we've discovered something!<br><br>I think sharing source code tends to optimize for reproducible execution environments and much less for solid <i>concepts</i>. I also think sharing source code makes imitation far too easy, which limits the possibility of genuine discovery. Don't even get me started on what using <a href="https://buc.ci?t=gpt" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#GPT</a> or <a href="https://buc.ci?t=copilot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#Copilot</a> does.<br><br>I'm interested in hearing others' thoughts on this, though. I'm clearly oversimplifying, but also there's plenty of room for other ways of looking at it and I'm curious how others think about it.<br><br><a href="https://buc.ci?t=science" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#science</a> <a href="https://buc.ci?t=replicability" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#replicability</a> <a href="https://buc.ci?t=computerscience" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#computerscience</a><br>