<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jan 2, 2013 at 4:18 PM, Frank Shearar <span dir="ltr">&lt;<a href="mailto:frank.shearar@gmail.com" target="_blank">frank.shearar@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><a href="http://blog.datomic.com/2012/10/codeq.html" target="_blank">http://blog.datomic.com/2012/10/codeq.html</a><br>

<br>
Executive summary:<br>
* Git gives version control over files<br>
* Clojure code typically has lots of functions or other chunks of code<br>
in one file<br>
* This means you can&#39;t ask for the version of a single unit of code<br>
* Static analyses over the files as they vary through time, dumped<br>
into a database, yields interesting stuff<br>
<br>
What they&#39;re calling &quot;codeqs&quot; (&quot;code quantum&quot;) filetree folks would<br>
call a file, because filetree already splits everything (I think?)<br>
into bits, and versions everything at the &quot;codeq&quot; level by virtue of<br>
storing each bit in its own file: class definition, comment, method<br>
definition, etc.<br>
<br>
So we already have most of this stuff already - I couldn&#39;t live<br>
without my in-image method versions - but I&#39;m wondering if anyone else<br>
can spot anything worth copying?<br></blockquote><div><br></div><div style>Nah. They&#39;re basically figuring out how to extract the semantic changes from git, since git just treats the source code as opaque text. That gets them to what Monticello has now. I guess there&#39;s a bit of &quot;imagine what you could do then!&quot; that&#39;s unspecified.</div>
<div style><br></div><div style>Which is not to say that it&#39;s a bad idea. I&#39;d love to create a huge database of, say, the update stream going back to the beginning, or the entire contents of squeaksource. But... then what?<br>
</div><div style><br></div><div style>Things that spring to mind immediately:</div><div style><br></div><div style>- universal senders and implementors</div><div style>- metrics like message sends per method or methods per class</div>
<div style>- detection of package dependencies</div><div style>- analysis of how long-lived packages change over time</div><div style>- analysis of contribution and collaboration between coders</div><div style><br></div><div style>
and so on.</div><div style><br></div><div style>But, what good is it? Might be interesting, maybe there&#39;s some research papers to be written, but would it do us any good as a community? Would there be useful tools that came out of it? Would it be worth the effort? Hard to say.</div>
<div style><br></div><div style>Colin</div></div></div></div>